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,
could you please help.
I am trying to find a way to do this using an IF statement that would do the following: IF(A=B,C,do nothing), in other words if the condition A=B, is true, put the value C in the cell, else if the condition fails, leave the old value in the cell. There is a way to do this in Excel but I haven't been able to find. Instead I have to manually open each report sheet and do a copy and paste from where the report I receive.
Hello Bewar!
If a value is already written in the cell, then it is no longer possible to write the formula into it. The Excel function can’t change values in other cells, it returns a value only in a cell where it is written. You'd better use VBA to solve your task.
Hi,
what a good and clear explanations on the website, credits to the maker. however i am not an excel expert and still cant figure out how to move on with what i want
i have 2 check boxes 1 in H4 (with comment 12hrs) and 1 in I4 (with comment 24hrs)
now i want in the mergedbox below H/I 5 to appear a text when checking one of the boxes
if box H4 is checked i want to see 1 x operator
if box I4 is checked i want to see 2 x operator
every time i try to make an if formula excel gives an error that i start a formula and i need to put an ' before the text. can you please help me :)
thanks in advance,
regards kasper,
Hello Kasper!
If I understand your task correctly, the following formula should work for you:
=IF(H5=TRUE,1*H9,IF(I5=TRUE,H9*2,H9))
I don’t understand what “operator” is, so I replaced it with H9.
Hope this is what you need.
unfortunately its not working, 1x operator is just the text I want to show in cell H5
so like they only need one person for 12 hours work or 2 persons for 24 hours of work
I’m sorry but your task is not entirely clear to me.You did not explain your problem in detail.
For me to be able to help you better, please describe your task in more detail. Please let me know in more detail what you were trying to find, what formula you used and what problem or error occurred. Give an example of the source data and the expected result. It’ll help me understand it better and find a solution for you. Thank you.
Hi, sorry my story is not clear.
in short i have 2 check boxes and i want to show a text in an other cell when checking the check box 1 and if i checking check box 2 i want to show an other text in a different cell
regards kasper
Hi,
Good morning to all of you.
Please suggest me a formula.
=if(A1>=10,"Same Value of A1", if(A1<10, "Please Put One Zero Before Value of A1"))
Hello Praveen!
Unfortunately, you did not write what result you wanted to receive. Perhaps your formula should be written as follows:
=IF(G2> = 0.5 * C2, "APPROVE", "DISAPPROVE")
Hope this is what you need.
Hi, I've been reading your article and i must say it's outstanding. However though it was useful in some areas I still found myself stuck.
I've been trying to insert an if function
=If(G2>=0.5,C2,"APPROVE", "DISAPPROVE")
But its not working
Any Help is appreciated
Hello Cresia!
Unfortunately, you did not write what result you wanted to receive. Perhaps your formula should be written as follows:
=IF(G2> = 0.5 * C2, ”APPROVE”, “DISAPPROVE”)
I hope my advice will help you solve your task.
Thanks for the article.
I need help with writing out a formula that says, if column B = yes and column C = yes, then D should say True.
So far I tried:
=IF(B2="YES",TRUE(IF(C2="YES",TRUE),False))
Looking forward to hearing from you.
Rgs
The formula below will do the trick for you
=IF(AND(B1="Yes",C1="Yes"),TRUE,"")
Write in cell D1.
I recommend that you study this instruction about using AND and OR with the IF function.
Hi
I would like to return a value to be 1 if the division of the two cell equals or greater than 1 and .5 if it's less than 1
=if(c5/d5>="1","1",".5")
I inputted the formula above but it's not showing the proper value..
Hope it makes sense. Much appreciated, ty!!
Hello Priscilla!
If I understand your task correctly, the following formula should work for you:
=IF(C5/D5 >= 1,1,0.5)
I hope this will help
i have "NEFT/BKIDN20137329397/GCHZ0000M12104/ " in one worksheet and "BKIDN20137329397" in other workbook with some values. how to use if formula to bring these values in first worksheet.
Hello
I am struggling with an IF formula, hopefully i have explained it clear enought.
I want to return a value to cell V1 (the cell i am entering the formal into), if the value of cell U1 is greater than 0.1. The value i want to return is in cell T1, if the value is less than 0.1, i want to return a value of 0.
Any help would be much appreciated
Thank-you
Hello Sarah!
If I understand your task correctly, the following formula should work for you:
=IF(U1 > 0.1,T1,0)
I hope this will help
Hello Mathew
How can I delete a group of numbers that have same last digit from a list.
For eg: 10, 22, 31, 32, 35, 38, 40, 42, 44, 50, 51, 52, 62, 63
From this list numbers have last digit '2' are to be deleted. 22, 32, 42, 52 and 62
I appreciate any help.
Thank you.
Hello,
I am struggling with my nested IF formula. I am trying to return a "Y" or "N" if the given date meets certain requirements but sometimes strings of text can be found in the cell. If the string of text matches I would like it to return "N" or "Y" based off the requirements. Any help would be greatly appreciated.
=IF(EDATE(A5,12)<TODAY(),"N",IF(A5TODAY()+30,OVERDUE,IF(SEARCH("OVERDUE",A5),"N","Y"))))
Hello Matthew!
If I understand your task correctly, the following formula should work for you:
=IF(EDATE(A5,12)
Hello,
I have some dates in column K that I periodically add to or update, also some blanks that don't have dates added yet. I would like a formula for column L that gives dates 6 months in the future if there is a date in column K. However, if there is no date (blank cell) in column K, I would like the corresponding L cell to remain blank until a date in inputted into the K cell. Hope that makes sense! I appreciate any help.
Hello Teresa!
If I understand your task correctly, the following formula should work for you:
=IF(K1 <> "",EDATE(K1,6),"")
After that you can copy this formula down along the column.
Hope this is what you need.
I cant find what the problem is with this simple thing
=IF(BASE!MONTH=ENGINE!B1,"yes","No"
Hello Herman!
You did not indicate exactly which error occurs in your formula. However, MONTH is a function and cannot be a link. Therefore, BASE! MONTH does not make sense and is a mistake.
The formula lacks the brackets at the end.
If you give more complete information, perhaps I can still suggest something else.
I have a row of cells which have values in for lab results - I can't figure out a formula to work out a minimum value where values are either numbers or come as say <0.05 etc. i.e where they are less than the laboratories limit of detection (<LOD). I want the minimum number so i want it to register that <0.05 is less than 0.06 either through the presence of a less than symbol or any other way. I tried to play around with any cell being greater than 0 calculate a minimum and for where cells do not to populate as"<LOD". i.e. 1.9 , < 0.05, 0.29 would return a minimum of "<LOD". 1.9, 0.06, 0.29 would return a minimum of 0.06 and < 0.05 < 0.05 < 0.05 would return a minimum of "<LOD". Any help would be greatly appreciated - I can't find any examples where you have an if statement followed by a function if the statement is true, and to present a text value if not ("<LOD").
Hello Nic!
If I understand your task correctly, the following formula should work for you:
=IF(NOT(ISERROR(MATCH("<*",A7:A15,0)>0))," < LOD",MIN(A7:A15))
I hope this will help, otherwise please do not hesitate to contact me anytime.
Hi Alexander,
Thank you for your time - this seemed to work perfectly. Is there a way to do the same for the max, i.e highest number or <LOD if all are less than detection. I've tried playing around with the formula to try for max but can't get it to work for all cases. Please could you assist. Thanks again.
Hello Nic!
I’m sorry but your task is not entirely clear to me.
For me to be able to help you better, please describe your task in more detail. Please let me know in more detail what you were trying to find. It’ll help me understand it better and find a solution for you. Thank you.
Hi Alexander.
So I have two columns in the spread sheet, one which calculates the minimum concentration from all the values from the lab results, which now works using your formula to pick the lowest concentration - <LOD (< limit of detection) or the lowest number if above that. The second column I need your assistance with is to work out the maximum value for all the cells in the row, as before some have < 0.05 for example, if all the concentrations are above this that's fine but it doesn't populate an answer for where all are <LOD. And the maximum in that case would be <LOD. Hope that clarifies things?
Hello Nic!
If I understand your task correctly, the following formula should work for you:
=MAX(--(SUBSTITUTE(A7:A10,"<",""))) Hope this is what you need.
I am having trouble with this If Formula. =IF(K3/31*(X3-H3+1)+M3 >200, "$50"), 200, "$50)
3.33 X 24 days = $79.92, M2 =150 (150 + $79.92 is more than $200 so I need the return to be $50. If less than $200 I need the total of (K2/31)*(X2-H2+1).
ANY help would be greatly appreciated. Please and thanks
Hello Dusty!
Your explanations are not very clear, but I can assume that something like this would suit you
=IF(K3/31*(X3-H3+1)+M3 > 200, "$50", (K2/31)*(X2-H2+1))
If I did not guess, then explain in more detail and accurately your problem.
I have a row, the 'amount' row, containing numerical figures from about 100 to about 1000000. I need a formula that will put corresponding figures in another cell. For example if the figures In the 'amount' row are greater than 100 and less than 5200, 100 should go to the cells beside the "amount" row, which I'll call the 'charge' row. And if the cells contains figures greater than 5,200 and less than 10300, then 200 should be in the 'charge' row, so that at the end, I can calculate the total charge for every single amount figure.
Hello!
I recommend that you study the article on our blog about IF functions with several conditions.
Hope this is what you need.
Hello,
Can you please assist me to create formula for following scenario
When I put patient's name in a cell, patient's UHID unique number should reflect automatically or vice versa
Thanks
Hello!
I’m sorry but your task is not entirely clear to me. Could you please describe it in more detail? Thank you!
I am looking for a help finding a formula
If cell A1 is a negative number it will turn to a positive number and if cell A1 is a positive number it will turn to a zero.
Hello Vincent!
If a number is written in the cell, Excel can only change it using VBA. An Excel formula can only change the value of the cell in which it is written. But if a number is written in the cell, then you will not be able to write the formula into it.
The formula in cell B1 might look like this:
=IF(A1 < 0,-A1,0)
I hope it’ll be helpful.
I'm having trouble using the IF logic statement- here it is =IF(C2=7592.00,1251.80,0. What Im trying to say is if the value in C2 is (7592.00) if true input 1251.80, if false input 0.
C2 actually does not contain 7592.00. Its referencing and reading a value from another cell in a different sheet. ='DRP Implementation'!N127 Result is Im not getting the result I want 1251.80 if 7592.00 is present. Is it because C2 is a ref cell and not a discrete numerical value? How would you correct this?
Hello Larry!
First off, please check your Excel settings: Excel - File - Options - Advanced - Update links to other documents. Also, please go to Data->Edit Links and make sure the autoupdate for each link is enabled.
Check the automatic calculation in your Excel. Go to File -> Options -> Formulas -> Calculation Options and switch to Automatic option there.
Note! In this case, you'll need to hit Shift+F9 to recalculate the formulas in any workbook you're working with.
Hope it'll help, otherwise please do not hesitate to contact me back.
Hi! I am trying to create a complicated If Then statement and haven't had success. Could you help?
If the text in a cell says "Participant #1", then I want it to tell me the name which is found in cell C2. But if the text says "Participant #2" then I want it to tell the name in cell D2. And so on through to Participant #4. If there is no text then leave it blank.
=IF("Participant #1",E2, IF("Participant #2",F2, IF("Participant #3",G2, IF("Participant #4",H2,"")))
This is what I had, but is saying I cannot coerce my formula into a boolean equation... what on earth?
Thank you so much for help!
Hello Penny!
If I understand your task correctly, the following formula should work for you:
=IF(B1="Participant #1",F2, IF(B1="Participant #2",G2, IF(B1="Participant #3",H2, IF(B1="Participant #4",I2,""))))
Hope this is what you need.
I ended up having to use this sequence, which I got from an excel whiz that I happened to connect with through a friend:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(K2, "Participant #1", $E2 & " " & $C2), "Participant #2", $F2 & " " & $C2), "Participant #3", $G2 & " " & $C2), "Participant #4", $H2 & " " & $C2)
K2 is the cell of the activity participants, E2 / F2, etc. are the Participant First Names, and C2 is the last name
Hi,
Wondering if someone can please help me with a formula?
If column G contains the text "Yes", then I want column I to generate a sequential number, starting at 001. If G contains "No", then no number is to be generated and the cell will remain blank, and the next sequential number (002) will appear the next time column G contains "Yes"
I understand the IF function, but am struggling with the numbering part.
So far I have =IF(G:G="Yes","*","")- I need to fill in the * part!
Thanks :)
Hello Amy!
Please try the following formula:
=IF(G1="Yes",COUNTIF($G$1:G1,"Yes"),"")
After that you can copy this formula down along the column.
Please go to Format Cells, choose Number -> Custom Format and set
00#
Or instead of the number in the cell, you can write text and not use custom format:
=IF(G1="Yes",TEXT(COUNTIF($G$1:G1,"Yes"),"00#"),"")
I hope this will help