Funciones lógicas en LibreOffice Calc

En fin, ya que ando empantanado preparando temario para dar clases de LibreOffice y, a la vez, recibiendo clases de Microsoft Office creo que os van a tocar varias entradas sobre el tema en este blog.

Hoy vamos a hablar sobre las funciones lógicas en LibreOffice Calc, la hoja de cálculo de LibreOffice. Si estáis acostumbrados a Microsoft Office… son prácticamente iguales.

¿Qué son las funciones lógicas? Son funciones que trabajan con valores booleanos, es decir: verdadero o falso. En las hojas de cálculo nos permiten crear condicionales más o menos complejos. Primero vamos con la teoría «gorda» y luego en un par de ejemplos os queda más claro. Como os podéis imaginar la potencia de estas funciones no es pasarles a mano un valor VERDADERO o FALSO sino una expresión que pueda devolver ese valor (generalmente mediante una comparación).

En LibreOffice Calc tenemos las siguientes: Y, FALSO, SI, SIERROR, SIND, NO, O, VERDADERO y XOR. Vamos a verlas una por una:

Funciones de Libre Office Calc
Funciones de Calc (en gallego)

Y: Su sintaxis sería Y(valorLógico1; valorLógico2… valorLógico30). Esta función devuelve VERDADERO si todos sus argumentos son verdaderos, en caso de que alguno no lo sea devolverá FALSO. Requiere como mínimo un valor y hasta un máximo de 30.

FALSO: Esta función no evalúa ni recibe ningún parámetro, simplemente devuelve un valor FALSO.

SI: Esta función requiere tres parámetros que son una prueba lógica, un valor a devolver si se cumple y un valor a devolver si no, aunque sólo es obligatoria la prueba lógica. Más abajo os explicaré como anidar varios. La sintaxis básica es SI(prueba lógica; valor si se cumple; valor si no).

SI.ERROR: Esta función recibe dos valores y devuelve el primero si es válido. Pero si este devuelve un error entonces devuelve el segundo. La sintaxis es SIERROR(valor; valor alternativo).

SI.ND: Similar a la anterior, en este caso devuelve el valor sacando que sea #ND, en ese caso devuelve el segundo valor.

NO: Devuelve lo contrario al valor que recibe. Es decir, si recibe un VERDADERO devuelve FALSO y viceversa (vamos, que «niega» o complementa lo que tiene dentro).

O: Similar a Y en sintaxis, que es O(valorLógico1; valorLógico2… valorLógico30). En este caso la función devuelve VERDADERO si alguno de sus valores es verdadero.

VERDADERO: Como en el caso de FALSO, no recibe ni evalúa nada y, en este caso, devuelve VERDADERO.

XOR: El más complejo de explicar, se trata de una puerta lógica OR exclusiva (de ahí XOR). Dicho así acojona, pero es más facil de lo que parece. La sintaxis es como en el caso de Y y O, vamos XOR(valorLógico1; valorLógico2… valorLógico30) y el caso es que devuelve VERDADERO si un número impar de los valores que se le han proporcionado son VERDADEROS.

Ahora tomemos un conjunto de datos aleatorios:

Manolo 30 años Madrid

Pedro 60 años Barcelona

Juanki 45 años Zaragoza

Toño 18 años Buenos Aires

Derrick 23 años La Habana

Juampi 36 años Cedeira

Macael 22 años Medellín

Ok, supongamos que los tienes esto en una tabla, empezando en A2, como la de la foto.

Tabla con datos del Ejemplo
La tabla de ejemplo

Ahora imagina que después hay un campo donde quieres meter un dato, en este caso vamos a decir que un porcentaje que tienen que pagar. Pero hay condiciones: Los que sean de Cedeira y tengan menos de 40 años (ambas) tendrán que pagar 100$; los que sean de La Habana o tengan 45 años o más (una de las dos) pagarán sólo 75$. El resto pagarán 120$. ¿Cual sería la fórmula? Bueno, pues sería la que puedes ver en la imagen (supongamos que me he situado para escribir la fórmula en la primera fila de datos, lo que sería justo a la derecha de Barcelona, con la idea de hacer la fórmula, calcular y arrastrar hacia abajo para que se aplique al resto):

Fórmula para solucionar el ejemplo

Como tengo el LibreOffice en gallego igual te despista así que te traduzco la fórmula:
=SI(Y(C2=»Cedeira»;B2<40);100;SI(O(C2=»La Habana»;B2>=45);75;120))

Explicación de la fórmula: Abrimos un SI y como prueba lógica le decimos que compruebe las dos primeras condiciones (ser de Cedeira y menor de 40) que por tener que cumplirse ambas van dentro de un Y. En caso de que sea correcto devuelve 100, en caso de de que no anidamos otro SI, que en este caso comienza comprobando que se de alguna (por eso usamos el O) de las otras condiciones, que son ser de La Habana o tener 45 años o más. En caso de que se cumpla devolverá 75 y en caso de que no, es decir que el registro no ha cumplido ni las condiciones del primer chequeo ni las del segundo, en ese caso devuelve 120. Ves, no era tan difícil, todo es ir pensando cómo hay que anidar las cuestiones. El resultado sería este:

Tabla del ejemplo con los resultados
Resultados

Y en el caso del XOR, como os decía antes, tenéis que pensar que sólo devuelve verdadero si el número de elementos que recibe que dan verdadero son impares. Pensad en aquellas tablas de lógica aristotélica del instituto: En un XOR VERDADERO+FALSO=VERDADERO, FALSO+FALSO=FALSO, FALSO+VERDADERO=VERDADERO, VERDADERO+VERDADERO=FALSO. Parece coñazo pero es simple.

En fin, os dejo con esto. En el futuro más funciones.

Anuncio publicitario

Un comentario en “Funciones lógicas en LibreOffice Calc

  1. Pingback: Operaciones a bit a bit: NOT, AND, OR y XOR – DonnierocK

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.