🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Funciones NOT y XOR en Excel — Invierte una condición, y la lógica del «único distinto» que casi todos confunden

|

Funciones NOT y XOR en Excel — Invierte una condición, y la lógica del «único distinto» que casi todos confunden

ResumenNOT invierte un veredicto: NOT(TRUE) es FALSE. XOR es el o exclusivo — con dos entradas es TRUE solo cuando difieren. Dos trampas hacen el daño. La primera: NOT toma exactamente un argumento, así que para negar una condición compuesta debes escribir NOT(AND(a, b)) — y su verdadero valor es la ley de De Morgan, que reescribe una condición enredada en otra más simple. La segunda: XOR con 3 o más entradas no significa «exactamente una es verdadera» — devuelve TRUE cuando hay un número impar de TRUE. Para «exactamente uno de muchos», cuenta en su lugar. NOT funciona en todas partes; XOR necesita Excel 2013+.

=IF(NOT(ISBLANK(A2)), "Filled", "Empty")   ' invierte un veredicto
=XOR(A2="Yes", B2="Yes")                    ' TRUE si exactamente uno dice Yes

NOT y XOR son las dos funciones lógicas a las que la gente echa mano en último lugar y más mal usa. NOT parece redundante hasta que aprendes la única cosa en la que de verdad es buena; XOR parece obvia hasta que devuelve en silencio lo contrario de lo que esperabas con tres entradas. Ambas cobran sentido en cuanto ves para qué sirve cada una en realidad.

Nota: en una interfaz de Excel en español, NOT se llama NO y XOR se llama XO. Relacionadas: AND = Y, OR = O, IF = SI, ISBLANK = ESBLANCO, ISNUMBER = ESNUMERO, COUNTIF = CONTAR.SI, SUMPRODUCT = SUMAPRODUCTO, FILTER = FILTRAR. Las fórmulas siguientes usan los nombres en inglés — el comportamiento es el mismo. En Excel en español los errores aparecen como: #N/A, #REF!, #¿NOMBRE?, #¡VALOR!, #¡DIV/0!.

Lo que aprenderás

  • El modelo mental: NOT es un interruptor, XOR un detector de diferencias
  • Por qué NOT toma exactamente un argumento — y la trampa de la condición compuesta
  • Cuándo NOT se gana su sitio, y cuándo es solo <> disfrazado
  • La ley de De Morgan: la reescritura que hace que NOT valga la pena
  • XOR con dos entradas («difieren») frente a la sorpresa del conteo impar con 3+
  • La herramienta correcta para «exactamente uno de muchos» — y no es XOR

El modelo mental: un interruptor y un detector de diferencias

NOT es un interruptor de la luz para un único veredicto. Entre lo que entre, TRUE/FALSE, sale lo contrario — nada más. XOR es un detector de diferencias: dale dos condiciones y responde «¿son estas dos distintas?».

=NOT(A2>10)          ' TRUE cuando A2 NO es mayor que 10
=XOR(A2>10, B2>10)   ' TRUE cuando exactamente uno de ellos es mayor que 10

Mantén esas dos imágenes separadas — un giro y una diferencia — y nunca las confundirás con AND/OR, que combinan condiciones en vez de invertirlas o compararlas.

NOT toma exactamente un argumento (la trampa de la condición compuesta)

NOT niega un único valor lógico. Este es el error con el que la gente choca primero — intentar negar dos condiciones a la vez:

=NOT(A2>0, B2>0)         ' MAL — demasiados argumentos
=NOT(AND(A2>0, B2>0))    ' BIEN — niega el veredicto combinado

Para invertir una condición compuesta primero la combinas (con AND/OR) en un único veredicto, y luego inviertes ese veredicto. NOT es el último eslabón de la cadena, nunca el combinador.

Cuándo NOT se gana su sitio — y cuándo es solo <> disfrazado

Aquí está la parte honesta que la mayoría de las guías se salta: buena parte del uso de NOT es puro ruido. NOT(A2="x") es exactamente A2<>"x", solo que más largo y más difícil de leer:

=NOT(A2="Done")   ' funciona, pero...
=A2<>"Done"        ' ...esto es más claro
=NOT(A2>10)        ' funciona, pero A2<=10 es más claro

Para una comparación simple, usa el operador inverso (<>, <=, >=) y sáltate NOT por completo. NOT se gana su sitio en dos lugares: negar una función que ya devuelve un booleano donde no hay operador que invertir — NOT(ISBLANK(A2)), NOT(ISNUMBER(A2)) (mira las funciones IS) — y negar una condición nombrada o compuesta para que la fórmula se lea como una frase. Si puedes expresar la misma prueba con un solo operador de comparación, esa es casi siempre la mejor opción.

La ley de De Morgan: el verdadero superpoder de NOT

La razón por la que NOT merece conocerse siquiera es que te deja reescribir lógica enredada. La ley de De Morgan dice que negar un AND lo convierte en un OR de las negaciones, y viceversa:

' "NOT (A y B a la vez)" es lo mismo que "(no A) OR (no B)"
=NOT(AND(A2="EU", B2>1000))   =   =OR(A2<>"EU", B2<=1000)

' "NOT (A u B)" es lo mismo que "(no A) AND (no B)"
=NOT(OR(Status="Void", Status="Draft"))   =   =AND(Status<>"Void", Status<>"Draft")

Esto importa porque una forma es casi siempre más fácil de leer y de alimentar a un IF o un FILTER. Si te descubres escribiendo «conserva todo lo que no esté cancelado y no sea borrador», la forma AND(...<>...) de la derecha es más clara que un envoltorio NOT(OR(...)). Conocer el intercambio te deja elegir la que se lea mejor en vez de quedarte atrapado con la forma que escribiste primero.

XOR con dos entradas: «difieren»

Con exactamente dos condiciones, XOR es la prueba de «uno pero no ambos» — TRUE cuando las entradas discrepan, FALSE cuando coinciden:

A B OR XOR
FALSE FALSE FALSE FALSE
TRUE FALSE TRUE TRUE
FALSE TRUE TRUE TRUE
TRUE TRUE TRUE FALSE

La única fila donde XOR y OR discrepan es la última: OR dice «sí, al menos uno», XOR dice «no — ambos no está permitido». Ese es el caso de uso real — banderas mutuamente excluyentes que nunca deberían estar activas las dos a la vez:

=IF(XOR(C2="Paid", D2="Refunded"), "OK", "Check: both or neither")

La sorpresa de XOR: 3+ entradas significa «conteo impar», no «exactamente uno»

Aquí está la trampa que atrapa a casi todo el mundo. Es natural leer XOR como «exactamente uno es verdadero». Con dos entradas resulta ser correcto. Con tres o más no lo es — XOR devuelve TRUE cuando hay un número impar de entradas verdaderas:

=XOR(TRUE, TRUE, TRUE)          ' -> TRUE   (tres verdaderos = impar), NO "exactamente uno"
=XOR(TRUE, TRUE, FALSE)         ' -> FALSE  (dos verdaderos = par)
=XOR(TRUE, FALSE, FALSE)        ' -> TRUE   (un verdadero = impar)

XOR es en realidad una comprobación de paridad — cuenta cuántos verdaderos hay e informa si ese conteo es impar. Eso es a veces exactamente lo que quieres (bits de paridad, cadenas de conmutación), pero casi nunca es lo que alguien quiere decir cuando afirma «exactamente una de estas casillas está marcada».

Para «exactamente uno de muchos», cuenta en su lugar

Cuando de verdad necesitas «uno y solo uno de estos es verdadero», deja de usar XOR y cuenta los verdaderos directamente — luego comprueba que el conteo sea igual a 1:

=(--(A2="Yes") + --(B2="Yes") + --(C2="Yes")) = 1   ' exactamente un Yes
=COUNTIF(B2:D2, "Yes") = 1                            ' la misma idea sobre un rango

El -- convierte cada TRUE/FALSE en 1/0 (el mismo truco que impulsa a SUMPRODUCT), así que la suma es literalmente «cuántos son verdaderos». Compararla con 1 dice «exactamente uno»; con >=1 dice «al menos uno» (eso es OR); con =0 dice «ninguno». Contar escala a cualquier número de condiciones y nunca te sorprende con la paridad.

El criterio

  • Invertir un único veredicto de una función que devuelve booleanoNOT (p. ej. NOT(ISBLANK(...))).
  • Negar una comparación simple → usa <>, <=, >=, no NOT.
  • Simplificar un NOT(AND/OR(...)) enredado → aplica la ley de De Morgan y quédate con el lado legible.
  • Dos banderas mutuamente excluyentesXOR.
  • «Exactamente uno de varios» → cuenta con --/COUNTIF, nunca XOR con 3+ entradas.

Cómo ayuda ExcelMaster

La lógica que aquí tropieza a la gente es sutil — «no ambos», «exactamente uno», «ninguno de estos» — y la función equivocada falla en silencio, devolviendo una respuesta plausible pero errónea en los casos límite. ExcelMaster lee la regla tal como la dices — marca las filas donde exactamente una casilla de aprobación esté marcada — y escribe la forma que de verdad significa eso (un conteo =1, no un XOR de paridad), o aplica la ley de De Morgan para convertir una doble negación en algo que puedas leer dentro de seis meses.

Preguntas frecuentes

¿Qué hace la función NOT en Excel?

NOT invierte un único valor lógico: NOT(TRUE) es FALSE y NOT(FALSE) es TRUE. Toma exactamente un argumento, así que para negar una condición compuesta la envuelves: NOT(AND(A2>0, B2>0)).

¿Necesito NOT siquiera, o puedo usar <> en su lugar?

Para una comparación llana, <> (y <=, >=) es más claro: A2<>"x" gana a NOT(A2="x"). Usa NOT sobre todo para invertir una función que devuelve un booleano — NOT(ISBLANK(A2)) — o para negar un compuesto AND/OR entero.

¿Cuál es la diferencia entre OR y XOR en Excel?

Con dos entradas coinciden salvo cuando ambas son verdaderas: OR devuelve TRUE, XOR devuelve FALSE. XOR es «uno pero no ambos». Usa OR para «al menos uno», XOR para banderas mutuamente excluyentes.

¿Por qué XOR devuelve TRUE cuando tres condiciones son verdaderas?

Porque XOR comprueba paridad, no «exactamente uno». Devuelve TRUE para un número impar de entradas TRUE, así que tres verdaderos (impar) da TRUE. Para «exactamente uno de muchos», cuenta los verdaderos en su lugar: COUNTIF(range, TRUE)=1.

¿Cómo compruebo que exactamente una de varias celdas está rellenada?

Cuenta y compara con 1: =COUNTIF(B2:D2, "Yes")=1, o =(--(A2="Yes")+--(B2="Yes")+--(C2="Yes"))=1. No uses XOR para más de dos condiciones — comprueba impar/par, no «exactamente uno».

Probado en

Probado en: Excel 365 (Windows 11) — última verificación: 04/07/2026.

Guías relacionadas: Excel AND y OR · Excel funciones IS · Excel IF · Excel SUMPRODUCT · Excel FILTER