How to Use if Function in Excel
How to Use if Function in Excel
As you see, IF takes a total of 3 arguments, but only the first one is obligatory, the
other two are optional.
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.
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:
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:
This formula will return "Good" if the value in A2 is greater than 80, a blank cell
otherwise:
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")
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:
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.
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.
For negative numbers (which are less than 0), the formula returns "Invalid"; for zeros
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:
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:
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".
For example, to return "No" only when B2 contains "DELIVERED" (the uppercase),
you'd use this formula:
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.
For example, in case "No" action is required both for "Delivered" and "Out for
delivery" items, the following formula will work a treat:
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:
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:
To compare a date with the current date, use the TODAY() function. For example:
If you are looking to somehow mark your data based on a certain cell(s) being empty
or not empty, you can either:
The table below explains the difference between these two approaches with formula
examples.
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:
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:
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:
For example, if B2 is greater than 80, we'll have it multiplied by 7%, otherwise by
3%:
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.
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:
For example, to return "Pass" if both scores in B2 and C2 are higher than 80, the
formula is:
To get "Pass" if either score is higher than 80, the formula is:
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: