Cómo configurar la fórmula SI

He usado ésta fórmula muchísimas veces, pero no se que está pasando que una configuración sencilla no me la ejecuta. Pongo un ejemplo para explicarme mejor.

     A1            B1                 

USDJPY

La fórmula en B1 es; =+SI(A1="";"";SI(A1="USDJPY";0.008))

No entiendo, porque una fórmula tan sencilla como ésta, me arroja FALSO, cuando debería colocar 0.008.

No se cuál es el problema.

He diseñado fórmulas muchísimo más complicadas que ésta, pero no se porque no ejecuta la rutina establecida.

Respuesta
1

El 80.008 tiene un punto en lugar de una coma. Si es un número debes cambiarlo, si lo quieres como texto entonces entrecomillarlo. Por otra parte también te faltaría el valor falso del segundo SI (pero no es necesario)

=+SI(A1="";"";SI(A1="USDJPY";0,008))

=+SI(A1="";"";SI(A1="USDJPY";"0.008"))

Hola Pablo, gracias por tu pronta respuesta. Abajo está la fórmula como la tengo en mi hoja de Excel:

=+SI(A8="";"";SI(A8="USDJPY";0,008))

Sin embargo en otra hoja de Excel tengo la siguiente fórmula y funciona perfectamente.

+SI(A10="";"";SI(A10="AUDUSD";"0,0001";SI(A10="EURUSD";"0,00008";SI(A10="GBPUSD";"0,00009";SI(A10="EURGBP";"0,0001";SI(A10="USDCHF";"0,00012";SI(A10="USDCAD";"0,00011";SI(A10="EURCHF";"0,00017";SI(A10="NZDUSD";"0,00015";SI(A10="GBPCHF";"0,00034";SI(A10="USDJPY";"0,008";SI(A10="EURJPY";"0,012";SI(A10="GBPJPY";"0,023")))))))))))))

En cambio en la que te consulto, ponga el numero entre comillas o no lo ponga, siempre arroja FALSO.

Saludos.

Como no tienes definido el valor falso del segundo SI, si el resultado de la comprobación es falsa siempre te pondrá falso. Si quieres que no ponga falso tienes que poner un criterio al final, antes de los 2 paréntesis de cierre.

=+SI(A1="";"";SI(A1="USDJPY";0,008;"xxxx"))

Hola Pablo, en la fórmula larga que te envié, la variable A puede tomar doce valores diferentes y me arroja el resultado correctamente dependiendo del valor de la variable A y no tiene segunda condición. Es más cuando tú colocas varias funciones SI, como en esa fórmula, no le puedes poner la segunda condición en cada SI, porque te indica error en la fórmula.

Saludos.

Claro, en las 11 primeras no puedes porque el siguiente SI es la condición falsa del anterior. Pero la última si que la necesita para el caso en que no se cumpla ninguna de las 12 anteriores.

SI(A10="GBPJPY";"0,023")))))))))))))  <--- este último SI es el que no tiene valor si falso.

1 respuesta más de otro experto

Respuesta
1

.24.04.07

Buenos días, Ruddy

En realidad, devuelve FALSO porque falta el argumento a colocar cuando A1 no fuese igual a USDJPY.

Ahora bien, si A1 es igual a USDJPY debería colocar 0.008. Si no lo hace es que A1 NO es igual a USDJPY. Puede ocurrir que en A1 tengas "USDJPY " (con espacios al final) lo cual hace que no se cumpla la condición.

Puedes probar esta fórmula alternativa que coloca "" si A1 no es igual a USDJPY o si estuviera vacía. Sí mostará 0.008 aunque tuviera espacios:

=SI(ESPACIOS(A1)="USDJPY";0.008;"")

Marqué en negritas lo que cambié.

Coméntame si mi solución resuelve lo que buscas -y, en tal caso, agradeceré que califiques mi contribución- o escríbeme de nuevo aquí, si necesitas más apoyo con esto.

Un saludo

Fernando

.

Hola Fernando, gracias por tu pronta respuesta. Probé la fórmula que me enviaste y funciona. Abajo está la fórmula como la tengo en mi hoja de Excel (usé copiar y pegar)

=+SI(A8="";"";SI(A8="USDJPY";0,008))

Sin embargo en otra hoja de Excel tengo la siguiente fórmula y funciona perfectamente.

+SI(A10="";"";SI(A10="AUDUSD";"0,0001";SI(A10="EURUSD";"0,00008";SI(A10="GBPUSD";"0,00009";SI(A10="EURGBP";"0,0001";SI(A10="USDCHF";"0,00012";SI(A10="USDCAD";"0,00011";SI(A10="EURCHF";"0,00017";SI(A10="NZDUSD";"0,00015";SI(A10="GBPCHF";"0,00034";SI(A10="USDJPY";"0,008";SI(A10="EURJPY";"0,012";SI(A10="GBPJPY";"0,023")))))))))))))

En cambio en la que te consulto, ponga el numero entre comillas o no lo ponga, siempre arroja FALSO.

Saludos

.

Hola, Ruddy

La cuestión no es que coloques el número entre comillas -de hecho eso no sería útil- el tema es que no está reconociendo que A8 tenga USDJPY en esa celda

Si te fijas en el segundo SI:

SI(A8="USDJPY";0,008)

Verás que NO dice qué hacer cuando no se cumple la condición principal

Debería ser:

SI(A8="USDJPY";0,008;"????")

Otro tanto pasa al final de tu fórmula larga:

...SI(A10="GBPJPY";"0,023";<falta algo aquí>)))))

Y supongo que arroja FALSO, porque no encuentra ninguno de los códigos de cotización que prevé la fórmula.

Deberías revisar si el contenido de la celda A10 no contiene espacios o caracteres especiales que hagan fallar tu fórmula.


Dicho aquello sobre la fórmula, me permito opinar que tantos Condicionales anidados sugieren que hay que usar otro tipo de fórmula.

En este caso, puedes usar un Buscarv que te facilitará la vida.

Arma una tabla como la siguiente (de hecho puedes tomarla del cuadro inferior

Divisas Relación
AUDUSD 0,0001
EURUSD 0,00008
GBPUSD 0,00009
EURGBP 0,0001
USDCHF 0,00012
USDCAD 0,00011
EURCHF 0,00017
NZDUSD 0,00015
GBPCHF 0,00034
USDJPY 0,008
EURJPY 0,012
GBPJPY 0,023

Supongamos que estuviera en la pagina "Hoja2":

Coloca donde tenías ese rosario de condicionales, la siguiente fórmula:

=SI(LARGO(A10)>0;BUSCARV(A10;Hoja2!$E$4:$F$22;2;0);"")

Como verás esta fórmula busca el valor en la tabla de la otra hoja, si es que en la celda A10 hubiese algo que buscar. Si no lo encontrara en la tabla colocará #N/A! (no disponible)

Eventualmente, para evitar ese error puedes usar esta variante:

=SI(LARGO(ESPACIOS(A10))>0;SI(ESNOD(BUSCARV(ESPACIOS(A10);Hoja2!$E$4:$F$22;2;0));"No existe div";BUSCARV(ESPACIOS(A10);Hoja2!$E$4:$F$22;2;0));"")

Prueba con esta opción que te permite agregar más relaciones de divisas, o modificarlos en la tabla si llegaran a cambiar (como pasa todo el tiempo).

Un abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas