function

PIVOTARPOR

Todo sobre la función PIVOTARPOR en Excel

La función PIVOTARPOR en Excel permite crear un resumen de un conjunto de datos, similar a una tabla dinámica, pero mediante una fórmula. Agrupa, agrega, ordena y filtra datos basándose en los campos de fila y columna que se especifiquen, ofreciendo una forma dinámica y flexible de analizar información directamente en la hoja de cálculo.

Como función de matriz dinámica, los resultados se desbordarán automáticamente en las celdas adyacentes.

Sintaxis

=PIVOTARPOR(campos_fila; campos_col; valores; función; [encabezados_campo]; [profundidad_total_fila]; [orden_fila]; [profundidad_total_col]; [orden_col]; [matriz_filtro])

La función PIVOTARPOR tiene los siguientes argumentos:

  • campos_fila: Una matriz o rango orientado a columnas que contiene los valores que se usarán para agrupar las filas. Obligatorio.
  • campos_col: Una matriz o rango orientado a columnas que contiene los valores que se usarán para agrupar las columnas. Obligatorio.
  • valores: Una matriz o rango orientado a columnas con los datos que se van a agregar. Obligatorio.
  • función: Una función lambda (por ejemplo, SUMA, PROMEDIO, CONTARA, etc.) que define cómo agregar los valores. Obligatorio.
  • encabezados_campo: Un número que especifica si los rangos de entrada tienen encabezados y si estos deben mostrarse en los resultados. Los valores posibles son:
    • 0: No hay encabezados (predeterminado).
    • 1: Sí, y no los muestres.
    • 2: No, pero genéralos.
    • 3: Sí, y muéstralos.

    Opcional.

  • profundidad_total_fila: Determina si las filas deben contener totales. Los valores posibles son:
    • 0: Sin totales (predeterminado).
    • 1: Totales generales.
    • 2: Totales generales y subtotales.
    • -1: Totales generales en la parte superior.
    • -2: Totales generales y subtotales en la parte superior.

    Opcional.

  • orden_fila: Especifica el criterio de ordenación para las filas. Puede ser un número (índice de la columna por la que ordenar) o una matriz de números para múltiples niveles. Un número negativo indica un orden descendente. Opcional.
  • profundidad_total_col: Determina si las columnas deben contener totales. Sigue la misma lógica que profundidad_total_fila. Opcional.
  • orden_col: Especifica el criterio de ordenación para las columnas. Sigue la misma lógica que orden_fila. Opcional.
  • matriz_filtro: Una matriz booleana (VERDADERO/FALSO) de una columna con la misma altura que campos_fila para filtrar los datos antes de la agregación. Opcional.

Ejemplos

Para los siguientes ejemplos, usaremos la tabla de datos de ventas:

Producto Región Vendedor Ventas
Manzanas Norte Ana 150
Naranjas Sur Luis 200
Manzanas Norte Juan 120
Peras Este Ana 90
Naranjas Norte Luis 180
Manzanas Sur Juan 210
Peras Norte Ana 110

Rango de datos: A1:D8.

Ejemplo 1: Suma de ventas por Producto y Región

Este ejemplo crea una tabla que resume el total de ventas (usando la función SUMA) para cada producto (filas) en cada región (columnas).

=PIVOTARPOR(A2:A8; B2:B8; D2:D8; SUMA)

Resultado:

Este Norte Sur
Manzanas 270 210
Naranjas 180 200
Peras 90 110

Ejemplo 2: Promedio de ventas con totales y ordenación

En este caso, calculamos el promedio de ventas por vendedor (filas) y región (columnas). Añadimos totales generales para filas y columnas y ordenamos los vendedores por el total de sus ventas (columna «Total general») de mayor a menor.

=PIVOTARPOR(C2:C8; B2:B8; D2:D8; PROMEDIO; 3; 1; -4; 1)
  • C2:C8: Vendedores como filas.
  • B2:B8: Regiones como columnas.
  • D2:D8: Ventas para agregar.
  • PROMEDIO: Función de agregación.
  • 3: Indica que los datos tienen encabezados y deben mostrarse.
  • 1: Añade totales generales para las filas.
  • -4: Ordena las filas según la cuarta columna (el total general) en orden descendente.
  • 1: Añade totales generales para las columnas.

Resultado:

Vendedor Este Norte Sur Total general
Luis 180 200 190
Juan 120 210 165
Ana 90 130 110
Total general 90 144 205 151.43

Ejemplo 3: Filtrar datos antes de pivotar

Este ejemplo muestra el total de ventas por producto y región, pero únicamente para las ventas realizadas por «Ana».

=PIVOTARPOR(A2:A8; B2:B8; D2:D8; SUMA; 0; 0; 0; 0; 0; C2:C8="Ana")

El último argumento, C2:C8="Ana", actúa como matriz_filtro, asegurando que solo se incluyan en el cálculo las filas donde el vendedor es «Ana».

Resultado:

Este Norte
Manzanas 150
Peras 90 110

Observaciones

PIVOTARPOR es una alternativa potente a las tablas dinámicas tradicionales cuando se necesita un resultado que se actualice automáticamente con los cambios en los datos de origen sin necesidad de refrescar manualmente.

Errores comunes

  • #¡VALOR!: Ocurre si el argumento función no es una lambda válida o si los rangos de entrada no tienen las dimensiones correctas.
  • #¡CALC!: Se produce si la matriz_filtro excluye todos los datos, resultando en una matriz vacía. También puede aparecer si la lambda contiene construcciones no soportadas.
  • #DESBORDAMIENTO!: El rango de celdas donde la fórmula debería devolver los resultados no está vacío.
  • #NOMBRE?: Ocurre si se utiliza la función en una versión de Excel que no la soporta.

Disponibilidad por versión de Excel

La función PIVOTARPOR está disponible únicamente para suscriptores de Microsoft 365.

Compatibilidad

Software Compatibilidad Notas Alternativa
Microsoft Excel ✔️ Disponible en Microsoft 365. Tablas dinámicas (característica)
Google Sheets No existe una función equivalente directa. Función QUERY con la cláusula PIVOT.
LibreOffice Calc Tabla dinámica (característica)
OpenOffice Calc Tabla dinámica (característica)
WPS Office Spreadsheets Tabla dinámica (característica)
Apple Numbers Tabla dinámica (característica)

Funciones Relacionadas

  • AGRUPARPOR: Similar a PIVOTARPOR, pero solo permite agrupar por filas, no por columnas.
  • FILTRAR: Permite filtrar un rango de datos basado en los criterios que definas. Útil para crear el argumento matriz_filtro.
  • ORDENAR: Ordena el contenido de un rango o matriz. PIVOTARPOR tiene sus propios argumentos de ordenación integrados.

Ver también...