Professional Documents
Culture Documents
Excel IF Statement With Multiple AND/OR Conditions, Nested IF Formulas, and More
Excel IF Statement With Multiple AND/OR Conditions, Nested IF Formulas, and More
Excel IF Statement With Multiple AND/OR Conditions, Nested IF Formulas, and More
In Part 1 of our Excel IF function tutorial, we started to learn the nuts and bolts of the Excel IF
function. As you remember, we discussed a few IF formulas for numbers, dates and text values
as well as how to write an IF statement for blank and non-blank cells.
However, for powerful data analysis, you may often need to evaluate multiple conditions at a
time, meaning you have to construct more sophisticated logical tests using multiple IF functions
in one formula. The formula examples that follow below will show you how to do this correctly.
You will also learn how to use Excel IF in array formulas and learn the basics of the IFEFFOR
and IFNA functions.
AND function. If your logical test contains the AND function, Microsoft Excel returns
TRUE if all the conditions are met; otherwise it returns FALSE.
OR function. In case you use the OR function in the logical test, Excel returns TRUE if
any of the conditions is met; FALSE otherwise.
To better illustrate the point, let's have a look at a few IF examples with multiple conditions.
The easiest way to make a proper formula is to write down the condition first, and then
incorporate it in the logical_test argument of your IF function:
Easy, isn't it? The formula tells Excel to return "Pass" if a value in column C >=20 AND a value
in column D >=30. Otherwise, the formula returns "Fail". The screenshot below proves that our
Excel IF /AND function is correct:
Note. Microsoft Excel checks all conditions in the AND function, even if one of the already
tested conditions evaluates to FALSE. Such behavior is a bit unusual since in most of
programming languages, subsequent conditions are not tested if any of the previous tests has
returned FALSE.
In practice, a seemingly correct IF / AND formula may result in an error because of this
specificity. For example, the formula =IF(AND(A2<>0,(1/A2)>0.5),"Good", "Bad") will
return "Divide by Zero Error" (#DIV/0!) if cell A2 is equal to 0. The avoid this, you should use a
nested IF function:
You use the combination of IF & OR functions in a similar way. The difference from the IF /
AND formula discussed above is that Excel returns TRUE if at least one of the specified
conditions is met.
So, if we modify the above formula in the following way:
Column E will have the "Pass" mark if either the first score is equal to or greater than 20 OR the
second score is equal to or greater than 30.
As you see in the screenshot below, our students have a better chance to pass the final exam with
such conditions (Scott being particularly unlucky failing by just 1 point : )
In case you have to evaluate your data based on several sets of multiple conditions, you will have
to employ both AND & OR functions at a time.
In the above table, suppose you have the following criteria to evaluate the students' success:
If either of the above conditions is met, the final exam is deemed passed, otherwise - failed.
The formula might seem tricky, but in a moment, you will see that it is not! You just have to
express two conditions as AND statements and enclose them in the OR function since you do not
require both conditions to be met, either will suffice:
The screenshot below indicates that we've got the formula right:
Naturally, you are not limited to using only two AND/OR functions in your Excel IF formulas.
You can use as many logical functions as your business logic requires, provided that:
In Excel 2016, 2013, 2010 and 2007, your formula includes no more than 255 arguments,
and the total length of the formula does not exceed 8,192 characters.
In Excel 2003 and lower, you can use up to 30 arguments and the total length of your
formula shall not exceed 1,024 characters.
Here's a typical example: suppose you want not simply to qualify the students' results as
Pass/Fail, but define the total score as "Good", "Satisfactory" and "Poor". For instance:
And now, let's write a nested IF function based on the above conditions. It's considered a good
practice to start with the most important condition and make your functions as simple as
possible. Our Excel nested IF formula is as follows:
As you see, just one nested IF function is sufficient in this case. Naturally, you can nest more IF
functions if you want to. For example:
The above formula adds one more conditions - the total score of 70 points and more is qualified
as "Excellent".
For more information about Excel IF with multiple conditions, please see How to use nested IF
in Excel.
For example, the following array SUM/IF formula demonstrates how you can sum cells in the
specified range based on a certain condition rather than add up the actual values:
=SUM(IF(B1:B5<=1,1,2))
The formula assigns a certain number of "points" to each value in column B - if a value is equal
to or less than 1, it equates to 1 point; and 2 points are assigned to each value greater than 1. And
then, the SUM function adds up the resulting 1's and 2's, as shown in the screenshot below.
Note. Since this is an array formula, remember to press Ctrl + Shift + Enter to enter it correctly.
When discussing nested IF functions, we wrote the formula that returns different ranking
(Excellent, Good, Satisfactory or Poor) based on the total score of each student. As you
remember, we added a new column with the formula that calculates the total of scores in
columns C and D.
But what if your table has a predefined structure that does not allow any modifications? In this
case, instead of adding a helper column, you could add values directly in your If formula, like
this:
In a similar fashion, you can use other Excel functions in the logical test of your IF formulas:
IF and AVERAGE:
=IF(AVERAGE(C2:F2)>=30,"Good",IF(AVERAGE(C2:F2)>=25,"Satisfactory","Poor "))
The formulas retunes "Good" if the average score in columns C:F is equal to or greater than 30,
"Satisfactory" if the average score is between 29 and 25 inclusive, and "Poor" if less than 25.
IF and MAX/MIN:
To find the highest and lowest scores, you can use the MAX and MIN functions, respectively.
Assuming that column F is the total score column, the below formulas work a treat:
If you'd rather have both the Min and Max results in the same column, you can nest one of the
above functions in the other, for example:
=IF(F2=MAX($F$2:$F$10) ,"Best result", IF(F2=MIN($F$2:$F$10), "Worst result",
""))
In a similar manner, you can use the IF function with your custom worksheet functions. For
example, you can use it with the GetCellColor / GetCellFontColor functions to return different
results based on a cell color.
In addition, Excel provides a number of special IF functions to analyze and calculate data based
on different conditions.
For example, to count the occurrences of a text or numeric value based on a single or multiple
conditions, you can use COUNTIF and COUNTIFS, respectively. To find out a sum of values
based on the specified condition(s), use the SUMIF or SUMIFS functions. To calculate the
average according to certain criteria, use AVERAGEIF or AVERAGEIFS.
For the detailed step-by-step formula examples, check out the following tutorials:
You already know a way to spot blank and non-blank cells using the ISBLANK function.
Microsoft Excel provides analogous functions to identify text and numeric values - ISTEXT and
ISNUMBER, respectively.
Here's is example of the nested Excel IF function that returns "Text" if cell B1 contains any text
value, "Number" if B1 contains a numeric value, and "Blank" if B1 is empty.
=IF(ISTEXT(B1), "Text", IF(ISNUMBER(B1), "Number", IF(ISBLANK(B1), "Blank",
"")))
Note. Please pay attention that the above formula displays "Number" for numeric values and
dates. This is because Microsoft Excel stores dates as numbers, starting from January 1, 1900,
which equates to 1.
Sometimes, you can achieve the desired result by embedding the IF statement in some other
Excel function, rather than using another function in a logical test.
Here's another way how you can use the CONCATINATE and IF functions together:
I believe you hardly need any explanation of what the formula does, especially looking at the
screenshot below: