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.
