Matemáticas y totales condicionales

Función SUMAPRODUCTO en Excel: multiplicar y sumar en un solo paso

Multiplica rangos fila a fila y después suma los resultados.

SUMAPRODUCTO multiplica las celdas correspondientes de dos o más rangos y totaliza los resultados. Unidades por precio unitario, a lo largo de una columna entera, en una sola celda: sin columna auxiliar de totales de línea que construir y luego ocultar.

Ese es el uso de cada día, y sería una función modesta si fuera lo único. Su segunda vida viene de cómo trata las pruebas lógicas: como VERDADERO vale 1 y FALSO vale 0, multiplicar un rango por una condición anula las filas que no la cumplen. =SUMAPRODUCTO((D2:D6="Norte")*B2:B6) totaliza las filas del Norte sin que intervenga SUMAR.SI.

SUMAR.SI.CONJUNTO ha hecho innecesario casi todo eso, y conviene recurrir antes a ella: es más clara y más rápida. SUMAPRODUCTO conserva su sitio para lo que aquella aún no puede hacer: condiciones O dentro de una sola fórmula, criterios calculados con una función en vez de comparados con un valor, y cualquier libro que deba abrirse en una versión antigua de Excel.

Sintaxis

=SUMAPRODUCTO(matriz1; [matriz2]; …)

Argumentos

matriz1
Obligatorio
El primer rango. Con un solo argumento se comporta exactamente como SUMA.
matriz2; …
Opcional
Más rangos, multiplicados elemento a elemento con el primero. Todos deben tener exactamente la misma forma.

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:D6. Fíjate en el hueco de C4 y el texto de C6.

ABCD
1ArtículoUnidadesPrecio unitarioRegión
2Taladro inalámbrico1289.99Norte
3Alargador4012.5Sur
4Gafas de seguridad8Norte
5Guantes de trabajo255.4Sur
6Cinturón de herramientas6n/dNorte

Ejemplos resueltos

=SUMAPRODUCTO(B2:B3; C2:C3)

Resultado: 1579,88

12 × 89,99 más 40 × 12,50. El total ponderado, sin necesidad de una columna de totales de línea.

=SUMAPRODUCTO((D2:D6="Norte") * B2:B6)

Resultado: 26

La condición se evalúa como VERDADERO/FALSO, que multiplica como 1/0, así que solo sobreviven las filas del Norte.

=SUMAPRODUCTO((D2:D6="Norte") * (B2:B6>10))

Resultado: 1

Dos condiciones multiplicadas dan un recuento condicional: la forma de hacerlo antes de CONTAR.SI.CONJUNTO.

=SUMAPRODUCTO(((D2:D6="Norte") + (B2:B6>30)) > 0)

Resultado: 4

Lógica O, que CONTAR.SI.CONJUNTO no puede expresar. Sumar condiciones da 2 donde se cumplen ambas, así que el >0 lo aplana de nuevo a un recuento de filas.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Función SUMAPRODUCTO

Errores habituales y cómo resolverlos

#¡VALOR!

Por qué ocurre: Los rangos tienen formas distintas, o uno contiene texto que acaba dentro de una operación aritmética.

Cómo resolverlo: Haz que todas las matrices tengan idéntica altura y anchura. Donde pueda haber texto, multiplica por una condición que lo excluya en vez de incluirlo en el producto.

Devuelve 0 sin motivo aparente

Por qué ocurre: Una de las condiciones no se cumple nunca, a menudo una comparación de texto derrotada por espacios sobrantes.

Cómo resolverlo: Evalúa cada paréntesis por separado: una condición que devuelve todo FALSO anula el producto entero.

Cuenta dos veces con condiciones O

Por qué ocurre: Sumar dos condiciones da 2 donde ambas se cumplen, y SUMAPRODUCTO totaliza ese 2 tan tranquila.

Cómo resolverlo: Envuelve la suma en una prueba >0 para aplanarla a 1, como en el cuarto ejemplo.

Consejos que conviene saber

  • Usa * entre condiciones para Y y + para O: esa es toda la gramática.
  • Recurre antes a SUMAR.SI.CONJUNTO y CONTAR.SI.CONJUNTO. SUMAPRODUCTO es para lo que ellas no pueden expresar, no un sustituto general.
  • SUMAPRODUCTO funciona con columnas enteras pero lee todas sus celdas, así que ajusta los rangos en archivos grandes.
  • El doble menos -- convierte VERDADERO/FALSO en 1/0 cuando no hay nada por lo que multiplicar: =SUMAPRODUCTO(--(D2:D6="Norte")).

Preguntas frecuentes

¿Cuándo debo usar SUMAPRODUCTO en lugar de SUMAR.SI.CONJUNTO?

Cuando necesites lógica O en una sola fórmula, cuando el criterio sea el resultado de una función y no una comparación simple, o cuando el libro deba abrirse en Excel 2003. Para condiciones Y corrientes, SUMAR.SI.CONJUNTO es más clara y más rápida y debería ser la opción por defecto.

¿Por qué funciona multiplicar por una condición?

Excel trata VERDADERO como 1 y FALSO como 0 en aritmética. Multiplicar un valor por una condición lo conserva cuando esta se cumple y lo anula cuando no, y SUMAPRODUCTO suma los supervivientes.

¿SUMAPRODUCTO necesita Ctrl+Mayús+Entrar?

No. Maneja matrices de forma nativa, que era su principal atractivo antes de las matrices dinámicas: daba comportamiento matricial sin la combinación de teclas que exigían las fórmulas matriciales antiguas.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.