Hablaré en esta ocasión sobre una función que apareció en la última versión de Excel 2013, la función XO llamada disyunción exclusiva o también O exclusivo.
Ésta es una función lógica, por lo que siempre cuesta bastante comprender su funcionamiento, más aún cuando ya existía otra función O (disyunción lógica) parecida pero NO igual.
A modo de resumen creo interesante definir, a grandes rasgos, las diferentes funciones O, XO e Y:
La función Y (conjunción lógica), que devuelve VERDADERO cuando todos los argumentos son VERDADEROS, será suficiente con que solo uno no se cumpla para que nuestra función sea FALSO.
(puedes leer algo más en wikipedia).
La función O (disyunción lógica), que devuelve VERDADERO cuando al menos uno de los argumentos sea VERDADERO, únicamente será FALSO cuando todos los argumentos sean FALSO.
(puedes leer algo más en wikipedia).
Y la función XO (disyunción exclusiva), que devolverá VERDADERO cuando sólo un operando es VERDADERO pero no todos a la vez.
(puedes leer algo más en wikipedia).
Plantadas las bases teóricas, veámoslo sobre un ejemplo:
Como observamos en el rango D5:D12 hemos aplicado la siguiente fórmula:
=O(A5="norte";B5="rojo")
la disyunción lógica tradicional, obteniendo por tanto VERDADERO en aquellas combinaciones en las que al menos uno de los valores cumple.
En el rango E5:E12 he aplicado la función de Excel 2013 XO:
=XO(A5="norte";B5="rojo")
como era de esperar devuelve VERDADERO cuando se cumple sólo uno de los criterios y FALSO cuando se verifican ambos o ninguno.
En el rango de celdas F5:F12 hemos replicado con las funciones lógicas Y, O y NO la función XO (inexistente en versiones anteriores a 2013). Nuestra primera posibilidad sería construir algo del estilo:
O(Y(A;NO(B));Y(NO(A);B))
en formato Excel y aplicado sobre nuestro ejemplo:
=O(Y(A5="norte";NO(B5="rojo"));Y(NO(A5="norte");B5="rojo"))
obteniendo el mismo resultado que con XO.
Otras forma diferente de llegar a lo mismo, en el rango G5:G12, sería aplicar el algoritmo lógico:
Y(NO(Y(A;B));O(A;B))
en formato Excel:
=Y(NO(Y(A5="norte";B5="rojo"));O(A5="norte";B5="rojo")).
Sin duda un avance importante de Excel en esta versión 2013...
Ésta es una función lógica, por lo que siempre cuesta bastante comprender su funcionamiento, más aún cuando ya existía otra función O (disyunción lógica) parecida pero NO igual.
A modo de resumen creo interesante definir, a grandes rasgos, las diferentes funciones O, XO e Y:
La función Y (conjunción lógica), que devuelve VERDADERO cuando todos los argumentos son VERDADEROS, será suficiente con que solo uno no se cumpla para que nuestra función sea FALSO.
(puedes leer algo más en wikipedia).
La función O (disyunción lógica), que devuelve VERDADERO cuando al menos uno de los argumentos sea VERDADERO, únicamente será FALSO cuando todos los argumentos sean FALSO.
(puedes leer algo más en wikipedia).
Y la función XO (disyunción exclusiva), que devolverá VERDADERO cuando sólo un operando es VERDADERO pero no todos a la vez.
(puedes leer algo más en wikipedia).
Plantadas las bases teóricas, veámoslo sobre un ejemplo:
Como observamos en el rango D5:D12 hemos aplicado la siguiente fórmula:
=O(A5="norte";B5="rojo")
la disyunción lógica tradicional, obteniendo por tanto VERDADERO en aquellas combinaciones en las que al menos uno de los valores cumple.
En el rango E5:E12 he aplicado la función de Excel 2013 XO:
=XO(A5="norte";B5="rojo")
como era de esperar devuelve VERDADERO cuando se cumple sólo uno de los criterios y FALSO cuando se verifican ambos o ninguno.
En el rango de celdas F5:F12 hemos replicado con las funciones lógicas Y, O y NO la función XO (inexistente en versiones anteriores a 2013). Nuestra primera posibilidad sería construir algo del estilo:
O(Y(A;NO(B));Y(NO(A);B))
en formato Excel y aplicado sobre nuestro ejemplo:
=O(Y(A5="norte";NO(B5="rojo"));Y(NO(A5="norte");B5="rojo"))
obteniendo el mismo resultado que con XO.
Otras forma diferente de llegar a lo mismo, en el rango G5:G12, sería aplicar el algoritmo lógico:
Y(NO(Y(A;B));O(A;B))
en formato Excel:
=Y(NO(Y(A5="norte";B5="rojo"));O(A5="norte";B5="rojo")).
Sin duda un avance importante de Excel en esta versión 2013...
ayuda porfa tengo esta duda espero me puedan apoyar
ResponderEliminaredad minima edad maxima categoria
4 6 pre infantil
7 10 infantil
11 12 pre juvenil
13 16 juvenil
17 20 adolecente
20 25 aficionado
edad 8
categoria
formula que busque en los rangos de edad en base a la edad y genere a que categoria pertenece
Hola, suponiendo tus datos en el rango A1:C7
Eliminary que en E3 introduces el dato de edad para conocer su categoría correspondiente, entonces en F3:
=BUSCARV(E3;$A$2:$C$7;3)
Saludos cordiales
la segunda forma de representar el xor es incorrecta, saludos
ResponderEliminarHola, que tal Fernando
Eliminarun placer saludarte igualmente...
GRacias por tu comentario.... y ¿cuál sería la forma correcta en tu opinión?
Gracias por aportar