Expliaciones de Funciones de SumaProducto
Expliaciones de Funciones de SumaProducto
Expliaciones de Funciones de SumaProducto
ProductoA
Sector
PYME
Mes
ProductoB
ProductoC
ProductoD
Multinacional
Gran Empresa
Multinacional
ProductoE
ProductoF
ProductoG
ProductoH
PYME
PYME
Gran Empresa
Gran Empresa
ProductoI
ProductoJ
ProductoK
ProductoL
PYME
PYME
Multinacional
Gran Empresa
Cantidad
Precio unidad
2302
11,510
1
2
3
1
3
2
1
1
3
2
2
25
13
21
2
3
32
45
1
3
53
23
3423
9884
2302
9884
1203
39245
97643
1000
2303
39245
9884
85,575
128,492
48,342
19,768
3,609
1,255,840
4,393,935
1,000
6,909
2,079,985
227,332
SUMAPRODUCTO
8,262,297
=SUMAPRODUCTO(D2:D13*E2:E13)
(I)
8,262,297
La frmula multiplica fila a fila la Cantidad de D2:D13 por el Precio unitario de E2:E13 y finalmente suma todos
los resultados. Ha hecho de una vez todo lo que hicimos en la columna F.
=SUMAPRODUCTO((C2:C13=2)*D2:D13*E2:E13)
( II )
y se obtiene:
3,691,649
Partiendo de la frmula usada en el primer ejemplo, hemos aadido la matriz de los meses (C2:C13) al producto
de matrices que ya tenamos, pero al escribir (C2:C13=2), le estamos diciendo que slo considere las filas del
rango que sean iguales a 2.
Para conseguirlo, la funcin introduce un uno (1) cuando se trata de una fila del mes 2 y un cero (0) en las filas
que no tienen ese mes. Es decir, convierte la columna de los meses en una columna que solo tiene unos y ceros,
de manera que multiplica por 1 cuando es una fila del mes 2 y multiplica por 0 cuando es una fila de otro mes.
En resumen, se ha creado una matriz "virtual" (que no vemos, pero que est ah) que en el rango C12:C13 tiene
unos para las filas del mes 2 y ceros para los dems meses.
Finalmente, el resto de la funcin SUMAPRODUCTO, suma los productos donde la matriz C2:C13 no es cero.
C
Cmo obtenemos las ventas del ProductoA, en PYME, en el mes 1 ?
La frmula sera as:
=SUMAPRODUCTO((A2:A13="ProductoA")*(B2:B13="PYME")*(C2:C13=1)*D2:D13*E2:E13)
11,510
Pero suele ser ms conveniente situar en sendas celdas los datos "ProductoA", "PYME" y "1", para as hacer
referencia a las celdas en la frmula, lo que nos permitir variar las entradas sin modificar la frmula.
Por ejemplo:
Y la frmula ser:
Producto
Sector
Mes
ProductoA
PYME
=SUMAPRODUCTO((A2:A13=F62)*(B2:B13=G62)*(C2:C13=H62)*D2:D13*E2:E13) ( III )
que da como resultado:
11,510
Con las tres frmulas ( I ), ( II ) y ( III ) que hemos utilizado hasta ahora y una reflexin de los ejemplos que siguen, quizs
podamos empezar a resolver algunos problemas con SUMAPRODUCTO.
D
Otro ejemplo anlogo al anterior
La tabla siguiente muestra las ventas realizadas por varios vendedores en las provincias y meses indicados.
Vendedor
Esteban
Hidalgo
Pinto
Pinto
Esteban
Hidalgo
Provincia
Valladolid
Salamanca
Valladolid
Salamanca
Salamanca
Burgos
Mes
3
1
2
1
1
3
N unidades
5
15
13
21
8
3
Precio de
la unidad
2,302
1,328
2,884
1,302
2,884
1,203
11,510
19,920
37,492
27,342
23,072
3,609
Esteban
Pinto
Hidalgo
Gonzalo
Tamara
Hidalgo
Burgos
Burgos
Valladolid
Valladolid
Burgos
Salamanca
1
2
1
3
2
3
7
14
21
3
17
23
3,924
1,764
1,000
2,303
3,924
988
27,468
24,696
21,000
6,909
66,708
22,724
292,450
Provincia
Mes
Hidalgo
Salamanca
292,450
=SUMAPRODUCTO(D81:D92*E81:E92)
67,253
=SUMAPRODUCTO((A81:A92=G91)*D81:D92*E81:E92)
42,644
=SUMAPRODUCTO((A81:A92=G91)*(B81:B92=H91)*D81:D92*E81:E92)
40,920
=SUMAPRODUCTO((A81:A92=G91)*(C81:C92=I91)*D81:D92*E81:E92)
19,920
=SUMAPRODUCTO((A81:A92=G91)*(B81:B92=H91)*(C81:C92=I91)*D81:D92*E81:E92
118,802
=SUMAPRODUCTO((C81:C92=I91)*D81:D92*E81:E92)
93,058
=SUMAPRODUCTO((B81:B92=H91)*D81:D92*E81:E92)
72
=SUMAPRODUCTO((C81:C92=I91)*D81:D92)
70,334
=SUMAPRODUCTO((B81:B92=H91)*(C81:C92=I91)*D81:D92*E81:E92)
148,816
=SUMAPRODUCTO((D81:D92>10)*(D81:D92<20)*D81:D92*E81:E92)
E
Suma de importes correspondientes al perodo entre dos fechas
Fecha
Ntese
06-07-07
Ventas
1,000
que las
02-08-07
720
fechas
pueden
03-07-07
1,000
estar
en
05-07-08
2,610
3,240
04-08-07
cualquier
orden
y que
puede
haber
celdas
vacas
05-08-08
05-08-08
07-08-08
09-05-08
23-05-08
24-08-07
25-05-08
26-08-08
27-09-09
28-09-08
4,500
5,130
5,760
7,020
7,650
1,350
47
120
193
266
Desde
Hasta
05-08-08
31-08-08
15,510
=SUMAPRODUCTO((B130:B147>=E127)*(B130:B147<=F127)*C130:C147)
9,630
Ao
2008
14,717
=SUMAPRODUCTO((MES(B130:B147)=E142)*(AO(B130:B147)=F142)*(C130:C147))
Tambin servira la que sigue, pero podemos descartarla por demasiado larga.
=SUMAPRODUCTO((B130:B147>=FECHA(F142;E142;1))*(B130:B147<=FIN.MES(FECHA(F142;E142;1);0))*C130:C147)
#ADDIN?
Y tambin servira introducir en E127 la fecha del primer da del mes, y en F127 la fecha del ltimo da del mes.
F
Contar con SUMAPRODUCTO (con dos o ms condiciones)
Queremos contar los valores de la columna B que sean iguales a 5 y que, a la vez, haya un "SI" en la celda adyacente
de la columna C
La frmula ser:
Nmero
7
35
5
11
5
6
11
Aptitud
NO
NO
SI
SI
NO
SI
NO
Aula
B
B
D
A
C
A
D
5
4
5
6
5
11
23
SI
SI
SI
SI
SI
NO
SI
C
C
C
C
C
A
D
Idioma
Espaol
Ingls
Portugus
Espaol
Ingls
Ingls
Espaol
Portugus
Espaol
=SUMAPRODUCTO((B166:B181=5)*(C166:C181="SI"))
5
Espaol
Francs
=SUMAPRODUCTO((B166:B181=5)*(C166:C181="SI")*(D166:D181="C"))
Espaol
Italiano
Ingls
SI
Espaol
11
SI
Francs
=SUMAPRODUCTO((B166:B181=5)*(C166:C181="SI")*(D166:D181="C")*(E166:E181="Espaol"))
3
Si adems queremos sumar los nmeros de la columna B que corresponden a este ltimo supuesto, aadiremos *(B166:B181)
=SUMAPRODUCTO((B166:B181=5)*(C166:C181="SI")*(D166:D181="C")*(E166:E181="Espaol")*(B166:B181))
Nota
15
Ver
G
Contar con SUMAPRODUCTO.
Cdigo
54
35
Cdigo
54
15
Nmero
4
4
87
74
12
58
20
58
24
30
24
24
6
6
4
4
6
4
24
30
24
12
Otro ejemplo:
Contar el nmero de veces que aparecen en una misma fila un cdigo repetido
y el nmero 6
=SUMAPRODUCTO((B203:B211=C203:C211)*(D203:D211=6))
2
H
Otro ejemplo:
Contar o sumar, en una columna, el nmero de datos que se incluyen entre llaves { } en la frmula.
Nmero
7
3
4
1
2
2
3
5
4
2
1
3
4
1
3
2
3
5
4
2
1
3
Clase
B
B
D
A
C
A
D
C
C
A
C
C
A
D
B
A
C
B
B
A
C
B
Por ejemplo: Queremos contar el total de valores "A" y "B" de la columna Clase
=SUMAPRODUCTO(--(C222:C244={"A";"B"}))
13
O tambin: =SUMAPRODUCTO(--({"A";"B"}=C222:C244))
13
Ahora queremos SUMAR los nmeros asociados en la otra columna a las clases A y B
=SUMAPRODUCTO((C222:C244={"A";"B"})*(B222:B244))
42
=SUMAPRODUCTO(({"A";"B"}=C222:C244)*(B222:B244))
42
O tambin:
A
Nota: La introducin de llaves nada tiene que ver con la formula "Matricial"
I
Otro ejemplo:
Producto
Alubias
Alubias
Patatas
Lentejas
Patatas
Garbanzos
Garbanzos
Clase
A
A
B
B
B
D
D
Importe
40
20
80
40
30
70
50
Producto
Alubias
Patatas
Lentejas
Garbanzos
Clase
A
B
B
D
Importe
60
110
40
120
0
0
Tenemos una lista que tiene en la columna B los Productos, en columna C la Clase y en columna D su Precio.
Queremos que en el cuadro de la derecha (en principio vaco), cuando introduzcamos en G257 y H257 (y siguientes)
un Producto y la Clase del producto, sume en I257 ( y siguientes ) los Importes que corresponden a ese Producto y
Clase ( y solo esos )
La frmula, para I257, ser:
=SUMAPRODUCTO(($B$257:$B$263=G257)*($C$257:$C$263=H257)*$D$257:$D$263)
60
J
Lo que nos oculta SUMAPRODUCTO ... ?
En el cuadro ( I ) tenemos en una columna nombres de personas, en otra sus edades, y en otra, las iniciales "H" o "M"
segn sean hombres o mujeres. Queremos contar cuntos hombres tienen 18 ms aos.
Frmula:
(I)
=SUMAPRODUCTO((C294:C301>=18)*(D294:D301="H"))
Nombres
Carmen
Pedro
Edad
25
18
Sexo
M
H
Luis
Roberto
ngela
Paco
Mara
Jos
20
16
28
36
15
17
H
H
M
H
M
H
Nombres
Carmen
Edad
Sexo
0
1
1
1
0
1
1
0
0
( II )
1
1
0
1
1
0
0
Pedro
Luis
Roberto
ngela
Paco
Mara
Jos
1
1
1
0
1
0
1
=SUMAPRODUCTO((C305:C312=1)*(D305:D312=1))
Reflexin:
Sin utilizar SUMAPRODUCTO podramos haber resuelto el problema creando una columna auxiliar en E294:E301,
escribiendo en E294:
=SI(C294>=18;1;0) y copindola hacia abajo.
Y aplicar la frmula:
=SUMAR.SI(D294:D301;"H";E294:E301)
Ser esto lo que ha hecho SUMAPRODUCTO pero situando la citada columna auxiliar en el rango C305:C312
de su "memoria" ( II ) y actuando en consecuencia ?
Yo me descubro ante esta funcin !. Lstima que los clculos sean lentos cuando se aplica en rangos grandes.
K
Ver comentario
Ver
Producto
Carne
Lcteos
Pescado
Carne
Azcar
Yogur
Carne
Pescado
Pescado
Carne
Lcteos
Pescado
600
Pescado
Carne
Yogur
Total Venta
1,200
400
1,100
200
300
250
1,300
500
1,400
700
200
2,200
500
800
1,100
500
Fecha
01-01-10
01-01-10
01-01-10
01-01-10
01-01-10
02-01-10
02-01-10
02-01-10
02-01-10
02-01-10
03-01-10
03-01-10
03-01-10
03-01-10
03-01-10
03-01-10
Fecha
03-01-10
La frmula ser:
=SUMAPRODUCTO(($B$342:$B$357=F344)*($D$342:$D$357=H344)*$C$342:$C$357)
que da como resultado:
3,000
y tendramos:
=SUMAPRODUCTO(($B$342:$B$357=F344)*($D$342:$D$357=FECHA(AO($H$344);MES($H$344);DIA($H$344)))*$C$342:$C$357)
que podemos descartar por ser demasiado larga, pero que conduce al mismo resultado:
3,000
Si quisiramos mostrar en forma de tabla las ventas de cada uno de los productos en la fecha arriba
indicada, o sea el 03-01-aa, lo haramos as:
Productos
Importe de la venta
Carne
Lcteos
Pescado
Yogur
Azcar
1,100
200
3,000
500
0
Otros resultados del ejemplo anterior que podran interesar seran, por ejemplo:
3,000
2,200
=SUMAPRODUCTO((D342:D357=H344)*C342:C357)
5,300
6,000
NOTA: Podemos hacer ensayos variando los datos en las celdas F344 y H344 para obtener nuevos resultados
L
Promedio de importes entre dos fechas con SUMA PRODUCTO
Queremos obtener en columna F el promedio de los importes de la columna C entre las fechas indicadas en D y E
Fecha
15-10-07
18-10-07
Importe
500
900
Desde
01-10-07
01-11-07
Hasta
31-10-07
30-11-07
Promedio
600.00
833.33
=SUMAPRODUCTO(($B$426:$B$439>=D426)*($B$426:$B$439<=E426)*$C
25-10-07
400
01-12-07
31-12-07
750.00
05-11-07
10-11-07
20-11-07
19-12-07
25-12-07
30-12-07
31-12-07
950
850
700
800
950
250
1,000
01-01-08
01-02-08
31-01-08
29-02-08
550.00
725.00
05-01-08
23-01-08
12-02-08
500
600
450
07-02-08
1,000
Obtendramos:
1,800.00
=SUMAPRODUCTO(($B$426:$B$439>=D426)*($B$426:$B$439<=E42
y obtenemos:
( II )
=SUMAPRODUCTO(($B$426:$B$439>=D426)*($B$426:$B$439<=E426)*$C$426:$C$439)/SUMAPRODUCTO(($B$426:$B$439>=D426)*($B$426:$B$439<=E4
Con lo que completamos la frmula de F426 y obtenemos:
600.00
M
Otro promedio con dos condiciones
Hallar el promedio de los valores del rango que sean mayores de 10 y menores que 30
Valores
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
{ =PROMEDIO(SI(B456:B478>10;SI(B456:B478<30;B456:B478))) }
#DIV/0!
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
#ADDIN?
Lo que ha hecho esta frmula es lo siguiente :
Ntese que SUMAPRODUCTO((B456:B478>10)*(B456:B478<30)*B456:B478) es la suma de los valores que cumplen
#ADDIN?
cumplen las dos condiciones, es decir, por SUMAPRODUCTO((B456:B478>10)*(B456:B478<30)) que cuenta dichos
valores y obtiene 0 valores.
#ADDIN?
#ADDIN?
NOTA: Pueden cambiarse los datos de la columna B, pulsando la tecla F9 para obtener nuevos resultados.
N
Valor ms alto que corresponde a datos repetidos
Encuentra el valor mximo que corresponde a cada ciudad.
Ciudad
BURGOS
LEN
VALLADOLID
VILA
SALAMANCA
VILA
SALAMANCA
SALAMANCA
VILA
LEN
SALAMANCA
SALAMANCA
LEN
VALLADOLID
LEN
VALLADOLID
VILA
LEN
VILA
BURGOS
Ventas
500
1,500
2,510
2,000
800
200
2,000
3,000
10,000
9,000
12,000
6,500
2,500
4,685
6,000
6,565
6,000
5,000
3,000
15,000
VILA
10,000
BURGOS
LEN
15,000
9,000
12,000
SALAMANCA
=SUMAPRODUCTO(MAX(($B$493:$B$512=E495)*$C$493:$C$512))
=SUMAPRODUCTO(($B$493:$B$512=E493)*$C$493:$C$512)
O
Algunas utilidades de SUMAPRODUCTO
SUMAS: De los "n" mayores, de los nmeros pares, de los nmeros impares, de los mltiplos de un nmero,
de las filas pares, de las filas impares.
14
3
5
10
16
11
20
7
2
4
9
1
6
12
5
15
8
=SUMAPRODUCTO(B523:B539*(JERARQUIA(B523:B539;B523:B539)<=3))
51
92
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539;2)=0))
92
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539;2)<>1))
56
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539;2)=1))
45
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539;3)=0))
60
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539;4)=0))
=SUMAPRODUCTO(B523:B539*(RESIDUO(B523:B539; n )=0))
63
=SUMAPRODUCTO(B523:B539*(RESIDUO(FILA(B523:B539);2)=0))
85
=SUMAPRODUCTO(B523:B539*(RESIDUO(FILA(B523:B539);2)<>0))
P
Sumar cada "n" valores o filas
14
3
5
26
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;7)=1)*B551:B567)
10
16
40
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;6)=1)*B551:B567)
11
20
49
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;5)=1)*B551:B567)
7
2
46
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;4)=1)*B551:B567)
4
9
69
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;3)=1)*B551:B567)
1
6
12
85
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;2)=1)*B551:B567)
5
15
8
=SUMAPRODUCTO((RESIDUO(FILA(B551:B567)-FILA(B551)+1;n)=1)*B551:B567)
Q
Sumar cada "n" valores a partir de cierto valor (o fila)
Para conseguirlo bastar con tomar no todo el rango B551:B567, sino nicamente el rango a partir de la primera fila
que se desea sumar.
Ejemplo1 .
Queremos sumar cada 3 valores a partir del 7 valor (o fila 7) del rango
Comprobamos que la fila 7 del rango se corresponde con la FILA(B557) de la hoja y formulamos as:
=SUMAPRODUCTO((RESIDUO(FILA(B557:B567)-FILA(B557)+1;3)=1)*B557:B567)
Ejemplo 2 .
Queremos sumar cada 4 valores a partir del 3 valor (o fila 3) del rango
=SUMAPRODUCTO((RESIDUO(FILA(B553:B567)-FILA(B553)+1;4)=1)*B553:B567)
Ejemplo 3 .
45
39
Queremos sumar cada 2 valores a partir del 5 valor (o fila 5) del rango
=SUMAPRODUCTO((RESIDUO(FILA(B555:B567)-FILA(B555)+1;2)=1)*B555:B567)
66
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tambin servira utilizar dos celdas auxiliares (E609 y E610) para indicar "cada cuantos valores"
se quiere sumar y "a partir de qu fila" (Sugerencia de Sailepaty)
Y utilizaramos la frmula siguiente:
=SUMAPRODUCTO((RESIDUO(FILA(INDICE(B551:B567;E610):B567)-FILA(INDICE(B551:B567;E610))+1;
E609)=1)*INDICE(B551:B567;E610):B567)
C a d a
A partir de ..
2
5
66
439<=E426)*$C$426:$C$439)
ho perodo
26:$B$439<=E426))
ultando en F426:
26:$B$439<=E426))