por xpelos » 10 May 2006 05:47
Estimado pinoarna:
=SI(SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);--(dias<>""))=0;"";+SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);dias)/SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);--(dias<>"")))
=SI( ... establece una condición, que consiste en que si no hay "sector" en el 'mes cerrado', entonces, no se moleste en hacer nada más.
En caso contrario, vemos:
+SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);dias)/SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);--(dias<>""))
SUMAPRODUCTO es una función que trabaja con matrices.
El formato es SUMAPRODUCTO(condición 1;condición2;...condición "n"[opcional: rango a operar])
Aquí tenemos dos condiciones: el 'sector' -que puede ser señalado como rango o su nombre, como en este caso- debe coincidir con el que aparece en F3, y el 'mes cerrado' debe coincidir con el de G2. (Los "$" ahorran trabajo, porque mantienen la fila o columna estables, al copiar hacia abajo y a la derecha la primera de las celdas con fórmula).
En nuestro caso, usamos
SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);dias)
Para que consulte si se cumple las condiciones y, al final, suma los días que las cumplen, en el rango de días. Los rangos deben ser de la misma dimensión (Nº de filas). Opera con columnas; en otro caso, su uso es más complejo.
Los signos "--" se usan para que SUMAPRODUCTO use cadenas de "1" y "0", si se cumple o no la condición, en lugar de "VERDADERO"/"FALSO", con los que no se puede operar.
Al hacer el cálculo, SUMAPRODUCTO tendrá parejas de datos tipo "1/0" "0/0" "0/1" y "1/1". Sólo aceptará las "1/1", que son las cumplen las dos condiciones, para operarlas con los datos de "número de días", que se corresponden con eso y al final, sumará los productos "1*Nº días", que es lo suyo.
Se supone que con eso, SUMAPRODUCTO ha sumado los días de las series de datos que cumplen las dos condiciones. Como un promedio supone un dato dividido por otro dato, se usa
/SUMAPRODUCTO(--(sector=$F3);--(MES(cerrado)=G$2);--(dias<>"")
En este caso, las condiciones son que el sector coincida con el de F3, que el 'mes cerrado' de la serie de fechas coincida con la de G2... y que el número de días que corresponda no esté vacío. Con eso, ahora, SUMAPRODUCTO tendrá series de tipo "000" "001"..."111", y sólo operará con estas últimas, y "sumaproducteará" el resultado de multiplicar unos por unos y sumarlos. Eso equivale a un recuento de cuántas veces se cumple las tres condiciones.
Al final, el número de datos a sumar dividido entre las veces que se da el suceso, nos da el promedio.
Si se comprende el uso de SUMAPRODUCTO, la alpicación a ortos casos es más sencilla.
Espero que te sirva, y perdona el "misal"....