FORMULA EXTENSA ???

24/06/2007 - 00:47 por Orfao | Informe spam
Hola foristas...
en un post anterir hice una pregunta al respecto pero... "no me quedo bien
clara la respuesta. Tal vez la implemente erroneamente. Sorry... y ahora se
me ha complicado un poco mas"
tal vez ahora explique mejor el caso:
tengo los siguientes datos:
en T7 tengo un valor que representa el intervalo de evaluacion es decir 7
para semanal, 14 para quincenal, etc
el planificador decide que valor colocarle.
en U7 la fecha de inicio del proyecto
en V7 la fecha del primer informe
desde W7 hasta DD7 las siguientes fechas de informes es decir W7=V7+T7 ;
X7=W7+T7 ; .. ; DD7Ü7+T7
En la columna O21 Tengo la fecha de inicio de la actividad correspondiente a
esa fila
En la columna P21 Tengo la fecha de fin de la actividad correspondiente a
esa fila
En la columna Q21==+DIAS.LAB(O21;P21;feriados) donde "feriados" es un rango
con fechas no laborables



V21=+SI(Y(V$7>=$O21;V$7-U$7<$P21);SI(DIAS.LAB($O21;V$7;feriados)<=DIAS.LAB(V$7-U$7+1;V$7;feriados);SI(DIAS.LAB($O21;V$7;feriados)<$Q21;DIAS.LAB($O21;V$7;feriados);$Q21);

SI(DIAS.LAB($O21;V$7;feriados)>=$Q21;DIAS.LAB(V$7-U$7+1;$P21;feriados);DIAS.LAB(V$7-U$7+1;V$7;feriados)))*1/$Q21;0)

W21=+SI(Y(W$7>=$O21;W$7-$T$7<$P21);SI(DIAS.LAB($O21;W$7;feriados)<=DIAS.LAB(W$7-$T$7+1;W$7;feriados);SI(DIAS.LAB($O21;W$7;feriados)<$Q21;DIAS.LAB($O21;W$7;feriados);$Q21);

SI(DIAS.LAB($O21;W$7;feriados)>=$Q21;DIAS.LAB(W$7-$T$7+1;$P21;feriados);DIAS.LAB(W$7-$T$7+1;W$7;feriados)))*1/$Q21;0)

W21 la copio y pego desde X21 hasta DD21
lo anterior se repite en dferentes filas de 2 en 2 es decir en la 23, 25,
27, etc

en V19 tendo la siguiente formula matricial:
{=+SUMA(INDIRECTO(DIRECCION(CELDA("fila";$B20)+1;CELDA("columna";V20);4)&":"&+DIRECCION(CELDA("fila";$B20)+$B20*2;CELDA("columna";V20);4))*INDIRECTO(DIRECCION(CELDA("fila";$B20)+1;CELDA("columna";$U20))&":"&+DIRECCION(CELDA("fila";$B20)+$B20*2;CELDA("columna";$U20))))}

donde en B20 tengo el numero de subpartidas a sumar (filas en las que se
repite las formulas anteriores)

todo esto me funciona a la perfeccion... PERO...
el problema es que tengo en la columna A y en cada fila donde estan las
formulas un indicador que me dice si esa fila es una detalle donde en ese
caso tendria que utilizar el segundo grupo de formulas o, es un grupo de
partidas donde tengo que usar el orimer grupo ...
y creo que quedaria algo asi como
+si(a20="Grupo";{=+SUMA(INDIRECTO(DIRECCION(CELDA("fila";$B20)+1;CELDA("columna";V20);4)&":"&+DIRECCION(CELDA("fila";$B20)+$B20*2;CELDA("columna";V20);4))*INDIRECTO(DIRECCION(CELDA("fila";$B20)+1;CELDA("columna";$U20))&":"&+DIRECCION(CELDA("fila";$B20)+$B20*2;CELDA("columna";$U20))))};
+SI(Y(V$7>=$O21;V$7-U$7<$P21);SI(DIAS.LAB($O21;V$7;feriados)<=DIAS.LAB(V$7-U$7+1;V$7;feriados);SI(DIAS.LAB($O21;V$7;feriados)<$Q21;DIAS.LAB($O21;V$7;feriados);$Q21);

SI(DIAS.LAB($O21;V$7;feriados)>=$Q21;DIAS.LAB(V$7-U$7+1;$P21;feriados);DIAS.LAB(V$7-U$7+1;V$7;feriados)))*1/$Q21;0))

Se entiende????
Alguno de Uds me ayuda por lo menos a simplificar estas formulas???
Estare sumamente agradecido

Me alimento del conocimiento de todos

Preguntas similare

Leer las respuestas

#11 KL
25/06/2007 - 10:21 | Informe spam
Hola HM,

"Héctor Miguel" wrote

...ambas tienen [y solo *para variar*]... sus pros y contras...



La verdad es que se me escapan los contras de la formula con INDICE ;-)

...pero... en cuanto a volatilidad en los re/calculos del modelo [p.e.]:
...-> indice(...) NO es volatil [pero] unicamente en la version xl-97



Creo que esto no es del todo cierto. Esta mas que comprobado que INDICE() NO es volatil en las versiones 2000 - 2007 a pesar de
estar documentada por MS como tal (salvo que lo sea en la version castellana). Aqui se puede encontrar un archivo de demostracion:
http://www.decisionmodels.com/Downl...eFuncs.zip

Saludos,
KL
Respuesta Responder a este mensaje
#12 Héctor Miguel
25/06/2007 - 19:05 | Informe spam
hola, KL !

...ambas tienen [y solo *para variar*]... sus pros y contras...



La verdad es que se me escapan los contras de la formula con INDICE ;-)

...pero... en cuanto a volatilidad en los re/calculos del modelo [p.e.]:
...-> indice(...) NO es volatil [pero] unicamente en la version xl-97



Creo que esto no es del todo cierto. Esta mas que comprobado que INDICE() NO es volatil en las versiones 2000 - 2007
a pesar de estar documentada por MS como tal (salvo que lo sea en la version castellana).
Aqui se puede encontrar un archivo de demostracion:
http://www.decisionmodels.com/Downl...eFuncs.zip



usando el mismo archivo [de la descarga anterior] prueba haciendo las siguientes *preparaciones*
[para estar en posibilidades de *medir* y *evaluar* las diferencias entre ambas propuestas *sobre* casos mas realistas]:

1) SUSTITUYE las formulas que usa el ejemplo por las propuestas ofrecidas a OP [es decir]:
a) en [A12], que es la celda donde se evalua la funcion indice(...) pones
=sumaproducto(indice($u:$u;fila()+2):indice($u:$u;fila()+$b20*2)*indice(v:v;fila()+2):indice(v:v;fila()+$b20*2))
b) en [C12], que es la celda donde se evalua la funcion desref(...) pones
=sumaproducto(desref($u19;2;;$b20*2;);desref($u19;2;columnas($v19:v19);$b20*2;))

2) digita un numero en la celda [B20] <= es *requisito* que esta celda no este vacia

3) ANTES de pulsar {F9} para re/calcular el modelo... -> modifica el contenido de [B20]
[esto por cada vez que se quiera *medir* y/o *evaluar* los efectos *reales* de modificar las precedencias de las formulas]

comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#13 KL
25/06/2007 - 19:25 | Informe spam
Hola HM,

3) ANTES de pulsar {F9} para re/calcular el modelo... -> modifica el contenido de [B20]
[esto por cada vez que se quiera *medir* y/o *evaluar* los efectos *reales* de modificar las precedencias de las formulas]



Creo que este es el punto clave de todo! La formula con INDICE solo recalculara si antes de dar a F9 cambias el valor en B20, y si
no lo cambias no recalculara. Me parece que es de esperar que Excel marque la formula para recalcularla en el proximo recalculo
(haciendola "contextualmente volatil") al modificar una dependencia de dicha formula. En cambio la formula con DESREF recalculara
siempre, independientemente de si ha variado alguna dependencia/precedencia o no. Esta es la diferencia esencial entre las volatiles
y no volatiles, no te parece? :-)

Saludos,
KL
Respuesta Responder a este mensaje
#14 Héctor Miguel
25/06/2007 - 19:49 | Informe spam
hola, KL !

3) ANTES de pulsar {F9} para re/calcular el modelo... -> modifica el contenido de [B20]
[esto por cada vez que se quiera *medir* y/o *evaluar* los efectos *reales* de modificar las precedencias de las formulas]



Creo que este es el punto clave de todo! La formula con INDICE solo recalculara si antes de dar a F9 cambias el valor en B20...



=> o cualquiera de sus *precedentes* [como ya bien lo mencionas mas adelante en este mismo comentario] :D

... es de esperar que Excel marque la formula para recalcularla en el proximo recalculo
(haciendola "contextualmente volatil") al modificar una dependencia de dicha formula...



=> no se si ya revisaste el *arbol de dependencias* [o el "contexto"] que tiene el modelo de OP -?-
incluso, a pesar del modo de calculo en automatico de la aplicacion, la barra de estado siempre muestra: *Calcular*
[lo que indica que existe *por ahi* alguna referencia circular, que no se si sea *a proposito*] -?-

En cambio la formula con DESREF recalculara siempre, independientemente de si ha variado alguna dependencia/precedencia o no.
Esta es la diferencia esencial entre las volatiles y no volatiles, no te parece? :-)



=> es correcto, y sin embargo, la *diferencia* en el tiempo de un re/calculo resulta des/ventajosa para unas y otras [segun condiciones]
cuando el re/calculo es *requerido* por otros eventos [p.e. al modificar *precedencias indirectas*, que ve tu a saber de donde vienen]

[en realidad, creo que todos estos *argumentos* permiten a OP una gama mas amplia de situaciones a evaluar] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#15 KL
25/06/2007 - 20:41 | Informe spam
Hola HM,

=> no se si ya revisaste el *arbol de dependencias* [o el "contexto"] que tiene el modelo de OP -?-
incluso, a pesar del modo de calculo en automatico de la aplicacion, la barra de estado siempre muestra: *Calcular*
[lo que indica que existe *por ahi* alguna referencia circular, que no se si sea *a proposito*] -?-



No, la verdad es que no he tenido tiempo para ello (ademas parece que tendria que sustituir las funciones del ATP castellanas por
las inglesas). Sin embargo, si no hay indicacion expresa de referncias circulares, y dada la cantidad de formulas, yo diria que es
mas logico suponer que el conjunto de formulas en la hoja haya superado el limite de 65536 areas con dependencias o bien 8000
dependencias en un area.

En todo caso, supongo que ahora ya estamos de acuerdo en que INDICE() NO es intrinsecamente volatil mientras que DESREF si lo es :-D
Otra cosa es que se puedan darse situaciones en las que todas las formulas/funciones se conviertan en volatiles:
http://www.decisionmodels.com/calcsecretsf.htm

[en realidad, creo que todos estos *argumentos* permiten a OP una gama mas amplia de situaciones a evaluar] ;)



De eso no me cabe ninguna duda.

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida