Las Funciones lógicas de Excel

Las funciones lógicas de Excel son una peculiaridad dentro de la programación de aplicaciones porque, normalmente, se usan operadores lógicos, no funciones.

funciones logicas excel

Sin embargo, el hecho de usar funciones para las operaciones lógicas a Excel ofrece una funcionalidad añadida bastante práctica: hace posible usar más operandos que con los operadores lógicos “normales”.

Por ejemplo: las funciones Y, O y XO equivalentes a los operadores “AND”, “OR” y “XOR” pueden usar hasta 255 parámetros.

Se podría hacer lo mismo con varios operadores AND en cadena, pero es cómodo poder hacerlo de una manera más directa usando simplemente varios parámetros.

¿Para qué sirven las funciones lógicas de Excel?

Las funciones lógicas de Excel permiten evaluar condiciones y, dependiendo del resultado, realizar diferentes acciones.

Esta capacidad de tomar decisiones añade una "inteligencia" a las fórmulas que multiplica las posibilidades de lo que se puede hacer con ellas.

diagrama condiciones acciones
Representación genérica con un diagrama de flujo del proceso de evaluar una condición y, dependiendo de si se cumple o no, realizar acciones diferentes.

Valores lógicos en Excel

La base de las operaciones lógicas son los valores lógicos. Solamente hay dos: VERDADERO y FALSO, TRUE y FALSE respectivamente en inglés.

Por eso, una función lógica, por compleja que sea, por muchos parámetros que tenga, al final solo dará como resultado uno de estos dos valores, como puedes ver arriba en el gráfico.

Entendido esto, ya estamos preparados para ver las funciones lógicas disponibles en Excel y después de esta lista, junto con artículos específicos para cada una de ellas:

Funciones lógicas básicas de Excel

Las operaciones lógicas más básicas son las siguientes:

  • VERDADERO(): función sin parámetros que devuelve el valor lógico VERDADERO.
  • FALSO(): función sin parámetros que devuelve el valor lógico FALSO.
  • NO([valor]): función con un único parámetro que devuelve el valor inverso del parámetro. Es decir, si el parámetro tiene un valor de FALSO, devuelve VERDADERO y viceversa.

Te habrás dado cuenta de la redundancia de la función VERDADERO() y el valor VERDADERO, algo que no deja de ser un tanto confuso. Y lo mismo ocurre con FALSO.

Pero tiene una explicación: se debe principalmente a cuestiones de compatibilidad con otras aplicaciones de hoja de cálculo. De ahí, esta redundancia aparentemente absurda.

Las funciones lógicas Y, O, SI y sus variantes

Los operadores lógicos típicos de AND, OR, etc. tienen en Excel las funciones equivalentes:

  • Y([condición];[ condición opcional 1]; [condición opcional 2]; …): devuelve VERDADERO si se cumplen todas las condiciones especificadas por los parámetros, si no, FALSO. Requiere mínimo un parámetro y pueden añadirse hasta un total de 255.
  • O([condición];[ condición opcional 1]; [condición opcional 2]; …): similar a la función O, pero devuelve VERDADERO si se cumple al menos, una de las condiciones, si no, FALSO.
  • XO([condición];[ condición opcional 1]; [condición opcional 2]; …): variante de la función O. La “X” significa “exclusivo” (“Exclusive OR”). En la versión “clásica” de operador con dos parámetros, obliga a que los dos parámetros sean diferentes. En la función de Excel significa que cuando el número de condiciones con resultado VERDADERO ser impar, devuelve VERDADERO, si no, FALSO.
  • SI([condición];[valor verdadero]; [valor falso]): devuelve el valor especificado por el usuario [valor verdadero] en caso de cumplirse la función y [valor falso] si no.
  • ERROR([valor];[valor si error]): devuelve el valor de [valor si error] si la fórmula [valor] genera un error. Si no, devuelve el resultado normal de la fórmula. Esto le permite al usuario un mayor control con valores a medida para el caso de error.
  • ND([valor];[valor si n/d]): similar a la función SI.ERROR para el caso de que el resultado de [valor]  sea un error “n/d”, “no disponible”. Este error sucede con funciones que esperan encontrar ciertos valores, pero no los encuentran.

En el siguiente apartado voy a poner unos cuantos ejemplos que te van a permitir entender mejor cómo utilizar estas funciones.

Además, en los artículos específicos de arriba desgranamos a cada una de ellas a fondo.

Ejemplos de funciones lógicas de Excel

Veamos primero algunos ejemplos muy básicos de las funciones lógicas Y, O y XO:

Ejemplos de las funciones lógicas Y, O y XO

Tenemos el siguiente ejemplo trivial: =Y(1<2;3>4;C3<C4)

Aquí estamos comprobando tres condiciones independientes. Si te fijas, la segunda condición se va a incumplir siempre. Como es la función Y, que requiere que todas las condiciones tengan un resultado verdadero, con esto basta para ver que la función siempre devuelva FALSO.

Cambiamos el mismo ejemplo a la función O: =O(1<2;3>4;C3<C4)

Aquí sucede exactamente lo contrario; con que haya una condición cierta, la función devolverá VERDADERO. Y, efectivamente, existe una condición de este tipo, que es “1<2”. Con esto ya no importa el valor de las celdas C3 y C4, se cumpla o no la condición, la función siempre devolverá VERDADERO.

Cambiamos el mismo ejemplo a la función XO: =XO(1<2;3>4;C3<C4)

Como aquí tenemos una condición que siempre es cierta (1<2) y otra que nunca lo es (3>4), el resultado final depende, por tanto, de los valores de C3 y C4. Si hacen que C3<C4 también sea cierto, nos quedamos con un número par de condiciones VERDADERO y, por tanto, con un resultado FALSO.

Si C3>C4 no es cierto, nos quedamos con un número impar de condiciones VERDADERO y, por tanto, con un resultado VERDADERO.

Ejemplos de las funciones lógicas SI, SI.ERROR y SI.ND

Veamos ahora un ejemplo más avanzado y real.

Imaginemos que nos piden un informe que, a partir de unos objetivos de ventas mensuales para diferentes productos, los compara con las ventas reales del mes, junto con un resultado económico (beneficios o pérdidas para ese producto).

Podría ser una hoja como esta:

ejemplo ventas funcion si
Ejemplo de la utilidad de las funciones lógicas de Excel.

El quid de la cuestión es que nos piden que el informe sea “bonito” que visualice un texto de “Objetivo cumplido” o “Objetivo no cumplido”, según el caso, tal como lo ves arriba.

Hay dos condiciones que deben cumplirse para valorar si se cumplen objetivos o no: que las ventas reales sean iguales o mayores que el objetivo y que hayan generado beneficios (de dónde salen da igual para el ejemplo, por eso no se refleja en la hoja, solo el valor final).

Es decir, podría ocurrir que hayamos vendido la cantidad deseada, pero que también hayamos incurrido en costes superiores a los previstos, provocando pérdidas (por vender a precios demasiado baratos, etc.).

¿Con qué fórmula podemos implementar esta lógica en la columna E?

No parece complicado implementar las condiciones: para la fila dos, una fórmula =Y(C2>B2;D2>0) reflejaría las condiciones descritas. Arrastramos la celda con la fórmula al resto de filas y listo.

Pero lo que veríamos en la columna E sería un resultado del tipo “VERDADERO” y “FALSO” lo que no cumple con lo que nos han pedido.

¿Cómo conseguimos visualizar los textos que nos piden?

Fácil: basta con añadir una función SI que use como valor a evaluar a la función anterior. Es decir:

=SI(Y(C2>B2;D2>0);"Objetivo cumplido";"Objetivo no cumplido")

Aunque no nos lo han pedido, nosotros nos queremos marcar un punto en el trabajo y le damos una vuelta para que, en caso de datos de entrada, erróneos, la fórmula nos avise de ello.

En el siguiente ejemplo hemos reformulado la condición de “Ventas reales > Objetivo” usando una división: C2>B2 pasa a ser C2/B2<1 que es equivalente, pero con la diferencia que provoca errores si B2 no contiene números válidos. La fórmula es así:

=SI.ERROR(SI(Y(C2/B2<1;D2>0);"Objetivo cumplido";"Objetivo no cumplido");"Hay errores en los datos de entrada. Por favor, revíselos.")

Con la división hemos conseguido que un objetivo erróneo como 0, por ejemplo, provoque un error división no válida (división entre 0).

Ahora ya solo nos falta capturar el error y visualizar un mensaje de error.

Recuerda que la función SI.ERROR hace exactamente eso. Si, efectivamente, captura un error, visualizará el mensaje de "Hay errores en los datos de entrada. Por favor, revíselos." y ya tenemos resuelto lo que queríamos. Objetivo conseguido.😊

Acerca del autor: Berto López

Soy autor y fundador de este blog, e Ingeniero en Informática de formación con amplia experiencia: he trabajado como empleado, empresario, incluso funcionario. Vamos, que he probado de todo 😄

¿Te gustaría leer un poco más sobre éste u otros temas?