Inicio > Microsoft Excel > orandino > funcion si en excel

funcion si en excel

Experto:
Usuario:
Fecha: 09/09/2009
Valoración: (4,00 sobre 5) Categoría: Microsoft Excel
03/09/2009
alojadoes, usuario preguntando en Microsoft Excel
Usuario
Tengo un problema en la hoja de calculo siguiente:
A2 stock=10    B2 costemedio= 4 ?  C2 valorc_m=A2*B2
D2 entradascant=0  E2 entradasimp=0  
F2 newcostemedio= SI(E2<>0;((E2+C2))/(D2+A2));B2)
El resultado de F2 sería B2, ya que E2 es igual a 0
A3 stock=10   B3 costemedio=4?    C3 valorc_m=A3*B3
D3 entradascant=10  E3 entradasimp=50  
F3 newcostemedio= SI(E3<>0;((E3+C3))/(D3+A3));B3)
El resultado correcto de F3 sería  4,5 ? (50+40)/(10+10)
Hasta aquí todo bien, pero cuando el stock es negativo, los resultados salen incorrectos.
Veamos,
A4 stock=-10   B4 costemedio=4?    C4 valorc_m=A4*B4
D4 entradascant=20  E4 entradasimp=100  
F4 newcostemedio= SI(E4<>0;((E4+C4))/(D4+A));B4)
Si aplicaramos la formula, el resultado seria 6 ?, pero este valor es incorrecto, y por normas de la empresa el coste medio sería el resultado de la nueva entrada, es decir 100/20 = 5 ?
Lo intenté resolver con una formula de dos condicionantes
SI(E4<>0;SI(A4>0;((E4+C4)/(D4+A4));SI(E4<>0;SI(A4<0;(E4/D4));B4)))
En principio con esta formula me  sale bien,
pero cuando E4 entradasimp=0  el resultado es "FALSO"  y sinceramente no lo sé resolver, ni siquiera cuando incluyo una tercera  condición de SI(E4=0;B4).
No tengo conocimientos de Macros, y supongo que no será muy difícil la formula, por lo que te ruego encarecidamente tu ayuda.
Gracias anticipadas
 
03/09/2009
alojadoes, experto respondiendo en Microsoft Excel
Experto
Prueba con esta formula a ver si funciona como lo deseas y pruebala en todas la filas
=SI(Y(E4>=0;A4>0);(E4+C4)/(D4+A4);E4/D4)
Creo que es lo que necesitas si mal no he entendido, si asi fuese puntua y finaliza sino consultame de vuelta
Saludos
Oscar
07/09/2009
alojadoes, usuario preguntando en Microsoft Excel
Usuario
El problema sigue exisitiendo, cuando d4 y E4= 0 logicamente contesta a la segunda condición, (0/0) logicamente respuesta incorrecta. estoy intentando corregirlo con la función si Error, ya que cuando d4 y e4 =quiero que conteste b4.
Saludos,
07/09/2009
alojadoes, experto respondiendo en Microsoft Excel
Experto
Entonces cambia el ultimo parametro "E4/D4" por
si(eserror(E4/D4);B4;E4/D4)
09/09/2009
alojadoes, usuario preguntando en Microsoft Excel
Usuario
ok. ahora parece que funciona
Ahora se me dan mas casos, pues que las entradas sean negativas D y E < 0 y tambien que la entrada tenga valor 0, es decir D= 10 E= 0.
Pero la verdad es que son casos bastante extraños, y sinceramente no merece la pena quebrarse mas la cabeza, porque con la formula que me pasas me soluciona el problema que tenía.
Gracias por todo,
09/09/2009
alojadoes, usuario preguntando en Microsoft Excel
Usuario
Muy Bien. Me ha sido de gran utilidad
Enlaces patrocinados