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
Ah brilliant much appreciated seems i fell at the last hurdle.
cheers
James
i am trying to set up an IF function where it searches a cell for a word that has the letters UCI if true gives the result 2.2 if false gives 2.8. i have done this but doesnt seem to work :(
=IF(ISNUMBER(SEARCH(E3="UCI")),"2.2","2.8")
please help
Hello James,
=IF(ISNUMBER(SEARCH("UCI",E3)),"2.2","2.8")
Hi, i want an output with two conditions. That is if A1=I OR II OR III and if B1<=5 then the output in C1 should reflect as 'yes' otherwise it should be 'no'.
I typed as =if(and(A1="I", A1="II", A1="III",B1<=5),"yes","no").This is not working.
Kindly let me know the error or is this formula totally wrong? Thanks in advance.
Here you go
=IF(OR(A1="I",A1="II",A1="III"),IF(AND(B1<=5),"YES","NO"))
Thank you Aengus. The formula worked wonderfully well.Delighted.
Cheers.
Aengus, thank you for your help.
Shiva, you can also use the formula below (the result will be same):
=IF(AND(OR(A1="I", A1="II", A1="III"),B1<>"", B1<=5),"yes","no")
Thank you Alexander. The result was correct. Elated to learn new techniques.
Cheers.
Class Name Test 1 Rank
year 9A Student 1 20
year 9A Student 2 30
year 9A Student 3 20
year 9A Student 4 21
year 9A Student 5 22
year 9A Student 6 52
year 9A Student 7 54
year 9A Student 8 14
year 9A Student 9 25
year 9A Student 10 26
year 9A Student 11 21
year 9A Student 12 24
year 9A Student 13 22
year9B student 1 23
year9B student 2 54
year9B student 3 52
year9B student 4 52
year9B student 5 21
year9B student 6 22
year9B student 7 12
year9B student 8 22
I am sorry, it is not quite clear what result you want to get. For us to be able to assist you better, please post a small sample workbook with your data and the expected result on our forums. Our support team will look into your task and try to help.
Hi. I want to extract a number from a cell(B2) at an exact time. I have two times on my sheet, one is the start time of an event and the other is the actual time right now. When there is a differance of 2 minutes between both times, then i want to extract the number in cell(B2) and i want the value to remain there.
My sheet is connected to a website and the sheet is updated every second, so the value in cell B2 is constantly changing.
Is this possible???
Hello Aengus,
I am sorry, but there is no way to fulfill your task using formulas. Since you want the value to remain in the cell, a VBA macro is needed for this task. You can look for it on http://www.mrexcel.com or http://www.excelforum.com.
Hi,
I have a two workbooks 1)Masterlist and 2)Saleslist
Master list have columns description, unit and unit price. Fixed number of rows.
Sales list have columns description, unit, unit price, saleqty and amount. Rows increases on ever sales.
It will be wonderful some body can help with the code to fill the cell unit price in the workbook Saleslist when I enter matching description of the item as in Masterlist.
Thanks for posting If Function in a very easily manner.
can you tell me the function to extract text from cell
Eg: Paid to Sub cont Rafiq/against balance payment.
Paid Sub cont Shafeeque/against part payment.
In this I want to extract only from the text sub cont to /.
I am sorry, your task is not very clear. For us to be able to assist you better, please post a small sample workbook with your data and the expected result on our forums. Our support team will look into your task and try to help.
Hi,
I have a master sheet and individual sheets (with the details) for a survey.
I want to be able to populate the individual sheets with simply putting a Y or N on the master sheet. Is this possible?
ie A clients details and their consent to receiving marketing, research & volunteering are on the master sheet. Can I then automatically populate the individual sheets from the master?
Thanks
Debra
Hello Debra,
You can enter the formula like the one below to the cells on your individual sheets:
=if(MasterSheet!$A$2="y", MasterSheet!$C$2, "")
That means that if cell A2 is in the master sheet contains "Y", copy data from MasterSheet!$C$2.
Hello,
I'm having trouble making a formula that will return a date or a value. i.e. I'm making a time off request form, and sometimes the cell will have a single date (2/11/15) and sometimes it will have multiple dates (2/11/15 to 2/12/15). I can get the single date to fill by formatting my formula cell to "date," but I cannot get the range to show up. I want the exact input from the cell to show up regardless of being a date or "text" as the multiple dates would be considered.
My formula that I'm using is =IF(A7,A7,"").
I've tried using a variety of arguments in front of the second A7, but I still haven't gotten the results I want. I don't want to format the original cell to text if I can avoid it.
I found my answer. Thank you.
=IF(ISBLANK(A7),"",A7)
This does exactly what I need.
Hi I am struggling working this out any help would be fantastic.
Basically I have 3 businesses I need to keep track of the mileage, I have a spreadsheet set up for that. However I want to keep individual records on the sheet for each business.
so the business is one of three "photography" "building" "design" in cell D6 I want to take the mileage from k6 and add it to a separate cell depending on the business displaying the output at g2, g3 or g4 and I want this to run through the sheet. so it checks column d for which business then depending on the business it takes the result from column k and place the sum totals in either g2,g3, or g4
I am at a loss to sort this. not even sure its possible. but help is appreciated please.
Hello Patrick,
A formula can return the result only in a cell where it is entered. Most likely, you simply need to place three IF formulas into cells G2, G3 and G4 that will show the result or keep blank according to the specified conditions. If you want to get a sum, then you may also need to use the SUMIF function.
If you can send us a small sample workbook with your data to support@ablebits.com, we’ll try to assist you better.
Hi there,
I'm using a SUMIF formula to return a required number.
Now, i need a formula to return a required text.
if i enter name in c1 and it matches with b1 i need an answer.
for example:
a1 b1 c1
rey 502 rey
may 502 may
hope you could help me.
thanks,
Hello Clarice,
I am sorry, your task is not quite clear. For us to be able to assist you better, please post a small sample workbook with your data and the expected result our forums. Our support team will look into your task and try to help.
Hi, I am trying to work out a formula that says:
Work out the average of F5:F11 IF B5:B11 contains data
Is there any chance you could help?
Many Thanks
Rachel
Hi Rachel,
=IF(COUNTA(B5:B11)=7,AVERAGE(F5:F11),"")
Hi there, i am trying to figure out a formula for not leaving cells blank. For instance, if B2 has the word "debit card" the C2 cannot be left blank. If B2 contains the word "cash" then C2 can be left blank.
Does such a formula exist?
Many thanks
Lara
Hello Lara,
You can create a conditional formatting rule to color a cell, e.g. in red, showing that it needs to be filled in.
The formula will be as follows:
=AND($B2="debit card",C2="")
You can find more information about conditional formatting in this article:
https://www.ablebits.com/office-addins-blog/excel-conditional-formatting-formulas/
Hi,
I have successfully used on A3 cell: =IF(ISBLANK(A2),"",IF(A21,A2<=2),"IMPROVEMENT NEEDED")))
But Can't use on A4 cell: (A1 cell is a number i.e. 10000)
=IF(A3="Unsatisfactory",A1*100%,IF(A3="Improvement Needed",A1*105%))
it shows:"FALSE". how to make A4: if A3 is vacant as per above formula, A4 will be A1*1
Hello Zakaria,
I am sorry, your task is not quite clear. Please post a sample workbook with some variants of your data (1 sheet – 1 variant) on our forums and include the result you want to see in A4. Our support team will look into your task and try to help.
I tried using the If formula for my data but I just could not get it to work.
Example:
I have set a target for John and if he meet the target the cell will display the Rebate (10%) percentage, if not it will display 0%.
Rebate: 10&
QTD: 17,275
Target: 12,500
How do i go about setting the formula for this?
Thanks so much!
>cell will display the Rebate
=IF(E2>=12500, "10%", "0%")
Where E2 is the cell with a target for John.
Hi ,
I am using nested IF for age
=IF(M7<39,"Cohort C",IF(AND(39<=M7,M7<48),"Cohort B","Cohort A"))
however the age i am using DATEIF formula as below :
=DATEDIF(K7,TODAY(),"Y") & " Years, " & DATEDIF(K7,TODAY(),"YM") & " Months, " & DATEDIF(K7,TODAY(),"MD") & " Days"
which result as i.e 35 years , 2 months, 1 days
How can i specify the date as above format in the nested IF statement ?
Hi Luxmi,
It's difficult to give any advice without seeing the real data. It will be helpful if you can give more details about the value in cell M7 and other cells the formula refers to.
sorry it is actually M7 = Age . However , for this scenario the age is purely calculated by the year only.
How if i use below formula to calculate the (M7 cell) age & use this M7 cell to do nested if statement :
=DATEDIF(K7,TODAY(),"Y") & " Years, " & DATEDIF(K7,TODAY(),"YM") & " Months, " & DATEDIF(K7,TODAY(),"MD") & " Days"
which result as i.e 35 years , 2 months, 1 days
how can i specify the age using this format ?
=IF(M7<39 years, 00 Month 00 Day,"Cohort C",IF(AND(39 Years 00 Month 00 Day<=M7,M7<48 years 00 Months 00 Days),"Cohort B","Cohort A"))
Hello Luxmi,
Please specify the age in the same way as you calculate data in cell M7, i.e. using this formula:
=IF(DATEDIF(K7,TODAY(),"Y") < 39,"Cohort C", IF(DATEDIF(K7,TODAY(),"Y") < 48,"Cohort B","Cohort A"))
Using an IF statement, can more than one action be included if the condition is met? For example, if A1=x then (B1 = "true" and C1=y) else (B1 = "false" and C1=z)
Hi Nancy,
There is no way to do this in a single formula because a formula can return the result only in a cell where it is entered.
You can simply use two formulas:
For B1: =IF(A1="x", true, false)
For C1: =IF(A1="x", "y", "z")
If you need to change a lot of cells, then a VBA macro will be a better solution.
Hi just wanna ask help on this.I'm confused on how to exactly put many functions in the formula. The legend are the following:
"B" - 74 below
"D" - 75-79
"AP" - 80-84
"P" - 85-89
"A" - 90 up
For example:I actually tried to enter =IF(E16<75,"B","D")=IF(E16=80<85,"D","AP")=IF(E16=.....ETC...
pls help me...
Hi Michelle,
You need to use a nested IF function like this:
=IF(E16>=90, "A", IF(E16>=85, "P", IF(E16>=80, "AP", IF(E16>=75, "D", "B"))))
I want to figure out a way in column A1 to column A1000 is equal to the word "Done" then enter the current date in the coresponding column B1 to column B1000
1) Enter Done in A1 and B1 gets automatically updated with date and time
2) Enter In Progress in A2 and B2 get nothing updated
3) Enter Done in A3 and B3 gets automatically updated with data and time
4) and so on....
Status Timestamp for Completion
A1 Done B1 02/06/2015 5:17:33 PM
A2 In Progress B2
A3 In Progress B3
A4 Done B4 02/06/2015 5:17:34 PM
trying:
=IF(A1:A10="Done",=(NOW())
or
=IF(A1:A10="Done,B1:B10=(NOW()))
or
?
Hello,
If you want to enter the current date so that it will never change, then you need a VBA macro.
You can ask for it in specialized sections on http://www.mrexcel.com or http://www.excelforum.com.
Hello, Please help me I need following formula.
I need formula of column C and D
C = matching part part will be colored.
D = Matched or not, in sequence of column B.
problem attached for ready reference with following link.
https://www.dropbox.com/s/xbkh51pp9n9vt28/Formula.xlsx?dl=0
Hi Imran,
The following formula seems to return the results you want:
=IF(OR(NOT(ISERR(SEARCH($A$2,B2))), NOT(ISERR(SEARCH($A$3,B2))), NOT(ISERR(SEARCH($A$4,B2)))), "matched", "not matched")
Or even better - the array formula (remember to press CTRL + SHIFT + ENTER to enter it:
=IF(SUM(--(NOT(ISERR(SEARCH($A$2:$A$4,B2))))), "matched", "not matched")
Hi,
Please i need a help, i want a formular for two dates intervals. A suming i have my start date and want to know the ending dates.
For instance my start date of paying back loan is 08/15/2014 and i'm paying for 6 months, what will be the formular for the ending date.
Thanks
Hello Francis,
Please use this formula:
=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))
Where A1 is the cell with your start date, 6 is the number of months.