=SUMAPRODUCTO(B2:B6;C2:C6) multiplica cada cantidad de B por el precio que tiene al lado en C y después suma los resultados. Da el total del pedido en una celda, sin una columna de totales por línea. La función SUMAPRODUCTO se llama SUMPRODUCT en inglés, y la tabla muestra la fórmula así: =SUMPRODUCT(B2:B6,C2:C6). La tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Line total | Total | |
| 2 | Pen | 4 | $1.50 | $6.00 | $30.70 | |
| 3 | Notebook | 2 | $3.25 | $6.50 | $30.70 | |
| 4 | Folder | 5 | $0.80 | $4.00 | ||
| 5 | Stapler | 1 | $7.90 | $7.90 | ||
| 6 | Marker | 3 | $2.10 | $6.30 |
=SUMAPRODUCTO(B2:B6;C2:C6)F2 y F3 muestran el mismo $30.70. Los totales por línea de la columna D solo están para mostrar lo que hace SUMAPRODUCTO: 4 × 1,50, 2 × 3,25, y así sucesivamente, y luego una SUMA. Cambia una cantidad y los dos totales se actualizan.
Sintaxis de SUMAPRODUCTO
=SUMPRODUCT(array1, [array2], [array3], ...)
- Cada matriz es un rango o un cálculo que produce uno, y todas deben tener el mismo tamaño, o SUMAPRODUCTO devuelve #¡VALOR! (#VALUE! en inglés; la tabla muestra los nombres de error en inglés).
- Con dos o más matrices, se multiplican los valores que están en la misma posición y después se suman los productos.
- Con una sola matriz, simplemente la suma, y eso es lo que hace funcionar las formas con condiciones de abajo:
=SUMAPRODUCTO((A2:A7="North")*C2:C7)tiene una sola matriz, ya multiplicada. - El texto pasado como argumento propio cuenta como 0. El texto dentro de un cálculo con
*provoca #¡VALOR!.
SUMAPRODUCTO trabaja con matrices en todas las versiones de Excel sin Ctrl+Mayús+Entrar (Cmd+Mayús+Entrar en Mac), y por eso fue la herramienta estándar para sumas condicionales antes de que existiera SUMAR.SI.CONJUNTO, y lo sigue siendo para los casos que SUMAR.SI.CONJUNTO no puede resolver.
SUMAPRODUCTO con condiciones
Una comparación sobre un rango, A2:A7="North", devuelve un VERDADERO o FALSO por fila. Multiplicar por ella conserva las filas en las que es VERDADERO (×1) y pone a cero las demás (×0). Multiplica dos comparaciones para un Y.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Formula | Result | |
| 2 | North | Apple | 120 | North sales | 230 | |
| 3 | South | Pear | 45 | North Apple sales | 150 | |
| 4 | North | Pear | 80 | Count North | 3 | |
| 5 | East | Apple | 55 | Count over 50 | 4 | |
| 6 | South | Apple | 200 | Without -- | 0 | |
| 7 | North | Apple | 30 |
=SUMAPRODUCTO((A2:A7="North")*C2:C7)F2 suma las tres filas de North: 230. F3 multiplica dos condiciones, así que una fila cuenta solo cuando las dos se cumplen: 150. Para contar en lugar de sumar, quita los valores y convierte VERDADERO/FALSO en números con -- (dos signos menos): F4 cuenta 3 filas de North. F6 muestra por qué importa el --: SUMAPRODUCTO no suma valores VERDADERO, así que la fórmula sin él devuelve 0.
Las cuatro primeras dan los mismos resultados que SUMAR.SI, SUMAR.SI.CONJUNTO y CONTAR.SI. La siguiente sección es donde SUMAPRODUCTO se gana su lugar.
Condiciones que SUMAR.SI.CONJUNTO no puede expresar
SUMAR.SI.CONJUNTO (SUMIFS en inglés) compara una columna con un criterio fijo. No puede tomar el mes de una fecha, comparar dos columnas entre sí ni multiplicar cantidad por precio antes de sumar. SUMAPRODUCTO sí, porque cada condición es un cálculo normal.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Date | Target | Actual | Formula | Result | |
| 2 | North | 2026-01-05 | 100 | 120 | February sales | 135 | |
| 3 | South | 2026-01-12 | 60 | 45 | Rows over target | 3 | |
| 4 | North | 2026-02-03 | 90 | 80 | North or East sales | 285 | |
| 5 | East | 2026-02-18 | 50 | 55 | Above target by | 75 | |
| 6 | South | 2026-03-02 | 150 | 200 | |||
| 7 | North | 2026-03-20 | 40 | 30 |
=SUMAPRODUCTO((MES(B2:B7)=2)*D2:D7)- G2 toma el MES (MONTH en inglés) de cada fecha y se queda con las filas de febrero: 80 + 55 = 135. Esto suma febrero de cualquier año; añade
*(AÑO(B2:B7)=2026)para un solo año. - G3 compara dos columnas fila por fila y cuenta las filas en las que Actual supera a Target.
- G4 es un O: sumar dos condiciones da 1 cuando se cumple cualquiera (2 cuando se cumplen las dos, y por eso está el
>0). North o East: 285. - G5 suma cuánto superó cada fila su objetivo, solo en las filas que lo superaron.
SUMAPRODUCTO para totales y promedios ponderados
Cantidad por precio es un total ponderado, y se le pueden añadir condiciones. La misma idea dividida entre la suma de los pesos da un promedio ponderado: =SUMAPRODUCTO(B2:B6;C2:C6)/SUMA(B2:B6) es el precio promedio por artículo vendido.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | North revenue | $31.00 | |
| 3 | South | Pear | 4 | $1.50 | All revenue | $61.00 | |
| 4 | North | Pear | 6 | $1.50 | Average price per item | $1.36 | |
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
=SUMAPRODUCTO((A2:A7="North")*C2:C7*D2:D7)North vendió 10 manzanas a $1.20, 6 peras a $1.50 y 5 ciruelas a $2.00, así que G2 muestra $31.00. El promedio simple de los precios trataría una ciruela como si se vendiera tanto como una manzana; G4 pondera cada precio por su cantidad.
Práctica: ingresos con una condición
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | South revenue | ||
| 3 | South | Pear | 4 | $1.50 | |||
| 4 | North | Pear | 6 | $1.50 | |||
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
Tu turno: Calcula los ingresos de South: cantidad por precio, solo en las filas de South. Escribe la fórmula en G2.
SUMAPRODUCTO o SUMAR.SI.CONJUNTO, y sus dos errores
| Condición | SUMAR.SI.CONJUNTO | SUMAPRODUCTO |
|---|---|---|
| Columna igual a un valor | =SUMAR.SI.CONJUNTO(C2:C7;A2:A7;"North") | =SUMAPRODUCTO((A2:A7="North")*C2:C7) |
| Contiene un texto | =SUMAR.SI.CONJUNTO(C2:C7;B2:B7;"*app*") | =SUMAPRODUCTO(ESNUMERO(HALLAR("app";B2:B7))*C2:C7) |
| Mes de una fecha | no es posible directamente | =SUMAPRODUCTO((MES(B2:B7)=2)*D2:D7) |
| Columna contra columna | no es posible | =SUMAPRODUCTO(--(D2:D7>C2:C7)) |
| Cantidad × precio | no es posible | =SUMAPRODUCTO(C2:C7;D2:D7) |
Prefiere SUMAR.SI.CONJUNTO siempre que pueda hacer el trabajo. Se lee mejor, es más rápida con decenas de miles de filas y acepta columnas enteras. =SUMAPRODUCTO((A:A="North")*C:C) multiplica más de un millón de filas y devuelve #¡VALOR! en cuanto llega al texto del encabezado en C1, así que dale a SUMAPRODUCTO rangos exactos como A2:A500.
Los dos errores que te vas a encontrar:
- #¡VALOR! por rangos de distinto tamaño.
=SUMAPRODUCTO(B2:B6;C2:C7)falla. Todos los rangos deben cubrir las mismas filas. - #¡VALOR! por texto en un rango multiplicado. Un encabezado o un "n/a" dentro de
C2:C7rompe(A2:A7="North")*C2:C7, porque el texto no se puede multiplicar. Empieza el rango debajo del encabezado, o pasa los valores como argumento separado:=SUMAPRODUCTO(--(A2:A7="North");C2:C7)trata el texto de C como 0.
Preguntas frecuentes
¿Qué hace SUMAPRODUCTO en Excel?
Multiplica rangos fila por fila y suma los productos. =SUMAPRODUCTO(B2:B6;C2:C6) es B2C2 + B3C3 + ... + B6*C6, por ejemplo cantidad por precio sumado en el total de un pedido.
¿Cómo uso SUMAPRODUCTO con una condición?
Multiplica por una comparación: =SUMAPRODUCTO((A2:A7="North")*C2:C7) suma C2:C7 en las filas de North. La comparación da VERDADERO o FALSO, que se convierten en 1 o 0 al multiplicar.
¿Qué significa -- en SUMAPRODUCTO?
Son dos signos menos, que convierten VERDADERO y FALSO en 1 y 0. =SUMAPRODUCTO(--(C2:C7>50)) cuenta los valores mayores que 50. Sin ellos, SUMAPRODUCTO trata VERDADERO/FALSO como 0 y devuelve 0.
¿Uso SUMAPRODUCTO o SUMAR.SI.CONJUNTO?
Usa SUMAR.SI.CONJUNTO cuando sus criterios puedan expresar la condición: se lee mejor y es más rápida con rangos grandes. Usa SUMAPRODUCTO cuando la condición necesita un cálculo, como el mes de una fecha, una columna comparada con otra, o cantidad por precio.
¿Por qué SUMAPRODUCTO devuelve #¡VALOR!?
Los rangos tienen distinto tamaño (B2:B6 con C2:C7), o un rango que se multiplica con * contiene texto. Haz que todos los rangos tengan el mismo tamaño, y pasa los rangos con texto como argumentos separados, que tratan el texto como 0.