In this article, you will learn how to build an Excel IF statement for different types of values as well as how to create multiple IF statements.
IF is one of the most popular and useful functions in Excel. Generally, you use an IF statement to test a condition and to return one value if the condition is met, and another value if the condition is not met.
In this tutorial, we are going to learn the syntax and common usages of the Excel IF function, and then take a closer look at formula examples that will hopefully prove helpful to both beginners and experienced users.
IF function in Excel
IF is one of logical functions that evaluates a certain condition and returns one value if the condition is TRUE, and another value if the condition is FALSE.
The syntax of the IF function is as follows:
As you see, IF takes a total of 3 arguments, but only the first one is obligatory, the other two are optional.
Logical_test (required) - the condition to test. Can be evaluated as either TRUE or FALSE.
Value_if_true (optional) - the value to return when the logical test evaluates to TRUE, i.e. the condition is met. If omitted, the value_if_false argument must be defined.
Value_if_false (optional) - the value to return when the logical test evaluates to FALSE, i.e. the condition is not met. If omitted, the value_if_true argument must be set.
Basic IF formula in Excel
To create a simple If then statement in Excel, this is what you need to do:
- For logical_test, write an expression that returns either TRUE or FALSE. For this, you'd normally use one of the logical operators.
- For value_if_true, specify what to return when the logical test evaluates to TRUE.
- For value_if_false, specify what to return when the logical test evaluates to FALSE. Though this argument is optional, we recommend always configuring it to avoid unexpected results. For the detailed explanation, please see Excel IF: things to know.
As an example, let's write a very simple IF formula that checks a value in cell A2 and returns "Good" if the value is greater than 80, "Bad" otherwise:
=IF(B2>80, "Good", "Bad")
This formula goes to C2, and then is copied down through C7:
In case you wish to return a value only when the condition is met (or not met), otherwise - nothing, then use an empty string ("") for the "undefined" argument. For example:
=IF(B2>80, "Good", "")
This formula will return "Good" if the value in A2 is greater than 80, a blank cell otherwise:
Excel If then formula: things to know
Though the last two parameters of the IF function are optional, your formula may produce unexpected results if you don't know the underlying logic.
If value_if_true is omitted
If the 2nd argument of your Excel IF formula is omitted (i.e. there are two consecutive commas after the logical test), you'll get zero (0) when the condition is met, which makes no sense in most cases. Here is an example of such a formula:
=IF(B2>80, , "Bad")
To return a blank cell instead, supply an empty string ("") for the second parameter, like this:
=IF(B2>80, "", "Bad")
The screenshot below demonstrates the difference:
If value_if_false is omitted
Omitting the 3rd parameter of IF will produce the following results when the logical test evaluates to FALSE.
If there is just a closing bracket after value_if_true, the IF function will return the logical value FALSE. Quite unexpected, isn't it? Here is an example of such a formula:
=IF(B2>80, "Good")
Typing a comma after the value_if_true argument will force Excel to return 0, which doesn't make much sense either:
=IF(B2>80, "Good",)
The most reasonable approach is using a zero-length string ("") to get a blank cell when the condition is not met:
=IF(B2>80, "Good", "")
Tip. To return a logical value when the specified condition is met or not met, supply TRUE for value_if_true and FALSE for value_if_false. For the results to be Boolean values that other Excel functions can recognize, don't enclose TRUE and FALSE in double quotes as this will turn them into normal text values.
Using IF function in Excel - formula examples
Now that you are familiar with the IF function's syntax, let's look at some formula examples and learn how to use If then statements in real-life scenarios.
Excel IF function with numbers
To build an IF statement for numbers, use logical operators such as:
- Equal to (=)
- Not equal to (<>)
- Greater than (>)
- Greater than or equal to (>=)
- Less than (<)
- Less than or equal to (<=)
Above, you have already seen an example of such a formula that checks if a number is greater than a given number.
And here's a formula that checks if a cell contains a negative number:
=IF(B2<0, "Invalid", "")
For negative numbers (which are less than 0), the formula returns "Invalid"; for zeros and positive numbers - a blank cell.
Excel IF function with text
Commonly, you write an IF statement for text values using either "equal to" or "not equal to" operator.
For example, the following formula checks the Delivery Status in B2 to determine whether an action is required or not:
=IF(B2="delivered", "No", "Yes")
Translated into plain English, the formula says: return "No" if B2 is equal to "delivered", "Yes" otherwise.
Another way to achieve the same result is to use the "not equal to" operator and swap the value_if_true and value_if_false values:
=IF(C2<>"delivered", "Yes", "No")
Notes:
- When using text values for IF's parameters, remember to always enclose them in double quotes.
- Like most other Excel functions, IF is case-insensitive by default. In the above example, it does not differentiate between "delivered", "Delivered", and "DELIVERED".
Case-sensitive IF statement for text values
To treat uppercase and lowercase letters as different characters, use IF in combination with the case-sensitive EXACT function.
For example, to return "No" only when B2 contains "DELIVERED" (the uppercase), you'd use this formula:
=IF(EXACT(B2,"DELIVERED"), "No", "Yes")
If cell contains partial text
In situation when you want to base the condition on partial match rather than exact match, an immediate solution that comes to mind is using wildcards in the logical test. However, this simple and obvious approach won't work. Many functions accept wildcards, but regrettably IF is not one of them.
A working solution is to use IF in combination with ISNUMBER and SEARCH (case-insensitive) or FIND (case-sensitive).
For example, in case "No" action is required both for "Delivered" and "Out for delivery" items, the following formula will work a treat:
=IF(ISNUMBER(SEARCH("deliv", B2)), "No", "Yes")
For more information, please see:
Excel IF statement with dates
At first sight, it may seem that IF formulas for dates are akin to IF statements for numeric and text values. Regrettably, it is not so. Unlike many other functions, IF does recognize dates in logical tests and interprets them as mere text strings. In other words, you cannot supply a date in the form of "1/1/2020" or ">1/1/2020". To make the IF function recognize a date, you need to wrap it in the DATEVALUE function.
For example, here's how you can check if a given date is greater than another date:
=IF(B2>DATEVALUE("7/18/2022"), "Coming soon", "Completed")
This formula evaluates the dates in column B and returns "Coming soon" if a game is scheduled for 18-Jul-2022 or later, "Completed" for a prior date.
Of course, there is nothing that would prevent you from entering the target date in a predefined cell (say E2) and referring to that cell. Just remember to lock the cell address with the $ sign to make it an absolute reference. For instance:
=IF(B2>$E$2, "Coming soon", "Completed")
To compare a date with the current date, use the TODAY() function. For example:
=IF(B2>TODAY(), "Coming soon", "Completed")
Excel IF statement for blanks and non-blanks
If you are looking to somehow mark your data based on a certain cell(s) being empty or not empty, you can either:
- Use the IF function together with ISBLANK, or
- Use the logical expressions ="" (equal to blank) or <>"" (not equal to blank).
The table below explains the difference between these two approaches with formula examples.
Logical test | Description | Formula Example | |
Blank cells | ="" |
Evaluates to TRUE if a cell is visually empty, even if it contains a zero-length string. Otherwise, evaluates to FALSE. |
=IF(A1="", 0, 1)
Returns 0 if A1 is visually blank. Otherwise returns 1. If A1 contains an empty string (""), the formula returns 0. |
ISBLANK() |
Evaluates to TRUE is a cell contains absolutely nothing - no formula, no spaces, no empty strings. Otherwise, evaluates to FALSE. |
=IF( Returns 0 if A1 is absolutely empty, 1 otherwise. If A1 contains an empty string (""), the formula returns 1. |
|
Non-blank cells | <>"" | Evaluates to TRUE if a cell contains some data. Otherwise, evaluates to FALSE.
Cells with zero-length strings are considered blank. |
=IF( Returns 1 if A1 is non-blank; 0 otherwise. If A1 contains an empty string, the formula returns 0. |
ISBLANK() |
Evaluates to TRUE if a cell is not empty. Otherwise, evaluates to FALSE.
Cells with zero-length strings are considered non-blank. |
=IF( Works the same as the above formula, but returns 1 if A1 contains an empty string. |
And now, let's see blank and non-blank IF statements in action. Suppose you have a date in column B only if a game has already been played. To label the completed games, use one of these formulas:
=IF(B2="", "", "Completed")
=IF(ISBLANK(B2), "", "Completed")
=IF($B2<>"", "Completed", "")
=IF(ISBLANK($B2)=FALSE, "Completed", "")
In case the tested cells have no zero-length strings, all the formulas will return exactly the same results:
Check if two cells are the same
To create a formula that checks if two cells match, compare the cells by using the equals sign (=) in the logical test of IF. For example:
=IF(B2=C2, "Same score", "")
To check if the two cells contain same text including the letter case, make your IF formula case-sensitive with the help of the EXACT function.
For instance, to compare the passwords in A2 and B2, and returns "Match" if the two strings are exactly the same, "Do not match" otherwise, the formula is:
=IF(EXACT(A2, B2), "Match", "Don't match")
IF then formula to run another formula
In all of the previous examples, an Excel IF statement returned values. But it can also perform a certain calculation or execute another formula when a specific condition is met or not met. For this, embed another function or arithmetic expression in the value_if_true and/or value_if_false arguments.
For example, if B2 is greater than 80, we'll have it multiplied by 7%, otherwise by 3%:
=IF(B2>80, B2*7%, B2*3%)
Multiple IF statements in Excel
In essence, there are two ways to write multiple IF statements in Excel:
- Nesting several IF functions one into another
- Using the AND or OR function in the logical test
Nested IF statement
Nested IF functions let you place multiple IF statements in the same cell, i.e. test multiple conditions within one formula and return different values depending on the results of those tests.
Assume your goal is to assign different bonuses based on the score:
- Over 90 - 10%
- 90 to 81 - 7%
- 80 to 70 - 5%
- Less than 70 - 3%
To accomplish the task, you write 3 separate IF functions and nest them one into another like this:
=IF(B2>90, 10%, IF(B2>=81, 7%, IF(B2>=70, 5%, 3%)))
For more formula examples, please see:
Excel IF statement with multiple conditions
To evaluate several conditions with the AND or OR logic, embed the corresponding function in the logical test:
For example, to return "Pass" if both scores in B2 and C2 are higher than 80, the formula is:
=IF(AND(B2>80, C2>80), "Pass", "Fail")
To get "Pass" if either score is higher than 80, the formula is:
=IF(OR(B2>80, C2>80), "Pass", "Fail")
For full details, please visit:
If error in Excel
Starting from Excel 2007, we have a special function, named IFERROR, to check formulas for errors. In Excel 2013 and higher, there is also the IFNA function to handle #N/A errors.
And still, there may be some circumstances when using the IF function together with ISERROR or ISNA is a better solution. Basically, IF ISERROR is the formula to use when you want to return something if error and something else if no error. The IFERROR function is unable to do that as it always returns the result of the main formula if it isn't an error.
For example, to compare each score in column B against the top 3 scores in E2:E4, and return "Yes" if a match is found, "No" otherwise, you enter this formula in C2, and then copy it down through C7:
=IF(ISERROR(MATCH(B2, $E$2:$E$4, 0)), "No", "Yes" )
For more information, please see IF ISERROR formula in Excel.
Hopefully, our examples have helped you get a grasp of the Excel IF basics. I thank you for reading and hope to see you on our blog next week!
Practice workbook
Excel IF statement - formula examples (.xlsx file)
4804 comments
hi i have query please solve it
A B
1 DATA REQUIRED ANSWER
2 1 2,3,4
3 5 6,7
4 8 9,10,11
5 12 13,14,15
6 16 17
7 18 19
8 20
I want to make formula where for e.g. IF A1 = 660, and I want if A1/60 i.e. 11 is greater than 3 then it should Multiple A1 with 100
Here I took UNIT type of 600 as "Seconds" if it is more than 3 minutes after dividing by 60 (please Remember) then A1 should multiplied by 100 else the result should be ZERO.
hi,
could you please some help me this formula?
Average of 24 units is equal to or greater than Q, not more than 2 units are less than Q − 15%, and no unit is less than Q − 25%
Q value= 80%
hi, can someone help me with this formula? I am making an if/or furmula showing that if the service years>3 or is a college graduate the column will be a yes. (only one condition needs to be met) I have:
=IF(OR([@[College Graduate]]="Yes")([@[Service Years]]>3,"Yes","No")
thanks.
Hi Jordan,
The correct syntax of the IF/OR formula is this:
=IF(OR(condition 1, condition 2), value_if_true, value_if_false)
In your case:
=IF(OR([@[College Graduate]]="Yes", [@[Service Years]]>3),"Yes","No")
How decimal numbers can be compared?
=IF(A1>2.34,"A","B")
If A1=2.21, it shows B
Hello,
I see all you are very supportive, Pls help to solve this.
i have a data,
Column A Column B Column C Column D Column E
FFA Exp Gain 1 Gain 2 Evoporate
1 125 98% 1% 1%
2 200 96% 2.5% 1.5%
3 235 95% 3% 2%
4 345 93% 5% 2%
5 430 92% 5.5% 2%
6 510 90% 8% 1%
7 740 87% 10% 2%
so on
i want when i enter 1,2,3..... in a box my below mention results from above data shows to me, is it possible???
Exp 125
Gain 1 98%
Gain 2 1%
Evoporate 1%
Regards,
Hi,
I want to use if function for a data entry purpose. I want it as if a particular column contains a particular name the very next cell should mention the city of the particular person's name.
Eg:
if the column contains the name Kumar his city Bombay should appear just next to his name.
Please help.
Thanks in advance
I need to verify dates. I need column a and b to be the same if they are not I need to distinguish. How would I create this formula?
Please help!
hi
i have this table
m1 width m2
330
I want to calculate from m1 to m2 and viceversa. Is it possible to do that in the same cells?
i need to validate a cell. The cell will contain values from 1-10. 1-6 the values will be considered not at all likely 7 and 8 will be neutral and 9 and 10 will be considered as extremely likely. Can you please help me with an if loop formula ?
"Monthly Grand Total(Minus Applicable Discount)-The sum of all campaign cost for each month, including postage, envelops and messaging cost. If a high volume discount is applicable, it should be calculated here as well. Keep in mind two conditions must be met before the discount can be calculated: The discount threshold must be greater than zero and the yearly total mail volume value must be greater than the threshold"
Can you tell me the formula for this, please?
Hi
please share if function the below mentioned query
Salary and Wage earners-Such persons whose
monthly
salaries or wages :-
(a) do not exceed rupees 7,500; NIL
(b) (i) In case of male, exceed Rs. 7,500 but do not
exceed rupees 10,000;175 per month
(ii) In case of female, do not exceed Rs 10,000; Nil
(c) exceeds rupees 10,000 2,500 per annum
I am trying to evaluate a date in the previous cell. If the date is before the 15th of the month I wan the evaluation cell to return the first of the month. If it is equal to or greater than the 16th of the month, I want the evaluation cell to return the 15 of that month. Examples:
Cell A Date Cell B Returns
10/8/16 10/1/16
10/16/16 10/15/16
11/3/16 11/1/16
11/22/16 11/15/16
Any thoughts or suggestions are really appreciated!!!
Charles
Hi Charles,
Here You Go,(Paste in B1)
IF(DATE(YEAR(A1),MONTH(A1),DAY(A1))=DATE(YEAR(A1),MONTH(A1),"16"),DATE(YEAR(A1),MONTH(A1),"15")))
Hello Charles,
Try the following formula, where A2 is the date in the "previous cell":
=IF(DAY(A2)<16, DATE(YEAR(A2), MONTH(A2), 1), DATE(YEAR(A2), MONTH(A2), 15))
This might sound simple but I'm not as bright as I'd like to think. if j48 = 9 then 10, if j48 = 10 then 9. please help
Hi George,
You can use a couple of nested if's like this:
=IF(J48=9, 10, IF(J48=10, 9, ""))
In Col I Write a formula to give rank to student In Col I Write a formula to give rank to student based on below table (Without using IF Condition)
Marks Grades
=33 but less than 60 Pass
>= 60 but less than 70 3rd Div
>=70 but less than 80 2nd Div
>=80 but less than 90 1st Div
>=90 Distinction
based on below table (Without using IF Condition)
Marks Grades
=33 but less than 60 Pass
>= 60 but less than 70 3rd Div
>=70 but less than 80 2nd Div
>=80 but less than 90 1st Div
>=90 Distinction
Hi, I wish to use the sumif the range cell data as follow, it is that possible?
If(A1=B1,C1,0),
(A2=B2,C2,0),
(A3=B3,C3,0),.....
AND I would like the sum of range cell in column C
All in one formula, is that possible?
I want to say: if a certain cell equals a value and another cell equals a value then use this value
Ps. above values are txt not numbers.
what I got so far is IF((B19="General Trading", B20="One Payment"),"27,185","")
but it isn't working.
Please help me
Hello Mahmoud,
You have to use an AND statement, like this:
=IF(AND(B19="General Trading", B20="One Payment"), "27,185", "")
hi,I want to use the if function like
if the A1 is starting with s, then I1 is equal to B1-C1+D1-E1+F1-G1
if the A1 is starting with m, then J1 is equal to B1-C1+D1-E1+F1-G1
if the A1 is starting with z, then K1 is equal to B1-C1+D1-E1+F1-G1
pls help me with this formula, thanks
Hi I am a basic excel user, I am using excel 2016, my question is:
I am using the formula =IF(X4030="",TODAY()-W4030) to get the result but if the cell W4030 is blank the result is some strange value, I want excel to display nothing if the cell W4030 is blank, how can i fix this. Please help. Many Thanks
Hi Syed,
Try this one:
=IF(X4030<>"",TODAY()-W4030, "")
Hi, Svetlana,
I would appreciate it if you could help me with this
I am trying to display contents of a table T1 if value of D2 is BAT
in a Cell E2 =IF((D2="BAT"),T1,"")
but it gives #value! error. How can I display the table T1?
T1 table is made up of G7:I11 cells.
Looking forward to hearing from you
Thanks in advanced.
Warm Regards,
Vilas.
Hi Vilas,
The IF function cannot display the contents of an entire table in a single cell. You can write a formula to extract the data from the upper-left cell of your table, and then copy the formula to an empty range containing the same number of rows and columns as your table does to pull the values from other cells. For example: =IF(D2="BAT", T1, "") Where T1 is the left-most cell of the table.