Using logical functions in Excel: AND, OR, XOR and NOT

The tutorial explains the essence of Excel logical functions AND, OR, XOR and NOT and provides formula examples that demonstrate their common and inventive uses.

Last week we tapped into the insight of Excel logical operators that are used to compare data in different cells. Today, you will see how to extend the use of logical operators and construct more elaborate tests to perform more complex calculations. Excel logical functions such as AND, OR, XOR and NOT will help you in doing this.

Excel logical functions - overview

Microsoft Excel provides 4 logical functions to work with the logical values. The functions are AND, OR, XOR and NOT. You use these functions when you want to carry out more than one comparison in your formula or test multiple conditions instead of just one. As well as logical operators, Excel logical functions return either TRUE or FALSE when their arguments are evaluated.

The following table provides a short summary of what each logical function does to help you choose the right formula for a specific task.

Function Description Formula Example Formula Description
AND Returns TRUE if all of the arguments evaluate to TRUE. =AND(A2>=10, B2<5) The formula returns TRUE if a value in cell A2 is greater than or equal to 10, and a value in B2 is less than 5, FALSE otherwise.
OR Returns TRUE if any argument evaluates to TRUE. =OR(A2>=10, B2<5) The formula returns TRUE if A2 is greater than or equal to 10 or B2 is less than 5, or both conditions are met. If neither of the conditions it met, the formula returns FALSE.
XOR Returns a logical Exclusive Or of all arguments. =XOR(A2>=10, B2<5) The formula returns TRUE if either A2 is greater than or equal to 10 or B2 is less than 5. If neither of the conditions is met or both conditions are met, the formula returns FALSE.
NOT Returns the reversed logical value of its argument. I.e. If the argument is FALSE, then TRUE is returned and vice versa. =NOT(A2>=10) The formula returns FALSE if a value in cell A1 is greater than or equal to 10; TRUE otherwise.

In additions to the four logical functions outlined above, Microsoft Excel provides 3 "conditional" functions - IF, IFERROR and IFNA.

Excel logical functions - facts and figures

  1. In arguments of the logical functions, you can use cell references, numeric and text values, Boolean values, comparison operators, and other Excel functions. However, all arguments must evaluate to the Boolean values of TRUE or FALSE, or references or arrays containing logical values.
  2. If an argument of a logical function contains any empty cells, such values are ignored. If all of the arguments are empty cells, the formula returns #VALUE! error.
  3. If an argument of a logical function contains numbers, then zero evaluates to FALSE, and all other numbers including negative numbers evaluate to TRUE. For example, if cells A1:A5 contain numbers, the formula =AND(A1:A5) will return TRUE if none of the cells contains 0, FALSE otherwise.
  4. A logical function returns the #VALUE! error if none of the arguments evaluate to logical values.
  5. A logical function returns the #NAME? error if you've misspell the function's name or attempted to use the function in an earlier Excel version that does not support it. For example, the XOR function can be used in Excel 2016 and 2013 only.
  6. In Excel 2007 and higher, you can include up to 255 arguments in a logical function, provided that the total length of the formula does not exceed 8,192 characters. In Excel 2003 and lower, you can supply up to 30 arguments and the total length of your formula shall not exceed 1,024 characters.

Using the AND function in Excel

The AND function is the most popular member of the logic functions family. It comes in handy when you have to test several conditions and make sure that all of them are met. Technically, the AND function tests the conditions you specify and returns TRUE if all of the conditions evaluate to TRUE, FALSE otherwise.

The syntax for the Excel AND function is as follows:

AND(logical1, [logical2], …)

Where logical is the condition you want to test that can evaluate to either TRUE or FALSE. The first condition (logical1) is required, subsequent conditions are optional.

And now, let's look at some formula examples that demonstrate how to use the AND functions in Excel formulas.

Formula Description
=AND(A2="Bananas", B2>C2) Returns TRUE if A2 contains "Bananas" and B2 is greater than C2, FALSE otherwise.
=AND(B2>20, B2=C2) Returns TRUE if B2 is greater than 20 and B2 is equal to C2, FALSE otherwise.
=AND(A2="Bananas", B2>=30, B2>C2) Returns TRUE if A2 contains "Bananas", B2 is greater than or equal to 30 and B2 is greater than C2, FALSE otherwise.

Using the AND function in Excel formulas

Excel AND function - common uses

By itself, the Excel AND function is not very exciting and has narrow usefulness. But in combination with other Excel functions, AND can significantly extend the capabilities of your worksheets.

One of the most common uses of the Excel AND function is found in the logical_test argument of the IF function to test several conditions instead of just one. For example, you can nest any of the AND functions above inside the IF function and get a result similar to this:

=IF(AND(A2="Bananas", B2>C2), "Good", "Bad")
An example of the IF formula with a nested AND function

For more IF / AND formula examples, please check out his tutorial: Excel IF function with multiple AND conditions.

An Excel formula for the BETWEEN condition

If you need to create a between formula in Excel that picks all values between the given two values, a common approach is to use the IF function with AND in the logical test.

For example, you have 3 values in columns A, B and C and you want to know if a value in column A falls between B and C values. To make such a formula, all it takes is the IF function with nested AND and a couple of comparison operators:

Formula to check if X is between Y and Z, inclusive:

=IF(AND(A2>=B2,A2<=C2),"Yes", "No")

Formula to check if X is between Y and Z, not inclusive:

=IF(AND(A2>B2, A2<C2),"Yes", "No")
An Excel formula for the BETWEEN condition

As demonstrated in the screenshot above, the formula works perfectly for all data types - numbers, dates and text values. When comparing text values, the formula checks them character-by-character in the alphabetic order. For example, it states that Apples in not between Apricot and Bananas because the second "p" in Apples comes before "r" in Apricot. Please see Using Excel comparison operators with text values for more details.

As you see, the IF /AND formula is simple, fast and almost universal. I say "almost" because it does not cover one scenario. The above formula implies that a value in column B is smaller than in column C, i.e. column B always contains the lower bound value and C - the upper bound value. This is the reason why the formula returns "No" for row 6, where A6 has 12, B6 - 15 and C6 - 3 as well as for row 8 where A8 is 24-Nov, B8 is 26-Dec and C8 is 21-Oct.

But what if you want your between formula to work correctly regardless of where the lower-bound and upper-bound values reside? In this case, use the Excel MEDIAN function that returns the median of the given numbers (i.e. the number in the middle of a set of numbers).

So, if you replace AND in the logical test of the IF function with MEDIAN, the formula will go like:

=IF(A2=MEDIAN(A2:C2),"Yes","No")

And you will get the following results:
Using IF with the MEDIAN function to find out all values between the given two values

As you see, the MEDIAN function works perfectly for numbers and dates, but returns the #NUM! error for text values. Alas, no one is perfect : )

If you want a perfect Between formula that works for text values as well as for numbers and dates, then you will have to construct a more complex logical text using the AND / OR functions, like this:

=IF(OR(AND(A2>B2, A2<C2), AND(A2<B2, A2>C2)), "Yes", "No")
An Excel Between formula that works for text values as well as for numbers and dates

Using the OR function in Excel

As well as AND, the Excel OR function is a basic logical function that is used to compare two values or statements. The difference is that the OR function returns TRUE if at least one if the arguments evaluates to TRUE, and returns FALSE if all arguments are FALSE. The OR function is available in all versions of Excel 2016 - 2000.

The syntax of the Excel OR function is very similar to AND:

OR(logical1, [logical2], …)

Where logical is something you want to test that can be either TRUE or FALSE. The first logical is required, additional conditions (up to 255 in modern Excel versions) are optional.

And now, let's write down a few formulas for you to get a feel how the OR function in Excel works.

Formula Description
=OR(A2="Bananas", A2="Oranges") Returns TRUE if A2 contains "Bananas" or "Oranges", FALSE otherwise.
=OR(B2>=40, C2>=20) Returns TRUE if B2 is greater than or equal to 40 or C2 is greater than or equal to 20, FALSE otherwise.
=OR(B2=" ", C2="") Returns TRUE if either B2 or C2 is blank or both, FALSE otherwise.

Using the OR function in Excel

As well as Excel AND function, OR is widely used to expand the usefulness of other Excel functions that perform logical tests, e.g. the IF function. Here are just a couple of examples:

IF function with nested OR

=IF(OR(B2>30, C2>20), "Good", "Bad")

The formula returns "Good" if a number in cell B3 is greater than 30 or the number in C2 is greater than 20, "Bad" otherwise.

Excel AND / OR functions in one formula

Naturally, nothing prevents you from using both functions, AND & OR, in a single formula if your business logic requires this. There can be infinite variations of such formulas that boil down to the following basic patterns:

=AND(OR(Cond1, Cond2), Cond3)

=AND(OR(Cond1, Cond2), OR(Cond3, Cond4)

=OR(AND(Cond1, Cond2), Cond3)

=OR(AND(Cond1,Cond2), AND(Cond3,Cond4))

For example, if you wanted to know what consignments of bananas and oranges are sold out, i.e. "In stock" number (column B) is equal to the "Sold" number (column C), the following OR/AND formula could quickly show this to you:

=OR(AND(A2="bananas", B2=C2), AND(A2="oranges", B2=C2))
The AND/OR formula to test multiple conditions

OR function in Excel conditional formatting

=OR($B2="", $C2="")

The rule with the above OR formula highlights rows that contain an empty cell either in column B or C, or in both.
Using the OR function in Excel conditional formatting

For more information about conditional formatting formulas, please see the following articles:

Using the XOR function in Excel

In Excel 2013, Microsoft introduced the XOR function, which is a logical Exclusive OR function. This term is definitely familiar to those of you who have some knowledge of any programming language or computer science in general. For those who don't, the concept of 'Exclusive Or' may be a bit difficult to grasp at first, but hopefully the below explanation illustrated with formula examples will help.

The syntax of the XOR function is identical to OR's :

XOR(logical1, [logical2],…)

The first logical statement (Logical 1) is required, additional logical values are optional. You can test up to 254 conditions in one formula, and these can be logical values, arrays, or references that evaluate to either TRUE or FALSE.

In the simplest version, an XOR formula contains just 2 logical statements and returns:

  • TRUE if either argument evaluates to TRUE.
  • FALSE if both arguments are TRUE or neither is TRUE.

This might be easier to understand from the formula examples:

Formula Result Description
=XOR(1>0, 2<1) TRUE Returns TRUE because the 1st argument is TRUE and the 2nd argument is FALSE.
=XOR(1<0, 2<1) FALSE Returns FALSE because both arguments are FALSE.
=XOR(1>0, 2>1) FALSE Returns FALSE because both arguments are TRUE.

When more logical statements are added, the XOR function in Excel results in:

  • TRUE if an odd number of the arguments evaluate to TRUE;
  • FALSE if is the total number of TRUE statements is even, or if all statements are FALSE.

The screenshot below illustrates the point:
Excel XOR formula with multiple logical statements

If you are not sure how the Excel XOR function can be applied to a real-life scenario, consider the following example. Suppose you have a table of contestants and their results for the first 2 games. You want to know which of the payers shall play the 3rd game based on the following conditions:

  • Contestants who won Game 1 and Game 2 advance to the next round automatically and don't have to play Game 3.
  • Contestants who lost both first games are knocked out and don't play Game 3 either.
  • Contestants who won either Game 1 or Game 2 shall play Game 3 to determine who goes into the next round and who doesn't.

A simple XOR formula works exactly as we want:

=XOR(B2="Won", C2="Won")
Using the Excel XOR function in a real-life scenario

And if you nest this XOR function into the logical test of the IF formula, you will get even more sensible results:

=IF(XOR(B2="Won", C2="Won"), "Yes", "No")
The IF formula with a nested XOR function

Using the NOT function in Excel

The NOT function is one of the simplest Excel functions in terms of syntax:

NOT(logical)

You use the NOT function in Excel to reverse a value of its argument. In other words, if logical evaluates to FALSE, the NOT function returns TRUE and vice versa. For example, both of the below formulas return FALSE:

=NOT(TRUE)

=NOT(2*2=4)

Why would one want to get such ridiculous results? In some cases, you might be more interested to know when a certain condition isn't met than when it is. For example, when reviewing a list of attire, you may want to exclude some color that does not suit you. I'm not particularly fond of black, so I go ahead with this formula:

=NOT(C2="black")
Using the NOT function in Excel

As usual, in Microsoft Excel there is more than one way to do something, and you can achieve the same result by using the Not equal to operator: =C2<>"black".

If you want to test several conditions in a single formula, you can use NOT in conjunctions with the AND or OR function. For example, if you wanted to exclude black and white colors, the formula would go like:

=NOT(OR(C2="black", C2="white"))

And if you'd rather not have a black coat, while a black jacket or a back fur coat may be considered, you should use NOT in combination with the Excel AND function:

=NOT(AND(C2="black", B2="coat"))

Another common use of the NOT function in Excel is to reverse the behavior of some other function. For instance, you can combine NOT and ISBLANK functions to create the ISNOTBLANK formula that Microsoft Excel lacks.

As you know, the formula =ISBLANK(A2) returns TRUE of if the cell A2 is blank. The NOT function can reverse this result to FALSE: =NOT(ISBLANK(A2))

And then, you can take a step further and create a nested IF statement with the NOT / ISBLANK functions for a real-life task:

=IF(NOT(ISBLANK(C2)), C2*0.15, "No bonus :(")
A nested IF statement with NOT / ISBLANK functions

Translated into plain English, the formula tells Excel to do the following. If the cell C2 is not empty, multiply the number in C2 by 0.15, which gives the 15% bonus to each salesman who has made any extra sales. If C2 is blank, the text "No bonus :(" appears.

In essence, this is how you use the logical functions in Excel. Of course, these examples have only scratched the surface of AND, OR, XOR and NOT capabilities. Knowing the basics, you can now extend your knowledge by tackling your real tasks and writing smart elaborate formulas for your worksheets.

567 comments

  1. sorry I made a mistake in the last msg.

    Hello!
    I am in school right now learning accountant and business start up but I am having a little bit of trouble with some parts of excel functions. I learned some parts quickly and some others just do not want to sink in my brain. Can anyone help/explain to me how I would come to this answer. Please. details of how to come to the answer would be helpful . I am a visual person.

    Example:

    When a property is sold, the agent receives a commission based on the category of the building. For a commercial building, a commission rate of 4% is applied, otherwise, 3% is applied. Write down the arguments of the IF formula that you will enter in cell D5 to determine the commission received for the first entry.

    A B C D
    4-- ENTRY CATEGORY SELLING PRICE COMMISSION

    5-- 07-QC4002 Residential $ 240,000
    6-- 07-QC4005 Commercial $ 410,000
    7-- 07-QC4006 Investment $ 536,000

    =IF(__________________________,______________________________,_____________________________)

  2. i need a formulae which can help me asign diffrent numbers that add up to the whole number i have in a cell.

    Data compersated Gift Bundle
    15 300 mbs
    500 mbs
    1 GB
    1.5GB
    3 GB
    5 GB

    For example breaking down 15 in to the diffrent bundles to add up to 15

    • Hi!
      Unfortunately, your problem cannot be solved using formulas. An Excel formula can only insert a value into the cell in which it is written.

  3. SL. No Name Math Science English Total RESULT
    1 VIMAL AB 66 34 100
    2 SANJAY 79 53 77 209
    3 GUDU 44 21 59 124
    4 SAROHI 38 45 23 106
    5 TARUN 68 AB 56 124
    6 RAMAN 25 53 46 124
    7 AKASH 49 75 47 171
    8 DIPU 73 61 AB 134
    9 MANOJ 57 32 55 144
    10 MANJU 76 54 61 191
    what is the results
    AB=absent , so its fail, all subject attened is pass

  4. I need formula for calculation of marks results with different grades, (if candidate fail any one subject it should be shows fail like that IF formula)

  5. Hi, I have produced a vlookup table which gives two variables, one column being being glazing type and other column being orientation (n,s,e,w) which then give a value based on the combination of these two variables.
    What formula do i need to use?
    There are three variables in the first column and 4 variables in the second column and depending which combination of these are selected they correspond to a given value in column 3.
    In the main spreadsheet i have columns a and b as drop down menus to select the appropriate glazing type and orientation. Column c in the main spreadsheet is where i wish to input the formula to dispaly the corresponding value

  6. Hi,

    I'm trying to create a pointing system in which I have 3 types & 3 categories (both are columns):

    For example: Types are:

    Black
    Brown
    Yellow

    Categories are columns with value (duration).

    1 year
    2 years
    3 years

    I can't create a formula that will create a result like the below:

    If black & 1 year then return value 1$
    If black & 2 years then return value 2$
    If black & 3 years then return value 3$
    If brown & 1 year then return value 3$
    If brown & 2 yers then return value 4$
    And so on:

    How can I do this?

  7. I want write formula like this. I have a drop down list of a,b,c . If i select a , value will 2, If i select b,value will 3 and if select c ,value will be 3 . It will be multiply with another value 20. How to write this formula

  8. hi all
    I beg for assistance,if I had 20000KSH of my basic salary and I was given 10% for the house allowance from the basic salary.Use logical function to carry out this.

  9. I WOULD LIKE YOU TO OPEN FOR ME FULL SPACE SO THAT I CAN TRY TO CARRY OUT SOME LOGICAL FUNCTIONS IN EXCEL

  10. Please correct below formula

    =COUNTIFS('Design Status'!$C$7:$C$68,Sheet1!B12)*(AND(C13>='Design Status'!I7:I68))

    • Can i share the record

  11. =IF("4/9/2021 12:03PM"<"4/14/2021 5:30AM",TRUE,FALSE)
    The above condition gives false as output instead of true..could you please help me out

  12. Syntax for any of these functions requires semi-colon as separator, not comma!
    =AND(($E1="valueA"); ($C1="valueB"))

    Probably a question of localization settings (currency, dates etc). This is for Denmark :)

    • Hello Villads,

      Your guess is absolutely right - the separator is determined by Regional Settings. In Denmark as well as in other European countries, List Separator is a semicolon. In North America, it's a comma. On my computer, it's also a comma :)

  13. Hello -

    Is it possible to combine IF, OR, and Match?

    Ex Column A holds address values, columns B, C, D holds a VLOOKUP formula that will pull an address value from different tabs. I am trying to construct a formula that reads If A2 = B2 or A2=C2 or A2= D2 than return a value of 1 if none of these then 0. However, some of the address values are not an exact match thus returning a value of 0 (ex: A2 = 123 ABC Road and B2 = 123 ABC Rd this should = to 1 but due to Road and Rd not being the same it gives it a value of 0).

    I've tried Match with a *wildcard to identify the potential match and these seems to work on its own however when I construct the entire formula it does not return the expected Value.

    C58 = 123 ABC Road
    J58= (Blank Value)
    K58= (Blank Value)
    L58 = 123 ABC Rd

    =MATCH("*"&LEFT(C58,5)&"*",L58,0)
    Result 1

    Combined formula
    IFERROR(IF(OR(MATCH("*"&LEFT(C58,5)&"*",J58,0),MATCH("*"&LEFT(C58,5)&"*",K58,0),MATCH("*"&LEFT(C58,5)&"*",L58,0)),1,0),0)

    Result = 0
    However anticipated result is 1

    Any insight would be appreciated!

    • Hello!
      If I got you right, the formula below will help you with your task:

      =ISNUMBER(SEARCH(LEFT(C58,5),L58,1))+ ISNUMBER(SEARCH(LEFT(C58,5),K58,1))+ ISNUMBER(SEARCH(LEFT(C58,5),J58,1))

      The SEARCH function finds characters in a cell.

      • Thank you! I was able to nest those functions into my formula and it returned the desired result 1.

        =IFERROR(IF(OR(ISNUMBER(SEARCH(LEFT(C58,7),J58,1)),ISNUMBER(SEARCH(LEFT(C58,7),K58,1)),ISNUMBER(SEARCH(LEFT(C58,7),L58,1))),1,0)," ")

  14. Hello,

    Could you please help me for the below requirement.

    Value 1 Value 2 Result
    1 20 IF (Value1=1, Value22,Value26,Value218,Value230,4)
    0 5 IF (Value1=0, Value22,Value23,Value29,Value212,4)

  15. Hi Alexander,
    I was wondering if you could help me with my formula.

    =IF(OR(AND('2020-Balance Affecting'!H2>="MEMBERSHIP")*AND('2020-Balance Affecting'!H2>="RENEWAL")),'2020-Balance Affecting'!A2:M2,"FALSE")

    The cell H2 on a previous tab (named "2020-Balance Affecting") in my workbook could contain more words than "membership" or "renewal" to the extent of infinite possibilities of combinations, However if either of those words are in cell H2, I would like excel to display the entire row of cells which includes the date of renewal or membership purchase and the cost involved.
    Is there a way to indicate "wildcard information" containing "membership" or "renewal" in the If function's logical argument?
    The function is currently selectively displaying rows no matter what text is cell H2 or outright displaying "FALSE" as desired.

    examples of possibilities in cell H2 include;
    2312-1065 - Renewal
    1964-1066 - Renewal
    Annual membership for current year. Join-now form submission
    2042-1070 - Renewal
    Membership Dues
    etc.

    My endgame is that i could pull all the membership purchases and renewals to a secondary tab in my workbook and then total the cost column. I'm not really concerned about the "FALSE" labeled rows as they would add up as a zero when I total the cost column.

    Thank you for any help!

  16. Dear Sir,
    Hello
    i used the following formula to give me a (YES) or (NO) answer depending on the comparison LOGIC:
    IF(AND($AG2>=CO$1; $AG2<CP$1);"Yes";"No"). THE FORMULA USED FOR ONE CALENDER YEAR (2015)
    AG2 : IS THE DATE OF RECRUITMENT....SAY 1/1/2015 ....(m/d/y)
    CO1: THE DATE of the first day of the first month of the year 2015 (1/1/2015)
    CP1: THE DATE of the second month of the second month of the year (1/2/2015)
    surprisingly, the formula logic is incorrect if i change the recruitment date to 25/1/2015 or even 2/1/2015. Any help will be highly appreciated

  17. Hi, I have cells that contain variable text to display if certain conditions are met. Some of the conditions are simple, but some are a bit more complex.

    Here is what I started that isn't working:

    =IF(AND(New!$E$4="401(k)",OR(New!$E$4="401(k) w/ FBO","Cash Balance","Defined Benefit","Owner Only 401(k)","Owner Only 401(k) 5500-EZ","Owner Only Cash Balance"),NOT((OR("Fidelity","MassMutual","Nationwide","Not A Platform","Open Arch / Other","Securian","T Rowe Price")),Language!A7,"REVIEW"))

    Basically, it is if any of these are selected (401k, 401k w/ fbo, cash balance, defined benefit, owner only 401k, owner only 401k 5500-ez, or owner only cash balance) and the one selected is not a part of Fidelity, Mass Mutual, Nationwide, Not a Platform, Open Arch/Other, Securian, or T Rowe Price, then it will display Language!A7, otherwise, we review.

    • Hello!
      It is very difficult to understand a formula that contains unique references to your workbook worksheets.
      Your explanation of the terms is not very clear.
      The expression
      AND(New!$E$4=”401(k)”,OR(New!$E$4=”401(k) w/ FBO”,”Cash Balance”,”Defined Benefit”,”Owner Only 401(k)”,”Owner Only 401(k) 5500-EZ”,”Owner Only Cash Balance”)
      is meaningless, since it can never be executed.
      I think all these conditions should be used in OR.
      But your formula is not written correctly. Here's how you can write multiple OR conditions:

      =IF(AND(OR(C1={"A","F","G"}),OR(D1<>{"B","C","E"})),1,0)

      I hope my advice will help you solve your task.

  18. I WANT TO KNOW WHICH FUNCTION CAN BE USED TO GET GET THE VALUE OF THE SAME IRRESPECTIVE OF WHETHER ITS PLUS OR MINUS.
    EG IF A CELL SHOWS -12 OR 12 , I SHOULD GET THE ANSWER AS 12, SO I CAN USE IT IN OTHER WORKING .

  19. I'm stuck and hope someone can help. =IF(H11"",TEXT(H1,"mm/dd")&"–"&TEXT(H11,"MM/DD/Y"),"") returns the correct answer but I want to add that if H11 is blank then read another cell. Possible?

    • Hello!
      If I understand the problem correctly, replace "" in the formula with the cell address. For example:

      =IF(H11 < > "",TEXT(H1,"mm/dd")&"–"&TEXT(H11,"MM/DD/Y"),G1)

      I hope my advice will help you solve your task.

  20. What if I want a formula to total how many students are new and belong to specific rep
    for example it would count all item in D3-D15 that equal humberto and also E3-E15 that equal red. So the total i need has to meet both criterias from both columns

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)