La función PIVOTARPOR en Excel permite crear una tabla dinámica de forma resumida a partir de un rango o matriz de datos. Es una alternativa moderna y flexible a las tablas dinámicas tradicionales, ya que se basa en una única fórmula de matriz dinámica. Esta función es ideal para agrupar, agregar, ordenar y filtrar datos, presentando los resultados con filas y columnas pivoteadas según la configuración especificada.
Al ser una función de matriz dinámica, los resultados se «desbordan» automáticamente en las celdas adyacentes, creando la tabla completa a partir de una sola fórmula.
Sintaxis
=PIVOTARPOR(campos_fila; campos_columna; valores; función; [orden_campos_fila]; [orden_campos_col]; [orden_filas]; [orden_columnas]; [filtro_matriz]; [encabezados])
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 y crear los encabezados de fila. Obligatorio.
- campos_columna: Una matriz o rango orientado a columnas que contiene los valores que se usarán para agrupar las columnas y crear los encabezados de columna. Obligatorio.
- valores: Una matriz o rango orientado a columnas con los datos que se van a agregar. Obligatorio.
- función: Una función LAMBDA o una función de agregación estándar (como SUMA, PROMEDIO, CONTARA, etc.) que define cómo se agregan los valores. Obligatorio.
- orden_campos_fila: Especifica cómo se ordenan los encabezados de fila. Puede ser un número que indica la columna de la tabla final por la que ordenar, o una matriz de números para múltiples niveles de ordenación. Por defecto, se ordena de forma ascendente. Un número negativo indica orden descendente. Opcional.
- orden_campos_col: Especifica cómo se ordenan los encabezados de columna. Funciona de manera similar a orden_campos_fila. Opcional.
- orden_filas: [Argumento obsoleto, use orden_campos_fila en su lugar]. Opcional.
- orden_columnas: [Argumento obsoleto, use orden_campos_col en su lugar]. Opcional.
- filtro_matriz: Una matriz booleana (VERDADERO/FALSO) de una dimensión cuya altura debe coincidir con la de campos_fila. Solo se incluirán en el resultado las filas donde este argumento sea VERDADERO. Opcional.
- encabezados: Un número que especifica si los campos_fila y campos_columna tienen encabezados y si estos deben mostrarse en el resultado. Opcional.
- 0: No hay encabezados (predeterminado).
- 1: Sí, pero no se muestran.
- 2: No, pero se generan automáticamente.
- 3: Sí, y se muestran.
Ejemplos
Para los siguientes ejemplos, usaremos la siguiente tabla de datos de ventas ubicada en el rango A1:D13.
| Producto | Región | Mes | Ventas |
|---|---|---|---|
| Laptop | Norte | Enero | 12000 |
| Móvil | Sur | Enero | 8000 |
| Laptop | Este | Enero | 15000 |
| Tablet | Norte | Enero | 5000 |
| Laptop | Norte | Febrero | 13000 |
| Móvil | Sur | Febrero | 8500 |
| Móvil | Este | Febrero | 9500 |
| Tablet | Norte | Febrero | 5500 |
| Laptop | Sur | Marzo | 11000 |
| Móvil | Este | Marzo | 10000 |
| Tablet | Sur | Marzo | 6000 |
| Tablet | Norte | Marzo | 6200 |
Ejemplo 1: Tabla dinámica básica
Para crear una tabla que muestre el total de ventas por Producto (filas) y por Región (columnas), usamos la función SUMA para agregar los valores.
=PIVOTARPOR(A2:A13; B2:B13; D2:D13; SUMA)
Resultado: Se genera una tabla con los productos como filas, las regiones como columnas y la suma de las ventas en la intersección.
Ejemplo 2: Usar encabezados y ordenar resultados
Este ejemplo es similar al anterior, pero incluye los encabezados de la tabla original en la fórmula y muestra los encabezados en el resultado. Además, ordena las filas (productos) en orden alfabético descendente.
=PIVOTARPOR(A1:A13; B1:B13; D1:D13; SUMA; -1;;;;3)
En esta fórmula, -1 en el argumento orden_campos_fila indica que se debe ordenar por la primera columna de filas (Producto) de forma descendente. El 3 en el argumento encabezados indica que los rangos de entrada tienen encabezados y que deben mostrarse en la salida.
Ejemplo 3: Filtrar datos y usar LAMBDA para un cálculo personalizado
Vamos a crear una tabla que muestre el promedio de ventas por Mes (filas) y Región (columnas), pero solo para el producto «Laptop».
=PIVOTARPOR(C2:C13; B2:B13; D2:D13; PROMEDIO;;;;;A2:A13="Laptop")
El argumento filtro_matriz A2:A13="Laptop" crea una matriz de VERDADERO/FALSO que filtra los datos para incluir únicamente las filas correspondientes a «Laptop».
Observaciones
La función PIVOTARPOR es una de las funciones de matriz dinámica más potentes y, junto con AGRUPARPOR, revoluciona la forma de crear informes resumidos sin necesidad de las herramientas de Tabla Dinámica tradicionales.
Errores comunes
- #VALOR!: Ocurre si el argumento función no es un LAMBDA válido o si la matriz de filtro_matriz no tiene las dimensiones correctas.
- #CALC!: Se produce si la matriz resultante está vacía, por ejemplo, cuando el argumento filtro_matriz excluye todas las filas de los datos de origen.
- #DESBORDAMIENTO!: Aparece si el rango de celdas donde la fórmula debe devolver los resultados no está vacío y, por tanto, no puede expandirse.
Disponibilidad por versión de Excel
La función PIVOTARPOR está disponible en Microsoft 365 para escritorio, web y Mac.
Compatibilidad
| Software | Compatibilidad | Notas | Alternativa |
|---|---|---|---|
| Microsoft Excel | ✔️ | Disponible en Microsoft 365. | N/A |
| Google Sheets | ❌ | No existe una función equivalente directa. | Uso de la función QUERY con la cláusula PIVOT, o Tablas dinámicas. |
| LibreOffice Calc | ❌ | — | Tablas dinámicas (anteriormente conocido como Piloto de datos). |
| OpenOffice Calc | ❌ | — | Tablas dinámicas. |
| WPS Office Spreadsheets | ❌ | — | Tablas dinámicas. |
| Apple Numbers | ❌ | — | Tablas dinámicas. |
Funciones Relacionadas
- AGRUPARPOR: Similar a PIVOTARPOR, pero solo agrupa por filas, sin crear una dimensión de columnas pivoteadas.
- LAMBDA: Permite crear funciones personalizadas que pueden ser usadas como el argumento función para realizar agregaciones complejas.
- FILTRAR: Muy útil para crear el argumento filtro_matriz y filtrar los datos de origen antes de la agregación.
- ORDENAR: Aunque PIVOTARPOR tiene sus propios argumentos de ordenación, la función ORDENAR se puede anidar para aplicar criterios de ordenación más complejos al resultado final.
