Agrupar y sumar columnas específicas con AGRUPARPOR y ELEGIRCOLS

Un miembro de la comunidad necesita agrupar datos de una hoja de seguimiento y sumar solo determinadas columnas, sin incluir todas las del rango. Fernando sugiere usar APILARH para seleccionar las columnas de interés antes de agrupar.

John aporta la solución definitiva combinando AGRUPARPOR con ELEGIRCOLS para seleccionar exactamente qué columnas sumar:

``
=AGRUPARPOR(SEGUIMIENTO!A:A;ELEGIRCOLS(SEGUIMIENTO!C:F;1;2;4);SUMA;3)
`

Con ELEGIRCOLS(SEGUIMIENTO!C:F;1;2;4) se eligen las columnas 1, 2 y 4 del rango C:F (es decir, C, D y F, saltando la E). Luego AGRUPARPOR agrupa por la columna A y aplica SUMA` a las columnas seleccionadas. El tercer argumento (3) controla las opciones de ordenación.

Como buena práctica, John recomienda no usar columnas completas (A:A, C:F) sino rangos acotados, para mejorar el rendimiento.

AGRUPARPOR resuelve en una fórmula lo que antes pedía una tabla dinámica: agrupa por una columna y agrega el resto. El problema aparece cuando no quieres agregar todas las columnas del rango. Es lo que planteó un miembro de la comunidad con su hoja de seguimiento: necesitaba sumar unas columnas sí y otras no, sin que las intermedias se colaran en el resultado.

El primer enfoque: montar el rango a mano

Fernando apuntó la dirección correcta: si el rango de valores no puede ser continuo, constrúyelo tú antes de agrupar. Con APILARH puedes juntar las columnas que te interesan, en el orden que quieras, y pasarle a AGRUPARPOR ese bloque ya preparado.

Es una solución válida y muy explícita: se ve de un vistazo qué columnas entran. El inconveniente es que la fórmula se alarga en cuanto son varias, y que hay que repetir la referencia a la hoja en cada trozo.

La solución de John: ELEGIRCOLS dentro de AGRUPARPOR

=AGRUPARPOR(SEGUIMIENTO!A:A; ELEGIRCOLS(SEGUIMIENTO!C:F; 1; 2; 4); SUMA; 3)

La pieza interesante es la del medio. ELEGIRCOLS(SEGUIMIENTO!C:F; 1; 2; 4) toma el rango C:F y se queda con sus columnas primera, segunda y cuarta, es decir, C, D y F, saltándose la E. El resultado es un bloque de tres columnas que AGRUPARPOR agrega sin enterarse de que en el origen no eran contiguas.

Lo que hace elegante a esta versión es el detalle de la numeración relativa: los índices que le pasas a ELEGIRCOLS no son columnas de la hoja, son posiciones dentro del rango que le das. En C:F, la posición 1 es C y la 4 es F. Si mañana mueves el bloque de datos, los índices siguen siendo correctos mientras la estructura interna no cambie.

El orden también es tuyo: si escribes 4; 1; 2 obtendrás las mismas columnas colocadas de otra forma en el resultado. ELEGIRCOLS selecciona y reordena en la misma pasada.

Los argumentos opcionales de AGRUPARPOR

En la fórmula aparece un 3 después de SUMA. AGRUPARPOR tiene varios argumentos opcionales tras la función de agregación —relacionados con las cabeceras de campo, los totales, el orden y un filtro— y merece la pena revisarlos con calma en la ayuda de la función, porque cambian bastante el aspecto del resultado. Es de las funciones donde los opcionales hacen tanto trabajo como los obligatorios.

El apunte de rendimiento

John cerró con una recomendación que aplica a casi todas las fórmulas de matriz dinámica: no uses columnas completas. Referencias como A:A o C:F obligan a Excel a considerar más de un millón de filas por columna, aunque tu tabla tenga trescientas. En una fórmula suelta se nota poco; en una hoja con decenas de fórmulas de este tipo, la diferencia es evidente.

Las dos alternativas razonables:

  • Acota el rango a lo que ocupa realmente la tabla y revísalo cuando crezca.
  • Convierte el origen en tabla y usa referencias estructuradas, que se ajustan solas al añadir filas y son la opción más cómoda a medio plazo.

Funciones clave

  • AGRUPARPOR: agrupa por uno o varios campos y aplica una función de agregación a las columnas de valores.
  • ELEGIRCOLS: extrae columnas concretas de un rango por su posición relativa dentro de ese rango, y permite reordenarlas.
  • APILARH: junta bloques de columnas en horizontal; la alternativa más explícita para montar el rango de valores.
  • SUMA: aquí se pasa como función de agregación, sin envolverla en LAMBDA.

Conclusión

La idea que conviene llevarse es que AGRUPARPOR no exige que los datos vengan como están en la hoja. Puedes preparar el rango de valores en la propia fórmula —seleccionando columnas con ELEGIRCOLS o montándolas con APILARH— y pasarle exactamente lo que quieres agregar. Es un patrón que evita muchísimas columnas auxiliares.

Este tipo de afinados salen constantemente en la comunidad de InflueXcel: alguien pregunta cómo saltarse una columna y la respuesta acaba siendo una función que no conocía.

Más casos con estas funciones

Más contenido de Excel en InflueXcel