Por qué SUMAR.SI falla al arrastrar y cómo resolverlo con AGRUPARPOR

Un miembro de la comunidad comparte un archivo con datos de nóminas de varias empresas (cantidad, salario base, bonificación, vacaciones, descuentos...) y quiere resumirlos en una tabla cruzada: empresas en columnas y conceptos en filas. Lo ha conseguido con tabla dinámica, pero quiere replicarlo con fórmulas. Intenta con SUMAR.SI y con AGRUPARPOR — la segunda funciona, pero la primera no da los valores correctos al arrastrar.

El problema está en las referencias. La fórmula original:

``
=SUMAR.SI(Datos!$B:$B;$D$3;Datos!$C:$C)
`

tiene dos errores al arrastrarla:

- El criterio $D$3 bloquea fila y columna. Al arrastrar hacia abajo, siempre busca "PRUEBA1". Debería ser D$3 (fila fija, columna libre para que cambie al arrastrar a la derecha).

- El rango de suma Datos!$C:$C apunta siempre a la columna Cantidad. Al arrastrar a la derecha debería cambiar a Salario Base, Bonificación, etc. Pero como está referenciando columnas fijas, siempre suma lo mismo.

Un miembro señala el error y comparte el archivo corregido con las referencias ajustadas. Otro aporta una solución más completa: usar INDICE + COINCIDIR para construir un rango dinámico en el tercer argumento de SUMAR.SI, de forma que la columna de suma cambie automáticamente según la posición.

Pero la alternativa moderna simplifica todo: AGRUPARPOR con encabezados genera la tabla resumen en una sola fórmula:

`
=AGRUPARPOR(Datos!B1:B23;Datos!C1:I23;SUMA;3;1)
`

El cuarto argumento (3) incluye encabezados de fila y columna, y el quinto (1) añade totales generales. Y si se necesita el resultado transpuesto (empresas en columnas en vez de filas), basta con envolver todo en TRANSPONER.

Funciones utilizadas: SUMAR.SI, AGRUPARPOR, INDICE, COINCIDIR, TRANSPONER`

El problema: SUMAR.SI que no cuadra al arrastrar

Un miembro de la comunidad tenía datos de nóminas de varias empresas (cantidad, salario base, bonificación, vacaciones, descuentos...) y quería resumirlos en una tabla cruzada: empresas en columnas, conceptos en filas. Lo había logrado con una tabla dinámica, pero quería replicarlo con fórmulas. Probó con SUMAR.SI y con AGRUPARPOR. La segunda funcionaba; la primera daba valores incorrectos al arrastrarla.

Este es uno de los errores más comunes con SUMAR.SI, y casi siempre tiene la misma causa: las referencias mal ancladas.

Por qué falla: referencias absolutas mal puestas

La fórmula original era:

=SUMAR.SI(Datos!$B:$B; $D$3; Datos!$C:$C)

Tiene dos problemas al arrastrarla por la tabla cruzada:

  • El criterio $D$3 bloquea fila y columna. Con el signo de dólar delante de ambas, al arrastrar hacia la derecha o hacia abajo siempre busca lo mismo (el valor de D3). Para una tabla cruzada, el criterio de empresa debería ser D$3: fija la fila (siempre la cabecera) pero deja libre la columna, para que cambie de empresa al arrastrar a la derecha.
  • El rango de suma Datos!$C:$C apunta siempre a la misma columna. Está fijado a la columna de Cantidad, así que da igual a qué concepto arrastres: siempre suma Cantidad. Debería ir cambiando a Salario Base, Bonificación, etc., según la fila.

La regla mental es sencilla: en una tabla cruzada, piensa qué debe cambiar y qué debe quedarse fijo en cada dirección, y coloca los dólares en consecuencia. Fila de cabecera fija con $ delante del número; columna que avanza sin $ delante de la letra.

Una solución intermedia: INDICE + COINCIDIR

Para que el rango de suma cambie solo según el concepto, otro miembro propuso construirlo de forma dinámica con INDICE y COINCIDIR. La idea es que el tercer argumento de SUMAR.SI (el rango a sumar) se calcule según la posición del concepto, en lugar de escribirlo a mano y arrastrarlo. Funciona, pero sigue siendo una fórmula que hay que copiar por toda la tabla.

La vía moderna: AGRUPARPOR en una sola fórmula

La alternativa de Excel 365 simplifica todo. AGRUPARPOR con encabezados genera la tabla resumen entera en una sola fórmula:

=AGRUPARPOR(Datos!B1:B23; Datos!C1:I23; SUMA; 3; 1)
  • El primer argumento son las filas (las empresas).
  • El segundo, las columnas de valores a sumar (todos los conceptos de golpe).
  • SUMA es la función de agregado.
  • El cuarto argumento, 3, incluye encabezados de fila y de columna.
  • El quinto, 1, añade totales generales.

Y si necesitas el resultado transpuesto (empresas en columnas en vez de filas), basta con envolverlo todo en TRANSPONER. Una función, cero arrastres, cero referencias que se descuadran.

Funciones clave

  • SUMAR.SI: suma condicional clásica; su talón de Aquiles son las referencias al arrastrar.
  • INDICE + COINCIDIR: permiten construir un rango de suma dinámico según la posición.
  • AGRUPARPOR: genera la tabla cruzada completa con encabezados y totales en una fórmula.
  • TRANSPONER: gira filas por columnas si necesitas la orientación contraria.

Conclusión

Cuando SUMAR.SI "no suma bien al arrastrar", el culpable casi nunca es la función: son los dólares mal puestos en el criterio y en el rango de suma. Aprender a anclar referencias sigue siendo imprescindible, pero para tablas resumen completas, AGRUPARPOR te ahorra el problema de raíz. Dudas tan cotidianas como esta se resuelven a diario en la comunidad de InflueXcel.

Más casos con estas funciones

Más contenido de Excel en InflueXcel