Resumen —
GROUPBY(campos_fila; valores; función)toma una columna por la que agrupar, una columna de números y una agregación, y derrama una tabla resumen terminada:=GROUPBY(C2:C1000; D2:D1000; SUM)devuelve cada región con su total. La única regla que pilla a todos: pasa la función por su nombre —SUM, noSUM()— porque el tercer argumento es una función, no un valor. A diferencia de una tabla dinámica, se recalcula en el instante en que cambian tus datos, sin Actualizar. Es el reemplazo en una sola fórmula de UNIQUE + SUMIFS. Necesita Excel 365 (llegó en 2024–2025); no está en 2021 ni anteriores.
=GROUPBY(C2:C1000; D2:D1000; SUM) ' cada región, con sus ventas totales
=GROUPBY(C2:C1000; D2:D1000; AVERAGE) ' cambia la agregación — solo el nombre
=GROUPBY(C2:C1000; D2:D1000; COUNT) ' cuántas filas por región
=GROUPBY(B2:C1000; D2:D1000; SUM) ' dos columnas de agrupación -> una jerarquía
=GROUPBY(C2:C1000; D2:D1000; SUM; 0; 0; -2) ' sin totales, ordenado por el total, descendente
Durante treinta años, resumir datos en Excel significaba abandonar tus fórmulas. O
bien construías una tabla dinámica — un objeto manual que queda obsoleto en cuanto
cambian los datos y necesita un clic derecho en Actualizar — o ensamblabas a mano un
resumen con UNIQUE para listar las categorías y
SUMIFS para totalizar cada una. GROUPBY (2024) acaba
con ambas tareas. Dejas de construir un resumen y empiezas a describirlo: nombra el
campo por el que agrupar, los valores que agregar y cómo — y Excel derrama el informe
en vivo.
Lo que aprenderás
- El modelo mental: tú describes un informe y Excel lo derrama
- Los tres argumentos obligatorios — y la trampa del tercero
- Por qué pasas
SUM, noSUM()(el error nº1) - Agrupar por dos o más columnas y totalizar más de un valor
- Añadir totales generales y subtotales con
total_depth - Ordenar por el valor agregado sin envolver en SORT
- Por qué supera a UNIQUE + SUMIFS y, a menudo, a la tabla dinámica
El modelo mental: describe el informe, no lo construyas
Una tabla dinámica es una cosa que construyes — arrastras campos a casillas y produce
un bloque de celdas desconectado de tus fórmulas y congelado hasta que lo actualizas.
GROUPBY es una fórmula que produce el mismo bloque pero lo mantiene vivo. El cambio
es de sustantivo a verbo: en lugar de construir un objeto resumen, escribes una frase
que dice «agrupa estas, totaliza aquellas».
=GROUPBY(C2:C1000; D2:D1000; SUM)
' └ agrupa por └ suma └ cómo
Léelo de izquierda a derecha: agrupa por la columna de región, suma la columna
de ventas, usando SUM. El resultado se derrama — una fila por cada región distinta,
cada una con su total, más un total general — y cada uno de esos números se actualiza
en el instante en que cambia un valor de D2:D1000. Sin Actualizar, sin caché obsoleta
de tabla dinámica. Ese recálculo en vivo es toda la razón para recurrir a GROUPBY en
lugar de una tabla dinámica cuando el resumen alimenta un panel.
Los tres argumentos obligatorios
Todo lo demás es opcional. Un GROUPBY que funciona necesita exactamente tres cosas:
=GROUPBY( campos_fila ; valores ; función )
' qué qué cómo
' agrupar agregar agregar
campos_fila— la columna (o columnas) cuyos valores distintos se convierten en las filas de tu resumen:C2:C1000, la columna de región.valores— la columna de datos que procesar:D2:D1000, las ventas.función— cómo procesarla:SUM,AVERAGE,COUNT,MAX,MINy más.
Dale esas tres cosas y obtienes una tabla ordenada, sin duplicados y totalizada. Pero ese tercer argumento es donde casi todo el mundo tropieza la primera vez.
La trampa nº1: pasa SUM, no SUM()
El argumento función no es un valor — es una función en sí misma, entregada por su
nombre para que GROUPBY pueda aplicarla a cada grupo por ti. Estás pasando la
herramienta, no el resultado de usarla.
=GROUPBY(C2:C1000; D2:D1000; SUM) ' CORRECTO — el nombre de la función
=GROUPBY(C2:C1000; D2:D1000; SUM()) ' MAL — #CALC!/error, la llamaste sin datos
=GROUPBY(C2:C1000; D2:D1000; SUM(D:D)) ' MAL — eso es un número, no una función
Piensa en SUM aquí como cuando le pasas a alguien una receta, no un pastel terminado.
GROUPBY toma la receta SUM y la ejecuta una vez por región entre bastidores.
Escribir SUM() o SUM(D2:D1000) colapsa todo a un solo valor antes de que GROUPBY
vea siquiera los grupos, que es exactamente lo que no quieres. La regla: el tercer
argumento es siempre un nombre de función a secas — SUM, AVERAGE, COUNT,
PERCENTOF — nunca uno llamado.
Agrupar por más de una columna
Apunta campos_fila a dos columnas contiguas y GROUPBY construye una jerarquía — la
primera columna es el grupo exterior, la segunda se anida dentro:
=GROUPBY(B2:C1000; D2:D1000; SUM) ' Región y luego Producto dentro de cada región, con subtotal
Obtienes Región como nivel superior y, sangrados debajo de cada una, sus Productos — la misma forma que una tabla dinámica te da con dos campos de fila, pero como fórmula en vivo. Las columnas deben ser contiguas (o apiladas con HSTACK); se leen de izquierda a derecha, del grupo más externo al más interno.
Totalizar más de un valor a la vez
Ensancha valores a varias columnas y cada una se agrega en paralelo:
=GROUPBY(C2:C1000; D2:E1000; SUM) ' las Ventas totales Y las Unidades totales de cada región
Ahora cada fila de región muestra dos totales — Ventas y Unidades — en columnas
contiguas. Este es el caso de informe cotidiano (ingresos, coste, unidades, margen,
todo por región) que antes significaba un SUMIFS por métrica y por categoría; aquí es
una sola fórmula que crece a medida que ensanchas el rango valores.
Añade totales y subtotales con total_depth
El quinto argumento, total_depth, controla las filas de total. Omítelo y Excel es
automático — un total general, más subtotales donde la agrupación lo permita. Puedes
fijarlo tú en su lugar:
=GROUPBY(C2:C1000; D2:D1000; SUM; ; 0) ' 0 = ningún total
=GROUPBY(C2:C1000; D2:D1000; SUM; ; 1) ' 1 = solo el total general
=GROUPBY(B2:C1000; D2:D1000; SUM; ; 2) ' 2 = total general + subtotal por grupo exterior
=GROUPBY(C2:C1000; D2:D1000; SUM; ; -1) ' negativo = totales ARRIBA en lugar de abajo
Los dos puntos y coma saltan field_headers (el cuarto argumento) para llegar a
total_depth. Un valor negativo es el pequeño y útil truco que casi todo el mundo se
pierde: mueve los totales por encima del detalle (-1 solo general, -2 con
subtotales), que es lo que quieres cuando el resumen se sitúa en la parte superior de un
panel y no quieres que el total general se te escape por abajo.
Ordena por el valor agregado — sin necesidad de SORT
El instinto es envolver todo en SORT para clasificar los
grupos por tamaño. No hace falta — sort_order viene de serie, y ordena por columnas de
resultado, no solo por la etiqueta del grupo:
=GROUPBY(C2:C1000; D2:D1000; SUM; ; ; 2) ' orden ascendente por la columna 2 (el total)
=GROUPBY(C2:C1000; D2:D1000; SUM; ; ; -2) ' orden DESCENDENTE por el total — la mayor región primero
sort_order es un número de columna: 1 es la columna del grupo, 2 es la primera
columna agregada, y un número negativo ordena esa columna de forma descendente. Así
que -2 te da la clásica clasificación «el mayor primero» en un solo argumento. Recurrir
a SORT alrededor de un GROUPBY casi siempre significa que olvidaste que este
argumento existe.
Por qué sustituye a UNIQUE + SUMIFS
Antes de GROUPBY, un resumen basado en fórmulas tomaba dos pasos: listar las categorías
distintas y luego totalizar cada una.
' El viejo patrón de dos pasos:
=UNIQUE(C2:C1000) ' paso 1: obtén la lista de regiones (se derrama hacia abajo)
=SUMIFS(D:D; C:C; F2#) ' paso 2: un SUMIFS por región al lado
' El reemplazo con GROUPBY:
=GROUPBY(C2:C1000; D2:D1000; SUM) ' ambos pasos, una fórmula, más totales y ordenación
El viejo patrón sigue funcionando y vale la pena conocerlo — pero GROUPBY pliega el
UNIQUE, el SUMIFS, la ordenación y los totales en una sola expresión que no puede
desincronizarse (en la versión de dos pasos, un UNIQUE que se derrama más lejos que tu
columna de SUMIFS descarta categorías en silencio). Cuando necesitas las categorías y
los agregados juntos, GROUPBY es la herramienta más limpia; reserva SUMIFS para traer
un único total condicional a una celda concreta.
El criterio
Usa GROUPBY cuando quieras un resumen que se mantenga vivo y alimente otras
fórmulas — una tarjeta de panel, una cifra que se recalcula a medida que llegan datos,
una tabla que referenciarás en otro sitio. Usa una tabla dinámica cuando quieras
explorar de forma interactiva: arrastrar campos, añadir segmentaciones, doble clic para
profundizar hasta las filas de origen. Reserva SUMIFS para el puntual «pon el total de
esta región en esta celda exacta». Las dos reglas mecánicas que evitan casi todos los
fallos: el tercer argumento es un nombre de función a secas (SUM, nunca SUM()), y
los totales, la ordenación y el filtrado son argumentos que ya tienes — recurre a
total_depth, sort_order y filter_array antes de envolver la fórmula en nada. Una vez
que «resume esto» es una fórmula en lugar de un objeto, los informes dejan de ser una
tarea que rehaces y pasan a ser algo que se mantiene solo.
Cómo ayuda ExcelMaster
GROUPBY es potente, pero sus argumentos opcionales son posicionales — te saltas un punto
y coma y estás ajustando el que no es. Dile a ExcelMaster «total de ventas por
región, ordenado de mayor a menor, con un total general» y escribe
=GROUPBY(C2:C1000; D2:D1000; SUM; ; 1; -2) con los puntos y coma vacíos en los sitios
correctos. Pídele «valor medio de pedido y número de pedidos por cliente» y ensancha
valores y elige las agregaciones. Y si pegas un GROUPBY que devuelve #CALC! porque
dice SUM() en lugar de SUM, o sigues manteniendo a mano un bloque de UNIQUE + SUMIFS, detecta el patrón y lo reescribe como una sola fórmula.
Preguntas frecuentes
¿Qué hace GROUPBY en Excel?
GROUPBY(campos_fila; valores; función) agrupa las filas por los valores distintos de
campos_fila, agrega los valores coincidentes con función (como SUM o AVERAGE) y
derrama una tabla resumen ordenada y totalizada. Es una versión en fórmula del
comportamiento básico de una tabla dinámica, y se recalcula automáticamente cada vez que
cambian los datos subyacentes.
¿Por qué paso SUM en lugar de SUM() en GROUPBY?
Porque el tercer argumento es una función, no un valor. GROUPBY aplica esa función a
cada grupo él mismo, así que le entregas la función por su nombre — SUM — y dejas que él
haga la llamada. Escribir SUM() o SUM(D:D) produce un solo número o un error en lugar
de una agregación por grupo. Lo mismo vale para AVERAGE, COUNT, MAX, PERCENTOF y
cualquier LAMBDA.
¿Cómo ordeno un GROUPBY por el total, de mayor a menor?
Usa el argumento sort_order (el sexto): =GROUPBY(C2:C1000; D2:D1000; SUM; ; ; -2). El
número es un índice de columna — 2 es la primera columna agregada — y un signo negativo
la ordena de forma descendente, así que -2 clasifica los grupos del total más grande al
más pequeño. No necesitas envolver la fórmula en SORT.
¿Puede GROUPBY agrupar por dos columnas y totalizar dos valores?
Sí. Para dos niveles de agrupación, dale a campos_fila dos columnas contiguas
(=GROUPBY(B2:C1000; D2:D1000; SUM)) y la primera anida a la segunda. Para dos métricas,
ensancha valores a dos columnas (=GROUPBY(C2:C1000; D2:E1000; SUM)) y cada una se
agrega en paralelo. Puedes hacer ambas cosas a la vez.
¿Qué versiones de Excel tienen GROUPBY?
GROUPBY es una función de Microsoft 365 que se desplegó a lo largo de 2024–2025, primero
a los Insiders y luego al Canal actual. No está disponible en Excel 2021, 2019, 2016
ni en Excel para la web en compilaciones antiguas. Si =GROUPBY(...) devuelve #NAME?,
tu compilación aún no la tiene — el patrón UNIQUE +
SUMIFS es la alternativa.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación 18-07-2026.
Guías relacionadas: Excel PIVOTBY · GROUPBY y PIVOTBY — Avanzado · Excel SUMIFS · Excel UNIQUE · Excel FILTER
