por pegbol » 05 Oct 2005 16:25
.
.
Disculpas por mi "late reply".
Sin duda, los que mejor despejarian tus dudas serian los señores galileogali y sailepaty (unos maestros en mi opinion).
Yo tratare de hacer un remedo de explicacion:
Empecemos por la sintaxis de la funcion utilizada en tu archivo ejemplo:
=SUMAPRODUCTO(($B33=$B$3:$B$16)*(C$32=$C$2:$G$2)*$C$3:$G$16)
que tambien puede ser cambiada a:
=SUMAPRODUCTO(($B$3:$B$16=$B33)*($C$2:$G$2=C$32)*$C$3:$G$16)
donde:
=SUMAPRODUCTO((rango1=condicion1)*(rango2=condicion2)*rango3)
La funcion nos devolvera 3 vectores; 2 de VERDADEROS y/o FALSOS y un vector de valores.
En el caso concreto de nuestro ejemplo (para la celda C33 seria):
{VERDADERO,FALSO,FALSO,FALSO,.........,FALSO}
{VERDADERO,FALSO,FALSO,......,FALSO}
{11,45,79,113,147;23,234,.........;......;.....,12015}
Pero SUMAPRODUCTO "usualmente" funciona solo en vectores de valores numericos y nosotros tenemos vectores de VERDADERO/FALSO.
Utilizando el operador "*" podemos convertir esos VERDADERO/FALSO en valores binarios 1/0.
Multiplicando VERDADERO por VERDADERO devolvera 1, cualquier otra combinacion retornara 0 (puedes efectuar una prueba, escribe VERDADERO en A1 y B1 y en C1 efectua la multiplicacion de las 2 celdas).
Por lo tanto, la multiplicacion de los 2 primeros vectores en nuestro ejemplo sera:
{1,0,0,0,.....;...;...;...,0}
Esto a su vez multiplicado por el tercer vector dara por resultado:
{11,0,0,0,.....;...;...;...,0}
Donde finalmente la funcion SUMAPRODUCTO mostrara como resultado el unico valor distinto de 0 en nuestro vector resultado, que es el numero 11.
saludos
Pedro
La Paz, BOLIVIA.
.
.