Función demasiado larga

21/01/2009 - 21:00 por bavaro | Informe spam
Estiamdos:
Tengo un reporte que quiero traspasar las fórmulas a Excel y tengo el
siguiente problema, tengo una fórmula que excede la capacidad en el
excel, como puedo optimizar esta fórmula, ejemplo :

if stock_0>(entradas_120+mes-0+mes-30+mes-60+mes90) then
(entradas_120) else (Stock_0-(mes-0+mes-30+mes-60+mes90)

Serí aalgo así :
=SI($T11>($J11+
SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))))))) +
SI($T11>($L11+
SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))))))
),$L11,($T11-
(SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))))))
)))
), $J11,
($T11-(
SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))))))) +
SI($T11>($L11+
SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))))))
),$L11,($T11-
(SI($R11>$T11,$T11,$R11) +
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11)))) +
SI($T11>($N11+SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))),
$N11,($T11-((SI($R11>$T11,$T11,$R11)+
SI($T11>($P11+SI($R11>$T11,$T11,$R11)),$P11,($T11-(SI($R11>
$T11,$T11,$R11))))))))
)))
))

Preguntas similare

Leer las respuestas

#1 juanjose_mm
21/01/2009 - 21:51 | Informe spam
Sería bueno que pusieses un ejemplo con datos (aunque sean ficticios)
de lo que tiene y lo que necesitas.
La función que pones es sumamente dificil de entender (por lo menos en
mi caso), por lo que lo ideal es empezar por el principio. Pon un
ejemplo lo más ajustado a la realidad y por ahí podemos empezar.

Saludos.
Respuesta Responder a este mensaje
#2 Héctor Miguel
22/01/2009 - 03:41 | Informe spam
hola, !

Tengo un reporte que quiero traspasar las formulas a Excel y tengo el siguiente problema
tengo una formula que excede la capacidad en el excel, como puedo optimizar esta formula (...)



1) la version 2007 "aguanta" hasta 64 niveles de funciones anidadas
(pero ese archivo no seria compatible con versiones previas)

2) cuando se vuelve necesario ANIDAR demasiadas(?) funciones SI condicionales...
(yo creo que) es tiempo de pensar en alguna forma diferente de validar resultados condicionados (p.e.)

- si las condiciones a evaluar son valores consecutivos (1,2,3,4,5,6,etc.) ->a partir de 1, Y NO CERO<- ...
resulta mas conveniente la funcion =elegir(resultado_de_la_condicion,alternativa_1,alternativa_2<,alternativa_x>)

- si las condiciones a evaluar son resultados de expresiones_valor ...
podrias sumar (solamente) aquellos valores cuyas condiciones se cumplen (p.e.)
=(condicion=valor1)*resultado1+(condicion=valor2)*resultado2+(condicion=valor3)*resultado3<+(condicion..)>

- podrias romper en condiciones parciales (usando celdas distintas y/o nombres) y dejar la que se cumpla
(p.e.) =si(condicion_parcial_1,solucion_parcial_1,buscar_otra_condicion)

3) siempre es mejor si expones "casos reales" (de preferencia, +/- exactamente)
(hasta donde se) anidar funciones "si" (hasta su limite) no siempre es la mejor (ni la unica) alternativa
(seguramente) encontraras algunos ejemplos visitando la pagina de Bob Phillips:
Multiple Condition Tests:-> http://www.xldynamic.com/source/xld...ODUCT.html

4) de todas formas seria conveniente que expongas detalles mas... concretos

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida