🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Función GROUPBY en Excel — Agrupa y resume datos con una sola fórmula

|

Función GROUPBY en Excel — Agrupa y resume datos con una sola fórmula

ResumenGROUPBY(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 nombreSUM, no SUM() — 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, no SUM() (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óncómo procesarla: SUM, AVERAGE, COUNT, MAX, MIN y 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 secasSUM, 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