function

AGRUPARPOR

Todo sobre la función AGRUPARPOR en Excel

La función AGRUPARPOR en Excel permite agrupar, agregar y ordenar los datos de un rango o matriz basándose en los valores de una o más columnas. Es una función de matriz dinámica muy potente y flexible, ideal para crear informes de resumen que tradicionalmente requerirían el uso de tablas dinámicas o fórmulas complejas.

Esta función genera una nueva tabla de resultados que se «derrama» (spills) automáticamente en las celdas adyacentes, resumiendo la información según los criterios especificados.

Sintaxis

=AGRUPARPOR(campos_fila; valores; función; [encabezados_campo]; [profundidad_total]; [orden]; [matriz_filtro])

La función AGRUPARPOR tiene los siguientes argumentos:

  • campos_fila: El rango de columnas por el que se desea agrupar. No puede incluir la columna de valores. Obligatorio.
  • valores: La columna (o columnas) de datos numéricos que se van a agregar. Obligatorio.
  • función: La función que se usará para la agregación. Puede ser una función de agregación estándar (como SUMA, PROMEDIO, CONTARA) o una función LAMBDA para cálculos personalizados. Obligatorio.
  • encabezados_campo: Especifica si los rangos de entrada tienen encabezados y si estos deben mostrarse en el resultado. Opcional.
    • 0 (o se omite): No hay encabezados.
    • 1: Sí, y no se muestran en el resultado.
    • 2: No, pero se generan automáticamente.
    • 3: Sí, y se muestran en el resultado.
  • profundidad_total: Define si se deben añadir filas de totales y subtotales al resultado. Opcional.
    • 0 (o se omite): Sin totales.
    • 1: Con totales generales.
    • 2: Con totales generales y subtotales.
    • -1: Totales generales en la parte superior.
    • -2: Totales generales y subtotales en la parte superior.
  • orden: Indica cómo ordenar los resultados. Puede ser un número único o una matriz de números que se corresponden con las columnas del resultado. Un número positivo ordena de forma ascendente y uno negativo de forma descendente. Opcional.
  • matriz_filtro: Una matriz booleana (VERDADERO/FALSO) del mismo tamaño que `campos_fila` para filtrar los datos antes de la agrupación. Solo se incluirán las filas donde el valor sea VERDADERO. Opcional.

Ejemplos

Para los siguientes ejemplos, usaremos la tabla de datos de ventas:

A B C D
1 Región Producto Vendedor Ventas
2 Norte Portátil Ana 1200
3 Sur Monitor Luis 350
4 Norte Teclado Ana 80
5 Norte Portátil Carlos 1150
6 Sur Portátil Luis 1300
7 Este Monitor Sara 400
8 Norte Teclado Carlos 95

Ejemplo 1: Agrupar ventas totales por Región

Esta fórmula agrupa los datos por la columna «Región» (A2:A8) y suma las «Ventas» (D2:D8) correspondientes a cada región.

=AGRUPARPOR(A2:A8; D2:D8; SUMA)

Resultado:

Norte 2525
Sur 1650
Este 400

Ejemplo 2: Agrupar por Región y Producto con Totales y Subtotales

Aquí agrupamos por dos columnas («Región» y «Producto»), calculamos el promedio de ventas, incluimos los encabezados en el resultado y añadimos totales generales y subtotales.

=AGRUPARPOR(A2:B8; D2:D8; PROMEDIO; 3; 2)

Resultado:

Región Producto PROMEDIO de Ventas
Norte Portátil 1175
Teclado 87.5
Total Norte 631.25
Sur Monitor 350
Portátil 1300
Total Sur 825
Este Monitor 400
Total Este 400
Total general 682.14

Ejemplo 3: Agrupar por Vendedor y filtrar ventas mayores a 100

Esta fórmula agrupa las ventas por vendedor, pero antes filtra los datos para incluir únicamente las ventas que superan los 100€. Además, ordena el resultado por el total de ventas de forma descendente.

=AGRUPARPOR(C2:C8; D2:D8; SUMA; 3; 1; -2; D2:D8>100)

Resultado:

Vendedor SUMA de Ventas
Total general 4400
Luis 1650
Ana 1200
Carlos 1150
Sara 400

Observaciones

AGRUPARPOR es una función de matriz dinámica. Esto significa que si el resultado ocupa más de una celda, se «derramará» automáticamente a las celdas adyacentes. Asegúrate de que haya suficientes celdas vacías para evitar un error de #¡DESBORDAMIENTO!.

Errores comunes

  • #¡CALC!: Ocurre si la `matriz_filtro` no devuelve ningún resultado (todas las filas se filtran) o si los rangos proporcionados están vacíos.
  • #¡VALOR!: Suele aparecer si el argumento `orden` es incorrecto (por ejemplo, un número de columna que no existe en el resultado).
  • #¡DESBORDAMIENTO!: Se produce si no hay suficientes celdas vacías para mostrar todos los resultados de la matriz.
  • #NOMBRE?: Ocurre si el texto proporcionado en el argumento `función` no se reconoce como una función válida.

Disponibilidad por versión de Excel

La función AGRUPARPOR está disponible para los suscriptores de Microsoft 365. Se ha ido implementando de forma gradual, por lo que podría no estar disponible en todas las versiones o canales de actualización.

Compatibilidad

Software Compatibilidad Notas Alternativa
Microsoft Excel ✔️ Disponible en versiones recientes de Microsoft 365.
Google Sheets No existe una función equivalente directa. Función QUERY con la cláusula GROUP BY.
LibreOffice Calc La funcionalidad se puede replicar con tablas dinámicas (Data Pilot). Tablas Dinámicas
OpenOffice Calc La funcionalidad se puede replicar con tablas dinámicas. Tablas Dinámicas
WPS Office Spreadsheets No confirmado, pero es muy improbable que esté disponible. Tablas Dinámicas
Apple Numbers No existe una función equivalente directa. Función de Categorías o tablas dinámicas.

Funciones Relacionadas

  • DINAMIZARPOR: Similar a AGRUPARPOR, pero permite crear resúmenes en formato de tabla de doble entrada (filas y columnas).
  • SUMAR.SI.CONJUNTO: Suma celdas que cumplen múltiples criterios. Es una alternativa clásica para agregaciones condicionales simples.
  • FILTRAR: Permite filtrar un rango de datos basándose en criterios definidos. Útil para preparar los datos antes de agruparlos.
  • LAMBDA: Permite crear funciones personalizadas que pueden ser usadas en el argumento `función` de AGRUPARPOR para realizar cálculos de agregación complejos.

Ver también...