2013-08-17

Lógica de Boole en lugar de la función SI- Parte 2

En la entrada anterior vimos una alternativa a los SI anidados. En aquel ejemplo evaluábamos una serie de condiciones y devolvíamos un valor. ¿Qué sucedería si quisiéramos que en lugar de un valor devuelva un texto? Por ejemplo, en una celda podemos tener: a, b, c, o d. Y en función de la letra queremos que devuelva respectivamente: primero, segundo, tercero o cuarto.

Opción 1 - SI anidados
=SI(A1="a";"primero";SI(A1="b";"segundo";SI(A1="c";"tercero";SI(A1="d";"cuarto"))))
Seguiríamos la sintaxis habitual de los SI anidados sin problema.

Opción 2 -Boole
=REPETIR("primero";A1="a")&REPETIR("segundo";A1="b")&REPETIR("tercero";A1="c")&REPETIR("cuarto";A1="d"))

En este caso no podríamos usar la estructura de la entrada anterior pues =(A1="a")*"primero" daría un error. Empleamos la función REPETIR(texto;núm_de_veces), que repite el texto indicado un determinado número de veces, 1 si la condición es verdadera o 0 si es falsa. Al encadenar las diferentes condiciones, solamente mostrará la verdadera o nulo (celda en blanco)si no se cumple ninguna. Si en lugar de nulo queremos que nos muestre un valor, habría que añadir el siguiente trozo al final.
&REPETIR("Otro";(A1<>"a")*(A1<>"b")*(A1<>"c")*(A1<>"d")
                                       'o bien
&REPETIR("Otro";NO(O(A1={"a";"b";"c";"d"})))

Entradas relacionadas:
Lógica de Boole en lugar de la función SI -Parte 1

No hay comentarios:

Publicar un comentario

Nube de datos