La función DINAMIZARPOR (PIVOTBY en su versión original en inglés) permite crear una tabla resumen de datos agrupados por filas y columnas, similar a una Tabla Dinámica, pero utilizando una única fórmula. Es una función de matriz dinámica que actualiza los resultados automáticamente cuando cambian los datos de origen, sin necesidad de refrescar manualmente.
Sintaxis
=DINAMIZARPOR(row_fields; col_fields; values; function; [field_headers]; [row_total_depth]; [row_sort_order]; [col_total_depth]; [col_sort_order]; [filter_array])
Descripción de los argumentos:
- row_fields La matriz o rango que contiene los valores para agrupar por filas. Obligatorio.
- col_fields La matriz o rango que contiene los valores para agrupar por columnas. Obligatorio.
- values La matriz o rango de datos numéricos que se desea agregar o calcular. Obligatorio.
- function La función lambda o de agregación que se aplicará a los valores (ej.
SUMA,PROMEDIO,MAX, etc.). Obligatorio. - field_headers Especifica si los datos de origen tienen encabezados y si deben mostrarse en el resultado (0: No, 1: Sí y no mostrar, 2: No y generar, 3: Sí y mostrar). Opcional.
- row_total_depth Controla la visualización de totales y subtotales en las filas (0: Sin totales, 1: Grand total, 2: Grand total y subtotales, -1: Grand total arriba, etc.). Opcional.
- row_sort_order Define el orden de clasificación de las filas. Usar números positivos para ascendente y negativos para descendente. Opcional.
- col_total_depth Controla la visualización de totales y subtotales en las columnas. Opcional.
- col_sort_order Define el orden de clasificación de las columnas. Opcional.
- filter_array Una matriz booleana o expresión para filtrar los datos antes de procesarlos (similar a la función FILTRAR). Opcional.
Ejemplos
Supongamos que tenemos la siguiente tabla de ventas en el rango A1:D6:
| Producto | Región | Vendedor | Ventas |
|---|---|---|---|
| Laptop | Norte | Ana | 1000 |
| Laptop | Sur | Luis | 1200 |
| Móvil | Norte | Ana | 500 |
| Móvil | Sur | Carlos | 600 |
| Tablet | Norte | Ana | 300 |
Ejemplo 1 Resumen básico de ventas por Producto (filas) y Región (columnas).
Queremos sumar las ventas, colocando los productos en las filas y las regiones en las columnas.
=DINAMIZARPOR(A2:A6; B2:B6; D2:D6; SUMA)
Resultado esperado: Una matriz que muestra la suma de ventas cruzada entre productos y regiones.
Ejemplo 2 Añadiendo encabezados y ordenando.
Vamos a agrupar igual que antes, pero indicando que queremos mostrar encabezados (3) y ordenar las filas por ventas totales de forma descendente (-2, ya que ordena por el campo de valor agregado).
=DINAMIZARPOR(A2:A6; B2:B6; D2:D6; SUMA; 3; 1; -2)
Ejemplo 3 Uso con función de porcentaje.
En lugar de sumar, queremos ver qué porcentaje del total representa cada cruce usando la función PORCENTAJE.DE (PERCENTOF).
=DINAMIZARPOR(A2:A6; B2:B6; D2:D6; PORCENTAJE.DE)
Observaciones
La función DINAMIZARPOR está diseñada para ser una alternativa ligera y basada en fórmulas a las Tablas Dinámicas tradicionales. Al ser una función de matriz dinámica, si el resultado no cabe en las celdas adyacentes, devolverá un error de desbordamiento (#¡DESBORDAMIENTO!).
Una gran ventaja es que, a diferencia de las Tablas Dinámicas, los resultados de DINAMIZARPOR se actualizan en tiempo real en cuanto se modifica un dato de origen, sin necesidad de hacer clic en «Actualizar».
Errores comunes
- #¡DESBORDAMIENTO! Ocurre si no hay suficientes celdas vacías para mostrar el resultado de la matriz dinámica.
- #¡VALOR! Puede aparecer si las dimensiones de los argumentos
row_fields,col_fieldsyvaluesno coinciden (deben tener la misma altura). - #¿NOMBRE? Si la versión de Excel no está actualizada o la función aún no se ha desplegado en tu anillo de actualizaciones (Insider/Beta), Excel no reconocerá la función.
Disponibilidad por versión de Excel
Disponible actualmente para usuarios de Microsoft 365 Insiders (Canal Beta). Es una función nueva introducida a finales de 2023/principios de 2024, por lo que puede no estar disponible todavía en las versiones estándar (Canal Actual o Empresarial) de Excel.
Compatibilidad
| Software | Compatibilidad | Notas | Alternativa |
|---|---|---|---|
| Microsoft Excel | ✔️ | Solo en versiones Microsoft 365 (Beta/Insiders). | — |
| Google Sheets | ❌ | No existe una función nativa idéntica con este nombre. | Se puede simular usando QUERY o combinando UNIQUE y SUMIFS. |
| LibreOffice Calc | ❌ | No disponible. | Usar Tabla Dinámica estándar. |
| OpenOffice Calc | ❌ | No disponible. | Usar Tabla Dinámica estándar. |
| WPS Office Spreadsheets | ❌ | No disponible. | Usar Tabla Dinámica estándar. |
| Apple Numbers | ❌ | No disponible. | Categorías inteligentes o Tablas Pivot. |
Funciones Relacionadas
- AGRUPARPOR (GROUPBY) Similar a DINAMIZARPOR pero solo agrupa por filas (lista plana), sin columnas dinámicas.
- UNICOS Extrae una lista de valores únicos, útil para construir resúmenes manuales.
- FILTRAR Permite filtrar datos dinámicamente basándose en criterios.
