Many tasks you perform in Excel involve comparing data in different cells. For this, Microsoft Excel provides six logical operators, which are also called comparison operators. This tutorial aims to help you understand the insight of Excel logical operators and write the most efficient formulas for your data analysis.
Excel logical operators - overview
A logical operator is used in Excel to compare two values. Logical operators are sometimes called Boolean operators because the result of the comparison in any given case can only be either TRUE or FALSE.
Six logical operators are available in Excel. The following table explains what each of them does and illustrates the theory with formula examples.
Condition | Operator | Formula Example | Description |
Equal to | = | =A1=B1 | The formula returns TRUE if a value in cell A1 is equal to the values in cell B1; FALSE otherwise. |
Not equal to | <> | =A1<>B1 | The formula returns TRUE if a value in cell A1 is not equal to the value in cell B1; FALSE otherwise. |
Greater than | > | =A1>B1 | The formula returns TRUE if a value in cell A1 is greater than a value in cell B1; otherwise it returns FALSE. |
Less than | < | =A1<B1 | The formula returns TRUE if a value in cell A1 is less than in cell B1; FALSE otherwise. |
Greater than or equal to | >= | =A1>=B1 | The formula returns TRUE if a value in cell A1 is greater than or equal to the values in cell B1; FALSE otherwise. |
Less than or equal to | <= | =A1<=B1 | The formula returns TRUE if a value in cell A1 is less than or equal to the values in cell B1; FALSE otherwise. |
The screenshot below demonstrates the results returned by Equal to, Not equal to, Greater than and Less than logical operators:
It may seem that the above table covers it all and there's nothing more to talk about. But in fact, each logical operator has its own specificities and knowing them can help you harness the real power of Excel formulas.
Using "Equal to" logical operator in Excel
The Equal to logical operator (=) can be used to compare all data types - numbers, dates, text values, Booleans, as well as the results returned by other Excel formulas. For example:
=A1=B1 | Returns TRUE if the values in cells A1 and B1 are the same, FALSE otherwise. |
=A1="oranges" | Returns TRUE if cells A1 contain the word "oranges", FALSE otherwise. |
=A1=TRUE | Returns TRUE if cells A1 contain the Boolean value TRUE, otherwise it returns FALSE. |
=A1=(B1/2) | Returns TRUE if a number in cell A1 is equal to the quotient of the division of B1 by 2, FALSE otherwise. |
Example 1. Using the "Equal to" operator with dates
You might be surprised to know that the Equal to logical operator cannot compare dates as easily as numbers. For example, if the cells A1 and A2 contain the date "12/1/2014", the formula =A1=A2
will return TRUE exactly as it should.
However, if you try either =A1=12/1/2014
or =A1="12/1/2014"
you will get FALSE as the result. A bit unexpected, eh?
The point is that Excel stores dates as numbers beginning with 1-Jan-1900, which is stored as 1. The date 12/1/2014 is stored as 41974. In the above formulas, Microsoft Excel interprets "12/1/2014" as a usual text string, and since "12/1/2014" is not equal to 41974, it returns FALSE.
To get the correct result, you must always wrap a date in the DATEVALUE function, like this =A1=DATEVALUE("12/1/2014")
Note. The DATEVALUE function needs to be used with other logical operator as well, as demonstrated in the examples that follow.
The same approach should be applied when you use Excel's equal to operator in the logical test of the IF function. You can find more info as well as a few formula examples in this tutorial: Using Excel IF function with dates.
Example 2. Using the "Equal to" operator with text values
Using Excel's Equal to operator with text values does not require any extra twists. The only thing you should keep in mind is that the Equal to logical operator in Excel is case-insensitive, meaning that case differences are ignored when comparing text values.
For example, if cell A1 contains the word "oranges" and cell B1 contains "Oranges", the formula =A1=B1
will return TRUE.
If you want to compare text values taking in to account their case differences, you should use the EXACT function instead of the Equal to operator. The syntax of the EXACT function is as simple as:
Where text 1 and text2 are the values you want to compare. If the values are exactly the same, including case, Excel returns TRUE; otherwise, it returns FALSE. You can also use the EXACT function in IF formulas when you need a case-sensitive comparison of text values, as shown in the below screenshot:
Note. If you want to compare the length of two text values, you can use the LEN function instead, for example =LEN(A2)=LEN(B2)
or =LEN(A2)>=LEN(B2)
.
Example 3. Comparing Boolean values and numbers
There is a widespread opinion that in Microsoft Excel the Boolean value of TRUE always equates to 1 and FALSE to 0. However, this is only partially true, and the key word here is "always" or more precisely "not always" : )
When writing an 'equal to' logical expression that compares a Boolean value and a number, you need to specifically point out for Excel that a non-numeric Boolean value should be treated as a number. You can do this by adding the double minus sign in front of a Boolean value or a cell reference, e. g. =A2=--TRUE
or =A2=--B2
.
The 1st minus sign, which is technically called the unary operator, coerces TRUE/FALSE to -1/0, respectively, and the second unary negates the values turning them into +1 and 0. This will probably be easier to understand looking at the following screenshot:
Note. You should add the double unary operator before a Boolean when using other logical operators such as not equal to, greater than or less than to correctly compare a numeric and Boolean values.
When using logical operators in complex formulas, you might also need to add the double unary before each logical expression that returns TRUE or FALSE as the result. Here's an example of such a formula: SUMPRODUCT and SUMIFS in Excel.
Using "Not equal to" logical operator in Excel
You use Excel's Not equal to operator (<>) when you want to make sure that a cell's value is not equal to a specified value. The use of the Not equal to operator is very similar to the use of Equal to that we discussed a moment ago.
The results returned by the Not equal to operator are analogous to the results produced by the Excel NOT function that reverses the value of its argument. The following table provides a few formula examples.
Not equal to operator | NOT function | Description |
=A1<>B1 | =NOT(A1=B1) | Returns TRUE if the values in cells A1 and B1 are not the same, FALSE otherwise. |
=A1<>"oranges" | =NOT(A1="oranges") | Returns TRUE if cell A1 contains any value other than "oranges", FALSE if it contains "oranges" or "ORANGES" or "Oranges", etc. |
=A1<>TRUE | =NOT(A1=TRUE) | Returns TRUE if cell A1 contains any value other than TRUE, FALSE otherwise. |
=A1<>(B1/2) | =NOT(A1=B1/2) | Returns TRUE if a number in cell A1 is not equal to the quotient of the division of B1 by 2, FALSE otherwise. |
=A1<>DATEVALUE("12/1/2014") | =NOT(A1=DATEVALUE("12/1/2014")) | Returns TRUE if A1 contains any value other than the date of 1-Dec-2014, regardless of the date format, FALSE otherwise. |
Greater than, less than, greater than or equal to, less than or equal to
You use these logical operators in Excel to check how one number compares to another. Microsoft Excel provides 4 comparison operates whose names are self-explanatory:
- Greater than (>)
- Greater than or equal to (>=)
- Less than (<)
- Less than or equal to (<=)
Most often, Excel comparison operators are used with numbers, date and time values. For example:
=A1>20 | Returns TRUE if a number in cell A1 is greater than 20, FALSE otherwise. |
=A1>=(B1/2) | Returns TRUE if a number in cell A1 is greater than or equal to the quotient of the division of B1 by 2, FALSE otherwise. |
=A1<DATEVALUE("12/1/2014") | Returns TRUE if a date in cell A1 is less than 1-Dec-2014, FALSE otherwise. |
=A1<=SUM(B1:D1) | Returns TRUE if a number in cell A1 is less than or equal to the sum of values in cells B1:D1, FALSE otherwise. |
Using Excel comparison operators with text values
In theory, you can also use the greater than, greater than or equal to operators as well as their less than counterparts with text values. For example, if cell A1 contains "apples" and B1 contains "bananas", guess what the formula =A1>B1
will return? Congratulations to those who've staked on FALSE : )
When comparing text values, Microsoft Excel ignores their case and compares the values symbol by symbol, "a" being considered the lowest text value and "z" - the highest text value.
So, when comparing the values of "apples" (A1) and "bananas" (B1), Excel starts with their first letters "a" and "b", respectively, and since "b" is greater than "a", the formula =A1>B1
returns FALSE.
If the first letters are the same, then the 2nd letters are compared, if they happen to be identical too, then Excel gets to the 3rd, 4th letters and so on. For example, if A1 contained "apples" and B1 contained "agave", the formula =A1>B1
would return TRUE because "p" is greater than "g".
At first sight, the use of comparison operators with text values seems to have very little practical sense, but you never know what you might need in the future, so probably this knowledge will prove helpful to someone.
Common uses of logical operators in Excel
In real work, Excel logical operators are rarely used on their own. Agree, the Boolean values TRUE and FALSE they return, though very true (excuse the pun), are not very meaningful. To get more sensible results, you can use logical operators as part of Excel functions or conditional formatting rules, as demonstrated in the below examples.
1. Using logical operators in arguments of Excel functions
When it comes to logical operators, Excel is very permissive and allows using them in parameters of many functions. One of the most common uses is found in Excel IF function where the comparison operators can help to construct a logical test, and the IF formula will return an appropriate result depending on whether the test evaluates to TRUE or FALSE. For example:
=IF(A1>=B1, "OK", "Not OK")
This simple IF formula returns OK if a value in cell A1 is greater than or equal to a value in cell B1, "Not OK" otherwise.
And here's another example:
=IF(A1<>B1, SUM(A1:C1), "")
The formula compares the values in cells A1 and B1, and if A1 is not equal to B1, the sum of values in cells A1:C1 is returned, an empty string otherwise.
Excel logical operators are also widely used in special IF functions such as SUMIF, COUNTIF, AVERAGEIF and their plural counterparts that return a result based on a certain condition or multiple conditions.
You can find a wealth of formula examples in the following tutorials:
2. Using Excel logical operators in mathematical calculations
Of course, Excel functions are very powerful, but you don't always have to use them to achieve the desired result. For example, the results returned by the following two formulas are identical:
IF function: =IF(B2>C2, B2*10, B2*5)
Formula with logical operators: =(B2>C2)*(B2*10)+(B2<=C2)*(B2*5)
I guess the IF formula is easier to interpret, right? It tells Excel to multiply a value in cell B2 by 10 if B2 is greater than C2, otherwise the value in B1 is multiplied by 5.
Now, let's analyze what the 2nd formula with the greater than and less than or equal to logical operators does. It helps to know that in mathematical calculations Excel does equate the Boolean value TRUE to 1, and FALSE to 0. Keeping this in mind, let's see what each of the logical expressions actually returns.
If a value in cell B2 is greater than a value in C2, then the expression B2>C2 is TRUE, and consequently equal to 1. On the other hand, B2<=C2 is FALSE and equal to 0. So, given that B2>C2, our formula undergoes the following transformation:
Since any number multiplied by zero gives zero, we can cast away the second part of the formula after the plus sign. And because any number multiplied by 1 is that number, our complex formula turns into a simple =B2*10 that returns the product of multiplying B2 by 10, which is exactly what the above IF formula does : )
Obviously, if a value in cell B2 is less than in C2, then the expression B2>C2 evaluates to FALSE (0) and B2<=C2 to TRUE (1), meaning that the reverse of the described above will occur.
3. Logical operators in Excel conditional formatting
Another common use of logical operators is found in Excel Conditional Formatting that lets you quickly highlight the most important information in a spreadsheet.
For example, the following simple rules highlight selected cells or entire rows in your worksheet depending on a value in column A:
Less than (orange): =A1<5
Greater than (green): =A1>20
For the detailed-step-by-step instructions and rule examples, please see the following articles:
As you see, the use of logical operators in Excel is intuitive and easy. In the next article, we are going to learn the nuts and bolts of Excel logical functions that allow performing more than one comparison in a formula. Please stay tuned and thank you for reading!
1256 comments
Hi,
I am trying to convert positive $ value to negative value if that positive value for an account number greater than 4 but less than 5. Can you please let me know what formula can I use to get that result?
Thanks
Hi,
I have two results in excel: 37.9% and 29.8%, how to type formula to say that if both of them are within 1% then report mean, if the difference is greater then the preferred result is taken as lower of the two values.
Thank you
I have a data four cell in excel now i want to summation both of data but if i input one cell less then 9 or equal to any character the output will be zero. How can i solve this issue. plzz do the ans for the question.
Hi Svetlana,
First I want to mention that I respect if you do not have the time to help and since you actually are making an income working with Excel I understand if you do not are able to help out.
I have searched on Internet "everywhere", but do not find the correct "programming" that works for me in my Excel sheet.
To start with, I work with time and a sheet using 24 hour and beyond this. Time can start at 21:00 and finish at 28:00 or 14:30 ending at 25:20 (that is the data I have (working hours and the extra amount of money we get working late)).
19-22 and 22-30
The rules I try to set is to find time that passes 19:00 and ends before 30:00 (06:00). Also I want to know if how much time is between 19:00 - 22:00 and how much is between 22:00 and 30:00.
Break (no extra payment)
For an example working hours are 14:00-23:30. Then we get three hours of extra payment between 19:00-22:00 and a higher amount of money between 22:00-23:30. But we do not get paid that extra money, below I have added a break between 18.30-19:30.
First I want to extract the 19:30 into one cell, 22:00 to the next, after that also 22:00 separately and at the end 23:30.
This is how I want it to look...
C2-14:00 Work starts (actual data)
C3-23:30 Work ends (actual data)
C4-18:30 Break starts (actual data, no payment from this time)
C5-19:30 Break ends (actual data, no payment to this time)
C6-19:30 Start time of lower payment (=IF... ) to get this result
C7- 22:00 End time of lower payment (=IF... ) to get this result
C8-22:00 Start time of higher payment (=IF... ) to get this result
C9-23:30 End time of higher payment (=IF... ) to get this result
Also to make sure the formulas work if the working hours are between 16:00-25:02 break at 21:20-22:40, 21:30-29:50 break at 25:00, 24:01-31:00 or 23:40-28:00 breaks embedded at any time...
I have tried this, but could not make it work.
Will this take to much time to write formulas that makes this work?
Best regards
Tom S
Hi Svetlana,
First I want to mention that I respect if you do not have the time to help and since you actually are making an income working with Excel I understand if you do not are able to help out.
I have searched on Internet "everywhere, but do not find the correct "programming" that works for me in my Excel sheet.
To start with, I work with time and a sheet using 24 hour and beyond this. Time can start at 21:00 and finish at 28:00 or 14:30 ending at 25:20 (that is the data I have (working hours and the extra amount of money we get working late)).
19-22 and 22-30
The rules I try to set is to find time that passes 19:00 and ends before 30:00 (06:00). Also I want to know if how much time is between 19:00 - 22:00 and how much is between 22:00 and 30:00.
Break (no extra payment)
For an example working hours are 14:00-23:30. Then we get three hours of extra payment between 19:00-22:00 and a higher amount of money between 22:00-23:30. But we do not get paid that extra money, below I have added a break between 18.30-19:30.
First I want to extract the 19:30 into one cell, 22:00 to the next, after that also 22:00 separately and at the end 23:30.
This is how I want it to look...
C2-14:00 Work starts (actual data)
C3-23:30 Work ends (actual data)
C4-18:30 Break starts (actual data, no payment from this time)
C5-19:30 Break ends (actual data, no payment to this time)
C6-19:30 Start time of lower payment (=IF... ) to get this result
C7- 22:00 End time of lower payment (=IF... ) to get this result
C8-22:00 Start time of higher payment (=IF... ) to get this result
C9-23:30 End time of higher payment (=IF... ) to get this result
Also to make sure the formulas work if the working hours are between 16:00-25:02 break at 21:20-22:40, 21:30-29:50 break at 25:00, 24:01-31:00 or 23:40-28:00 breaks embedded at any time...
I have tried this, but could not make it work.
Will this take to much time to write formulas that makes this work?
Best regards
Tom S
I need a formula that figures out how many entries in a range and then divides by that about of entries. Example if A1= 0, A2, = 3, A4=5 then divide by 2.
Thank you for your help. I actually have 7 entries - 1 for each day of the week, and want to divide only by the days that actually have a number greater than 0. So what I need is the sum of the 7 days then divide by only the number that had an actual value greater than 0.
Thank you!
Hi Pauline, I hope you already received a response, but if not here's my answer. You would use the Countif function. It would look like this:
=COUNTIF(B1:B3,">0") the function looks at the cells B1 to B3 and returns a number between 0 and 3 depending on how many of the cells have a value higher than 0.
Que. If A1>B1 & C1=D1 then bonus will be (A1*0.002), but If A1>B1 & C1=D1 and F1>G1 & H1=I1 then bonus will be ((A1+F1)*0.002*2). Please suggest correct formula to be used?
Hello, a formula that would work for you is the following:
=IF(AND(A1>B1, C1=D1, F1>G1, H1=I1), ((A1+F1)*0.002*2), IF(AND(A1>B1, C1=D1), A1*0.002, 0))
I used the information from https://www.ablebits.com/office-addins-blog/excel-nested-if-statement/ to help come up with this answer.
If I got many data to lookup, how to enter the data by using if formula?
Ex: =if(A1>=1000,900,if(A1>=900,850........and so on)
Please assist me, thanks.
i need a formula for a completion time for each department for example IF any department goes 20 min ahead or behind produce which is F2 highlight Red if all departments are going to finish within 20 min of each other highlight Green my range is F2-F8
Hi,
I have a set of number in a columns from 12 to 30 & I want result for them in 2 word
that can be more than 15 or less than 15. Is there a way I can get a formula result for these number. thank you
Abdul:
If I understand your question an IF THEN OTHERWISE statement will work for you. Where the first number is in A2 enter this in B2:
=IF(A2<15,"Less Than 15","More Than 15")
It says, if the value in A2 is less than 15 then display "Less Than 15" otherwise display "More Than 15".
I have a column that has taken the difference between two columns.
I want to extract any variances greater than 10K (so more than 10K or less than negative 10K) AND greater than 10% or less than negative 10%
I just want it go return that number if both conditions are met - or return a blank
What is the easy way to look at any difference more than a certain amount - whether that be negative or positive?
Hi there,
trying to write an excel formula for the following:-
if a1 is greater than or less than b2 by more than 5% then colour cell? Any help would be greatly appreciated.
I applied a formula like
=A1
then it shows whatever is there in A1 . But if A1 is blank then its showing 0 instead of blank.
I want it blank if it is blank in A1
Hello, Manu.
Please try to apply the formula below instead:
=IF(ISBLANK(A1), "", A1)
Hope this is what you need.
IF A1=25001 to 50000 & B1=yeas than C1=D1*10%, IF not match C1= 0
IF A1=50001 to 75000 & B1=yeas than C1=D1*15%, IF not match C1= 0
IF(E8>60<90,F8,0)
THIS FORMULA NOT GIVEING MY ANSWER
Hello, Amit,
Please try the following formula:
=IF((AND(E8>60, E8<90)), F8, 0)
Please also have a look at the following article on our blog:
Excel IF statement with multiple AND/OR conditions
Hope you'll find this information helpful.
great
=IF((AND(E8>60, E84,R5<=4)),AE5,VLOOKUP(AE5,VALIDATION!$M$3:$P$24,4))
Hi
I need kind help in this situation, i want excel formula:-
"Percentage apply on
Minimum " Maximum Tax amount Difference
Amount Amount Fixed Minimum and Maximum"
4,800,001 To 99,900,000,000 300,000 15.0%
2,400,001 To 4,800,000 60,000 10.0%
1,200,001 To 2,400,000 - 5.0%
800,001 To 1,200,000 2,000
400,001 To 800,000 1,000
Zero To 400,000 -
Note { Provided that where the taxable income exceeds Rs. 800,000/- the Minimum tax payable shall be Rs. 2,000/- }
I have an IF statement that looks at one cell and depending on what "class code" I have in that cell it refers to another cell then adds that number into the calculation. This is working fine but I want it to then put 0 instead of a negative number. I tried adding If(<0,0,) but it is not working and I have tried several variations of less than zero. Any suggestions?
Malissa:
Can you post the formula that was working?
I did some research and found that this explains it very well using an array.
https://exceljet.net/formula/categorize-text-with-keywords
Thank you for your response!
The formula you offered of course works on that cell, thank you! But I am wondering if I have a whole column of say 3000 entries in column A with say 50 different words that I am looking to label, the IF statement will get very long.
Excel suggests to use IFS statements instead of IF statements, but as you say, you can't use an IFS statement when searching for a substring.
Trying to find a practical solution...
21080931
21079882
21079117
21080035
21234
21225
22225
21228
I WANT TO ADD DOT (.)AFTER 2 NUMBERWHICH LEN IS GREATER THAN 6 NO
AND WHICH IS SMALLER THAN 5NO ADD ONLY 1 DOT (.)AFTER THE VERY FIRST 2 NO. PLEASE HELP ME
EX=
21.07.98
21.07.9117
21.08.0035
21.234
21.225
22.225
21.228
21080931 =IF((LEN(A1)<6),LEFT(A1,2)&"."&MID(A1,3,20),LEFT(A1,2)&"."&MID(A1,3,2)&"."&MID(A1,5,20))