xpelos";p="31856 escribió:De todas formas, he visto una fórmula de KL que no hubiera sospechado:
E6 =SUMAPRODUCTO((Datos!B4:B13=A6)*Datos!F4:F13*Datos!D4:D13)/D6
Dado que tenía asumido que =SUMAPRODUCTO((Datos!B4:B13=A6)…
Sólo hubiera funcionado con: =SUMAPRODUCTO(--(Datos!B4:B13=A6)… Y no es así, por lo visto.
Como regla general, cualquier
operacion matematica basica realizada mediante un operador (p.ej.: -, +, *, /, ^) asi como la funcion N() covierten los valores logicos en sus equivalentes numericos. O sea que las siguientes expresiones devuelven el mismo resultado:
=--(Datos!B4:B13=A6)
=(Datos!B4:B13=A6)*1
=(Datos!B4:B13=A6)/1
=(Datos!B4:B13=A6)^1
=(Datos!B4:B13=A6)-0
=(Datos!B4:B13=A6)+0
=N(Datos!B4:B13=A6)
por tanto expresiones como las siguientes funcionarian (obviamente, segun lo que se quiera conseguir)
=SUMAPRODUCTO(--(Datos!B4:B13=A6);Datos!D4:D13)
=SUMAPRODUCTO((Datos!B4:B13=A6)*Datos!D4:D13)
=SUMAPRODUCTO((Datos!B4:B13=A6)/Datos!D4:D13)
=SUMAPRODUCTO((Datos!B4:B13=A6)^Datos!D4:D13)
=SUMAPRODUCTO((Datos!B4:B13=A6)-Datos!D4:D13)
=SUMAPRODUCTO((Datos!B4:B13=A6)+Datos!D4:D13)
=SUMAPRODUCTO(N(Datos!B4:B13=A6);Datos!D4:D13)
Y como ya he indicado antes, cuando se trata de una condicion unica, salvo excepciones como la siguiente:
=SUMAPRODUCTO(--(DIASEM(Datos!B4:B13)=7))
se deben utilizar las funciones SUMAR.SI y CONTAR.SI para evitar la perdidas en la eficiencia importantes.
Tambien existen casos de multiples condiciones cuando el uso de SUMAR.SI y CONTAR.SI resulta mucho mas eficiente, p.ej.:
=SUMAPRODUCTO(CONTAR.SI(Datos!B4:B13;{"<0"\2\5\7">500"})
=CONTAR.SI(Datos!B4:B13;">20")-CONTAR.SI(Datos!B4:B13;">=5")
etc.