Función SI anidada no funciona

Hola.
Tengo un problema, y es que al utilizar un SI anidado que asigna valores fijos según intervalos de una tabla, pues se me queda en el primer SI.
Esta es la fórmula:
=SI(A1<31;5;SI(31<=A1<=180;10;SI(181<A1<=365;15;20)))
Es decir
-SI A1 menor 31 asigna 5
-SI A1 mayor o igual 31 y menor o igual 180, asigna 10
-SI A1 mayor o igual 181 y menor o igual 365, asigna 15
-Mayor, asigna 20
¿Le veis algún fallo?. Lo miro y lo miro y nada.
Gracias.

Sustituye

Por

( 31 <= A1 Y A1<=180 )

y

Por

( 181<A1 Y A1<=365 )

Creo que en esta última te falta un igual para que diga A1 mayor o igual a 181

Y(31<=A1;A1<=180)

Estupendo! Esa es la solución Y(CONDICION1;CONDICIÓN2) y NO CONDICIÓN1<CELDA<CONDICION2
Muchas gracias.
Saludos.

Junto con lo comentado por @LeroyG, es más claro utilizar la función SI.CONJUNTO, que va evaluando las condiciones hasta que una se cumple y no hay que hacer anidaciones.

https://help.libreoffice.org/7.0/en-US/text/scalc/01/func_ifs.html?DbPAR=CALC#bm_id901556242230198

1 Like

Sí, también la había utilizado aunque no me salía, pero porque el error de base la tenía yo que utilizaba una comparación del tipo SI(VALOR1<=VALOR_CELDA<=VALOR2); TRUE;FALSE), en lugar de utilizar el booleano Y de la manera que se ha dicho por LeroyG–> SI(Y(VALOR1<=VALOR_CELDA; VALOR2<=VALOR_CELDA);TRUE;FALSE)
Sin ese error de base, tu fórmula también funcionaría
Gracias también.

Sí, quería ser tan rápido en contestar, que al final metí la pata…

Pero se entendió la idea.

Alguna versiones atrás, no recuerdo cuántas, se podía escribir una relación concatenda (1<A1<10), y funcionaba. Seguramente se eliminó por cuestiones de compatibilidad.

Bueno, en código VB siempre se ha utilizado la fórmula que intentaba emplear con el IF, pero, demonios, esta no es tan intuitiva para un profano.
Gracias de nuevo por el interés.