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

Función SUMPRODUCT en Excel: multiplicar y luego sumar, y las condiciones que SUMIFS no puede hacer

|

Función SUMPRODUCT en Excel: multiplicar y luego sumar, y las condiciones que SUMIFS no puede hacer

En resumenSUMPRODUCT alinea dos o más rangos del mismo tamaño, los multiplica celda a celda y suma los productos. Sintaxis: =SUMPRODUCT(array1, [array2], …). En una sola celda hace lo que antes te obligaba a tener una columna auxiliar más un SUM. Sus dos superpoderes frente a SUMIFS: los totales ponderados (=SUMPRODUCT(Qty, Price)) y la lógica de varias condiciones con matrices booleanas — multiplicas las matrices para el Y, las sumas para el O, y nunca metes AND()/OR() dentro (colapsan la matriz a un único valor). Cada matriz tiene que ser del mismo tamaño o sacas #VALUE!. Funciona en todas las versiones hasta Excel 2003.

Nota: en la interfaz de Excel en español, esta función se llama SUMAPRODUCTO (separador de argumentos: punto y coma ;).

=SUMPRODUCT(Qty, Price)                          ' ingreso total: Σ cantidad×precio
=SUMPRODUCT((Region="West")*(Month=1)*Sales)     ' suma condicional: Oeste Y enero

Mucha gente conoce SUMPRODUCT como esa fórmula misteriosa que copió de un foro para conseguir que funcionara una "suma si se cumplen dos cosas". Merece algo mejor. Es una de las funciones más silenciosamente potentes de Excel: un diminuto motor de matrices que vivió en las hojas de cálculo una década antes de que existiera SUMIFS, y que todavía resuelve problemas que SUMIFS no puede. Esta guía se construye en torno al modelo mental que la hace encajar, y luego a los trabajos para los que sigue siendo la herramienta adecuada.

Lo que vas a aprender

  • El modelo mental: SUMPRODUCT es un producto escalar en una sola celda
  • La trampa del #VALUE! — cada matriz tiene que ser exactamente del mismo tamaño
  • Lógica de varias condiciones: multiplica para el Y, suma para el O
  • Cuándo necesitas de verdad el doble negativo -- (y cuándo no)
  • Los dos trabajos que SUMIFS no puede hacer: totales ponderados y O entre columnas
  • La decisión de criterio: SUMPRODUCT frente a SUMIFS frente a las viejas fórmulas matriciales CSE

El modelo mental: un producto escalar en una sola celda

Olvídate de las condiciones un momento. En su esencia, SUMPRODUCT hace exactamente lo que dice su nombre: toma los productos y los suma. Le das dos columnas y multiplica la fila 1 por la fila 1, la fila 2 por la fila 2, hasta abajo, y luego suma todos los productos en un único número:

' Qty = {2; 5; 3}, Price = {10; 4; 20}
=SUMPRODUCT(Qty, Price)     ' = 2*10 + 5*4 + 3*20 = 100

Esa es toda la idea. Si alguna vez has montado una columna auxiliar con =A2*B2, la has arrastrado hacia abajo y la has sumado, SUMPRODUCT es eso mismo, comprimido en una sola celda y sin columna auxiliar. Quédate con esa imagen y todo lo demás es una variación: las "condiciones" que verás a continuación no son más que matrices extra de unos y ceros mezcladas en el mismo multiplicar-y-sumar.

La regla que muerde primero: las matrices tienen que ser del mismo tamaño

Este es el error con el que tropezarás antes que con cualquier otro. Cada matriz que le pasas a SUMPRODUCT tiene que tener la misma forma — el mismo número de filas, el mismo número de columnas — porque las empareja celda a celda. Si no coinciden, sacas #VALUE!:

=SUMPRODUCT(A2:A10, B2:B11)     ' #VALUE!  — 9 filas frente a 10 filas
=SUMPRODUCT(A2:A10, B2:B10)     ' OK       — las dos con 9 filas

La versión clásica de este fallo es sutil: montas la fórmula, funciona, y luego alguien inserta una fila dentro de un rango pero no del otro, y de repente da #VALUE! — o peor, anclaste un rango con una fila de menos y empareja en silencio las filas equivocadas. Haz que todos los rangos sean idénticos, idealmente apuntándolos a las mismas columnas de una tabla (Table[Qty], Table[Price]) para que crezcan y se encojan a la vez. Ese único hábito elimina toda la familia de errores por desajuste.

Condiciones: multiplica para el Y, suma para el O

Esta es la parte que merece la pena interiorizar, porque es la misma lógica que mueve a FILTER y a las fórmulas matriciales en el Excel moderno. Una comparación como (Region="West") no devuelve una sola respuesta — devuelve una matriz entera de TRUE/FALSE, una por fila. Excel trata TRUE como 1 y FALSE como 0 en cuanto haces aritmética con ello. Así que:

' Y — multiplica las condiciones: una fila cuenta solo si AMBAS valen 1
=SUMPRODUCT((Region="West")*(Product="Widget")*Sales)

' O — suma las condiciones: una fila cuenta si CUALQUIERA vale 1
=SUMPRODUCT(((Region="West")+(Region="East"))*Sales)

Multiplicar dos matrices de 1/0 da 1 solo donde ambas valen 1 — eso es el Y. Sumarlas da 1 (o más) allí donde cualquiera vale 1 — eso es el O. El error mortal es echar mano de las funciones de hoja AND() y OR(): esas colapsan toda la matriz a un único TRUE/FALSE, así que tu fórmula evalúa en silencio una sola condición para toda la columna en lugar de fila por fila. La regla es tajante: dentro de SUMPRODUCT, usa * y +, nunca AND()/OR().

Para el O, envuelve las condiciones sumadas de forma que una fila que coincida dos veces siga contando una sola vez si necesitas un recuento; para una suma como la del ejemplo de arriba no puede haber doble conteo, porque las Sales de cada fila se suman como mucho una vez por el paréntesis.

Cuándo necesitas el doble negativo --

Verás el -- repartido por las fórmulas de SUMPRODUCT en internet y te preguntarás si es magia. No lo es. Es un doble negativo que fuerza TRUE/FALSE a convertirse en 1/0. Solo lo necesitas cuando una matriz de condiciones no tiene nada por lo que multiplicarse:

=SUMPRODUCT(--(Region="West"))          ' RECUENTO de filas Oeste — hace falta -- para forzar
=SUMPRODUCT((Region="West")*Sales)      ' SUMA de ventas Oeste — el *Sales ya fuerza la conversión

En la segunda fórmula, multiplicar por Sales ya convierte los booleanos en números, así que el -- sería redundante. En la primera hay una sola matriz booleana y ninguna aritmética que dispare la conversión — sin el -- estarías sumando TRUE/FALSE, lo que suma 0. Regla práctica: una sola matriz de condición suelta → añade --; cualquier condición que se multiplique por otra cosa → ya está convertida.

Los dos trabajos que SUMIFS de verdad no puede hacer

Si lo único que necesitas es una suma normal con varias condiciones en Y, usa SUMIFS — es más rápida en hojas grandes y mucho más fácil de leer. SUMPRODUCT se gana su sitio en los dos casos que SUMIFS simplemente no puede expresar:

' 1) Total / promedio PONDERADO — multiplica dos columnas Y LUEGO suma
=SUMPRODUCT(Qty, Price) / SUM(Qty)       ' precio promedio ponderado

' 2) O entre columnas DISTINTAS
=SUMPRODUCT(((Region="West")+(Channel="Online")>0)*Sales)

SUMIFS puede filtrar, pero no puede multiplicar dos columnas entre sí antes de sumar — así que un promedio ponderado (unidades × precio, sumado, dividido entre unidades) queda fuera de su alcance, y AVERAGEIFS solo hace un promedio simple. Y SUMIFS une sus condiciones solo con Y; un O que abarque dos columnas distintas no tiene una forma limpia con SUMIFS. Esos dos casos — la ponderación y el O entre columnas — son la razón por la que SUMPRODUCT sigue en el kit de todo analista.

La decisión de criterio: SUMPRODUCT frente a SUMIFS frente a matrices CSE

Tres épocas de la misma idea, y la elección correcta ha ido cambiando con el tiempo:

  • Sumas/recuentos condicionales normales → usa SUMIFS/COUNTIFS. Están optimizadas, se leen bien y el orden de los argumentos nunca cambia. No escribas SUMPRODUCT((A="x")*(B="y")*C) cuando SUMIFS(C,A,"x",B,"y") dice lo mismo.
  • Totales ponderados, O entre columnas, multiplicar-y-luego-filtrarSUMPRODUCT. Esta es su casa de verdad y nada más nuevo la reemplaza del todo en una sola celda.
  • {=SUM(IF(…))} heredadas, introducidas con Ctrl+Mayús+Entrar → jubílalas. SUMPRODUCT maneja matrices de forma nativa sin el ritual del CSE, y en el Excel moderno FILTER cubre los casos de extraer-y-luego-sumar de forma más legible. Si todavía ves llaves alrededor de un SUM-de-IF, casi siempre es un SUMPRODUCT (o un SUMIFS) esperando a nacer.

La opinión fuerte: SUMPRODUCT ya no es tu herramienta de cada día para sumas condicionales — pero es la que conservas para los trabajos que la familia -IFS no alcanza, y funciona de forma idéntica en todas las versiones de Excel que alguien siga usando.

Cómo ayuda ExcelMaster

La parte difícil de SUMPRODUCT nunca es teclearla — es decidir si la necesitas, y acertar con el Y/O y el -- cuando es así. ExcelMaster lee la pregunta en términos de negocio — coste promedio ponderado de estos pedidos, o ventas totales que sean del Oeste o vendidas online — y escribe la fórmula con las matrices del mismo tamaño, los booleanos multiplicados o sumados correctamente y el -- solo donde toca. Tú describes el número; él elige entre SUMPRODUCT, SUMIFS y FILTER por ti.

Preguntas frecuentes

¿Por qué mi SUMPRODUCT devuelve #VALUE!?

Casi siempre es un desajuste de tamaño: dos de tus matrices tienen un número distinto de filas (o de columnas). SUMPRODUCT empareja las celdas una a una, así que A2:A10 (9 filas) y B2:B11 (10 filas) no pueden alinearse. Haz que todos los rangos tengan exactamente la misma forma — usar columnas de tabla los mantiene sincronizados automáticamente. Un valor de texto perdido en un rango numérico también puede provocarlo.

¿Cómo uso SUMPRODUCT con varios criterios?

Multiplica las condiciones para el Y, súmalas para el O: =SUMPRODUCT((Region="West")*(Product="Widget")*Sales). Cada condición como (Region="West") es una matriz de TRUE/FALSE que se convierte en 1/0 al multiplicar. No uses AND()/OR() dentro — colapsan la matriz a un solo valor.

¿Qué hace el doble menos (--) en SUMPRODUCT?

Fuerza TRUE/FALSE a convertirse en 1/0. Lo necesitas cuando una matriz de condiciones no se está multiplicando por nada más — por ejemplo, al contar filas: =SUMPRODUCT(--(Region="West")). Si ya estás multiplicando por una columna numérica, la conversión ocurre gratis y el -- es redundante.

SUMPRODUCT frente a SUMIFS — ¿cuál debería usar?

Para una suma condicional directa, usa SUMIFS — es más rápida y más clara. Usa SUMPRODUCT cuando necesites multiplicar dos columnas antes de sumar (totales ponderados), o para expresar un O entre dos columnas distintas, algo que SUMIFS no puede hacer.

¿Funciona SUMPRODUCT en versiones antiguas de Excel?

Sí — es una de las funciones de matriz más antiguas, funciona en todas las versiones hasta Excel 2003 (e incluso antes), sin necesidad de Ctrl+Mayús+Entrar. Esa fiabilidad entre versiones es parte de por qué se ha mantenido tan popular.

Probado en

Probado en: Excel 365 (Windows 11) — última verificación el 30/06/2026.

Guías relacionadas: Excel SUMIFS · Excel COUNTIFS · Excel SUBTOTAL · Excel AGGREGATE · Excel FILTER