Excel nested IF - multiple conditions in a single formula

The tutorial explains how to use multiple IF in Excel and provides a couple of nested If formula examples for most common tasks.

If someone asks you what Excel function you use most often, what would your answer be? In most cases, it's the Excel IF function. A regular If formula that tests a single condition is very straightforward and easy to write. But what if your data requires more elaborate logical tests with multiple conditions? In this case, you can include several IF functions in one formula, and these multiple If statements are called Excel Nested IF. The biggest advantage of the nested If construction is that it allows you to check more than one condition and return different values depending on the results of those checks, all in a single formula.

In modern versions of Excel 2016, Excel 2013, Excel 2010 and Excel 2007, you can nest up to 64 IF functions in one formula. In Excel 2003 and lower, up to 7 nested IF functions can be used.

Further on in this tutorial, you will find a couple of Excel nested If examples along with the detailed explanation of their syntax and logic.

Example 1. Classic nested IF formula

Here's a typical example of Excel If with multiple conditions. Supposing you have a list of students in column A and their exam scores in column B, and you want to classify the scores with the following conditions:

  • Excellent: Over 249
  • Good: between 249 and 200, inclusive
  • Satisfactory: between 199 and 150, inclusive
  • Poor: Under 150

And now, let's write a nested IF function based on the above criteria. It's considered a good practice to begin with the most important condition and keep your functions as simple as possible. Our Excel nested IF formula goes as follows:

=IF(B2>249, "Excellent", IF(B2>=200, "Good", IF(B2>150, "Satisfactory", "Poor")))

And works exactly as it should:

Classic nested IF formula

Understanding Excel nested IF logic

I've heard some people say that Excel multiple If is driving them crazy :) Try looking at it at a different angle:

Nested If formula logic

What the formula actually tells Excel to do is to evaluate the logical_test of the first IF function and, if the condition is met, return the value supplied in the  value_if_true argument. If the condition of the 1st If function is not met, then test the 2nd If statement, and so on.

IF(check if B2>=249, if true - return "Excellent", or else 
IF(check if B2>=200, if true - return "Good", or else
IF(check if B2>150, if true - return "Satisfactory", if false -

The order of conditions is important

A few paragraphs above, we pointed out that the most important conditions should be listed first, and you probably asked yourself why's that? The point is that Excel nested If tests conditions in the order they appear in the formula, and as soon as any condition is met, the subsequent conditions are not evaluated.

Now, let's see what it means in practice. If we wrote the above nested IF formula in the reverse order, it won't work. Microsoft Excel would begin evaluating the formula with the smaller condition that comes first, and display "Satisfactory" for any number greater than 150. That way it would never come to evaluating "Good" and "Excellent" conditions. So, when thinking over your nested IF logic, remember that the order of conditions matters!

Example 2. Multiple If with arithmetic calculations

Here's another typical task: the unit price varies depending on the specified quantity, and your goal is to write a formula that calculates the total price for any amount of items input in a specific cell. In other words, your formula needs to check multiple conditions and perform different calculations depending on what amount range the specified quantity falls in:

Unit Quantity Price per unit
1 to 10 $20
11 to 19 $18
20 to 49 $16
50 to 100 $13
Over 101 $12

This task can also be accomplished by using multiple IF functions. The logic is the same as in the above example, the only difference is that you multiply the specified quantity by the value returned by nested IFs (i.e. the corresponding price per unit).

Assuming the user enters the quantity in cell B8, the formula is as follows:

=B8*IF(B8>=101, 12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, "")))))

And the result will look something similar to this:

Nested IF formula to perform different calculations on numbers within a certain range

As you understand, this example demonstrates only the general approach, and you can easily customize this nested If function depending on your particular task.

For example, instead of "hard-coding" the prices in the formula, you can reference the cells containing those values (cells B2 to B6). This will enable your users to edit the source data without having to update the formula:

=B8*IF(B8>=101,B6, IF(B8>=50, B5, IF(B8>=20, B4, IF( B8>=11, B3, IF(B8>=1, B2, "")))))

An improved formula with multiple IF functions

Or, you may want to include an additional IF function(s) that fixes an upper, lower or both bounds of the amount range. When the quantity is outside the range, the formula will display an "out of the range" message. For example:

=IF(OR(B8>200,B8<1), "Qty. out of range", B8*IF(B8>=101,12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, ""))))))

Nested IF's formula with fixed bounds

The nested IF formulas described above work in all versions of Excel 2016 -2000. In Excel 2016 that is part of Office 365 subscriptions, you can use the IFS function for the same purpose.

Advanced Excel users that are familiar with array formulas, can use this formula that basically does the same thing as the nested IF function discussed above. Though the array formula is far more difficult to comprehend, let along to write, it has one indisputable advantage - you specify the range of cells containing your conditions rather than referencing each condition individually. This makes the formula more flexible, and if your users happen to change any of the existing conditions or add a new one, you will only have to update a single range reference in the formula.

Excel nested IF - things to remember

As you have just seen, there is no rocket science in using multiple IF in Excel. To improve your nested IF formulas and prevent common mistakes, just keep in mind these 3 simple facts:

  1. In Excel 2016 - 2007, you can nest up to 64 conditions. In older versions of Excel 2003 and lower, up to 7 nested IF functions can be used.
  2. Mind the order of conditions in your Excel multiple If formula - if the first condition is TRUE the subsequent conditions are not tested (please see this example for more details).
  3. If your formula includes more than 5 nested IF functions, you may want to optimize it by using one of the alternatives described below.

Alternatives to nested IF in Excel

To get around the limit of seven nested IF functions in older Excel versions and to make your formulas more compact and fast, consider using the following alternatives to Excel If with multiple conditions.

  1. To test many conditions, use LOOKUP, VLOOKUPINDEX/MATCH or CHOOSE functions.
  2. Use IF with logical functions OR / AND, as demonstrated in the these examples.
  3. Use an array formula like shown in this example.
  4. Use the CONCATENATE function or the concatenate operator (&).

    As well as other Excel functions, CONCATENATE can include as many as 30 arguments in older Excel versions and up to 255 arguments in Excel 2016 - 2007, which equates to testing 255 different conditions.

    For example, to return different results depending on the value in cell B2, you can use any of the following formulas:

    Nested IF:
    =IF(B2>249, "Excellent", IF(B2>=200, "Good", IF(B2>150, "Satisfactory", "Poor ")))

    CONCATENATE function:
    =CONCATENATE(IF(C1="a", "Excellent", ""), IF(C1="b", "Good", ""), IF(C1="c", "Poor ", ""))

    Concatenate operator:
    =IF(B2="a", "Excellent", "") & IF(B2="b", "Good", "") & IF(B2="c", "Poor ", "") & IF(B2="d", "Poor ", "")

    As you see in the screenshot below, the use of CONCATENATE does not make the formula shorter, but it does make it easier-to-understand compared to nested IF's.

    Concatenate operator

  5. For powerful Excel users, the best alternative to using multiple nested IF functions might be creating a custom worksheet function using VBA.

This is how you use an If formula in Excel with multiple conditions. To have a closer look and probably reverse engineer the formulas, you are welcome to download the sample Nested If Excel worksheet. I thank you for reading and hope to see you on our blog next week.

You may also be interested in:

185 Responses to "Excel nested IF - multiple conditions in a single formula"

  1. MD Rasel Sarder says:

    Hello, Ms. Svetlana Cheusheva,

    Your IF condition articles are really helpful and much appreciated, I will be so grateful to you if you please help me out to set up this formula…..

    I have several dates on a sheet in a column (e.g. 18/02/2018, 27/02/2018, 29/03/2018) What I want is deduct 10 days from every date and after deducting 10 days I need to check back for the date on Saturday. For example 18/02/2018 Minus (-) 10 days = 08/02/2018, now I check back for the date on Saturday, that is 03/02/2018. 3rd February 2018 will be my result. And another example for the date 29/03/2018 where the result will be 17/03/2018. Can you please help me to build this formula?

    Thank you in advance.

  2. kristi says:

    I have a formula that looks like this in a spread sheet +AZ3*IF)'YTD ALL'!$R$^'Overtime FY17'!AZ$1,'YTD ALL'!$R$6, 'YTD ALL'!$D$6))

    What does this mean? I understand that the "YTD ALL' is another sheet being referenced but I can't figure what it is pulling.

    Apparently the person whose position was more well versed on Excel than I am.

    Thank you in advance

    • Alex says:

      Hi Kristi, It is pulling things that are from YTD ALL tab and whatever comes after up to the comma. Example 'YTD ALL!' is the worksheet. $R$ is column R in that worksheet, $R$6 is a cell in that worksheet ect.

  3. Kate Barsi says:

    I am trying to create a formula that evaluates multiple cells in the same row that will determine if any of the cells in that range have a no, then a file is failing. I'm using this: =if(countif(A2:H2,"No"),,"Fail","Pass")

    It works for a smaller range, but not a larger range....

    Is there another way to do this?

  4. Yayan Sulton Auliyaa says:

    Hi admin, I have a case to count between 2 column where these columns has date format, and each columns has different input,I need to count distance between 2 column with condition where ,ex : A1 to B1 has 4 days distance the result is "Done" Where condition 1 Day = 8 hours , and we have to achieve min 20 Hours to get "done" status.

    Please Help me :(

  5. Rinks says:

    I need help for complex formula, tried using AND, OR, Search with IF but not able to get the result.
    I have a Report data which I have converted into Table, in Column C under the Header "Assignment Group" there are country listed HRss Brazil uat, HRss Portuguese ant, HRss Spain hat, Hrss Italy amt and HRss BR sat. So I was trying this formula:

    =IF(ISERROR(SEARCH("Portu",[Assignment group])),"True", IF("BR",[Assignment group],"False")) - what I want to do is if the country is Brazil or Portuguese or BR then the formula should return to False and rest should be True.
    Please if you can help me it will be great, I have be trying multiple combination but to no avail it returning to "#Valid"

    Many thanks in Advance

  6. asif says:

    100,000.00 500,000.00 10% 225 one lac to 5-lac than 10% and plus 225
    500,000.00 1,000,000.00 15% 1225 5-lac to 10-lac than 15% and plus 1125
    1,000,000.00 2,000,000.00 18% 2225
    2,000,000.00 3,000,000.00 20% 3225
    Sr No Name of Annual income
    1 waseem 3,500,000.00 350,225.00
    2 waqas 4,000,000.00 400,225.00
    3 waqar 500,000.00 50,225.00
    4 aslam 1,000,000.00 100,225.00
    5 abid 1,500,000.00 150,225.00
    6 abdullah 2,000,000.00 200,225.00
    7 rehman 2,500,000.00 250,225.00
    8 zar 3,000,000.00 300,225.00
    9 tahir 5,000,000.00 500,225.00
    10 altaf 6,000,000.00 600,225.00
    11 shams 300,000.00 30,225.00
    12 pak 800,000.00 80,225.00
    13 lah 900,000.00 90,225.00
    14 pun 6,500,000.00 650,225.00
    15 aus 9,000,000.00 900,225.00
    16 can 1,200,000.00 120,225.00

    please help me i put this formula but not get success.

    thanking you anybody help me.

  7. Carolyn Brown says:

    I have a spreadsheet that I need help with. I have two columns, one is Regular and one is Overtime. I need the Overtime column to calculate for anything over 40 in the regular, but I need the regular column to change to 40.
    Employee has a total of 47 regular hours in column H, I need for column I which is the Overtime column to show the sum of H-40=I, but then for column H to show 40.
    Is this possible and if so how.
    basically in my mind it's If H is >40 then I would be equal to anything >40 and H = 40
    Am I crazy or can this be done?

    • Patrick says:

      Carolyn Brown:

      Do you manually put the hours in the regular and overtime columns or are there cell references for each column for each employee that populate automatically in those cells in the given work period?

      I don't remember anything before Excel 2013 so this maybe not work if you use a version older than that. I will also answer this assuming that hours populate automatically with cell references for each employee and cells B through G have the total hours worked each day from Monday to Saturday.

      For the regular hour column you can setup an IF statement.
      =IF(sum(B2:G2)40,sum(B2:G2)-40," ")

      You can also setup a data validation in the regular hours column. You can set it where only numerical values can be entered in that column and the value cannot be greater than 40.

    • Patrick says:

      Carolyn Brown:

      IF(sum(B2:G2)<=40,sum(B2:G2),40) 40,sum(B2:G2)-40," ") <---Overtime Hours Column (should be greater than 40)

  8. Ganesh says:

    Articles are quite good and knowledgeable.
    Can yo help me with logical functions
    I have some specific data for input diameter, input thickness output diameter and output thickness. based on these values I have to select the speed and feed for machine, which function I have to use, so that formula can check for given input and out put parameters what speed and feed to be selected?

  9. Patrick says:


    I hope on your end what I am saying comes up correctly because on my computer once I hit send, some of what I've written is cut off.

  10. Yana says:

    Thanks. This has been pretty useful. I'm trying to create a formula for a document thats over 7000 cells long. Would this negatively affect the formulae? I keep getting an Value? error.

  11. Anonymous says:

    How would you explain to someone who is unfamiliar with Excel how to read a nested statement that contains 3 different conditions??

    • Hi!

      I will try to explain the logic on an example of the first formula in this tutorial:

      =IF(B2>249, "Excellent", IF(B2>=200, "Good", IF(B2>150, "Satisfactory", "Poor")))

      Translated into plain English, the formula does the following:

      1st IF: Evaluates the 1st condition (if B2 is greater than 249). If the condition is met (if B2>249), returns "Excellent", otherwise proceeds to the 2nd condition.

      2nd IF: Checks if B2 is greater than or equal to 200. If it is, returns "Good", otherwise proceeds to the 3rd condition.

      3rd IF: Checks if B2 is greater than 150. If it is, returns "Satisfactory", otherwise returns "Poor".

      In other words, the formula reads as follows:

      If B2>249, return "Excellent", otherwise check if B2>=200
      If B2>=200, return "Good", otherwise check if B2>150
      IF B2>150, return ""Satisfactory", otherwise return "Poor"

  12. Mohamed says:

    I have a question
    trying to create a nested a nested formula with 3 arguments
    if A>720, B>16, C"IV" display RUX
    please help

  13. Ava says:

    What if I have multiple overtime pay rates. For example, I want to calculate the total pay for 64 hours worked with these conditions:
    -30 hours or less= $9.50 per hour
    -More than 30 and less than 51=$12.50 per hour
    -51 or more and less than 61=$15.50 per hour
    -61 or more=$18 per hour

    So for hour 1-30, I get paid 285. For hours 31-50, I get paid 237.50, etc. until I'm up to hour 64. I should have a total of 734 but I'm not sure how I would write the formula

  14. Mijanur Rahman says:

    Hi I'm Mijanur Rahman,
    I want to help !!

    Actually I, get a G.P.A with four subject mark.

    Formula1: Suppose (Sub1+sub2+sub3)/3 it's Main subject GPA (3.93)
    Formula2: IF Sub4 point is sub4>4.00 then add 0.50 with main subject GPA.

    How to write two formula in one line....???
    Plz Help

  15. Brenda Carpenter says:

    I am working on an assignment and I have been stumped for hours. I don't know what I am doing wrong, and hopefully someone can assist me. Here it is...
    9. Many of the special staff teams require leadership training, which is offered to staff with more than 1 year of service at Camp Bright Firewood. Dean wants to identify the staff members eligible for leadership training in the table.
    In cell M2, enter a formula using a nested IF function and structured references to determine first if a staff member already has completed leadership training, and if not, whether that staff member is eligible for leadership training.
    a. If the value of
    b. the Leadership Training column is equal to the text “Yes”, the formula should return the text Completed. Remember to use a structured reference to the Leadership Training column.
    c. If the value of the Leadership Training column is not equal to yes, the formula should determine if the value in the Service Years column is greater than 1.
    d. The formula should return the text Yes if the staff member’s Service Years value is greater than 1.
    e. The formula should return the text No if the staff member’s Service Years value is not greater than 1.
    =if([Leadership Training]="YES","Completed", If([Leadership Training]="no"[Service Years]>1, "Yes","no"))
    I just am not getting it. I've done this problem many different ways and not geting the right response.
    Thanks in advance!!

  16. abdu says:

    I think my nested IF case is different and maybe weird ;)

    I have a Pivot table filter including 3 options, means I can select 1 or All or only two product categories to produce revenue report outside of the Pivot table it self. I am using SUMIFS to extract the data from Excel table, and filter using the same Pivot filter.
    All working fine until I select 2 product categories (Not All and Not One), I eliminate the problem when selecting (ALL), but could not do the same when I select 2 product categories, the result was all zero values. here is my function:

    the previuos one working fine when filtering for One or clearing the filter, means (All), but not when filtering for two categories ...

    my attempt was nested IF:
    IF($I$2="(All)";"*";IF($I$2="(Multiple Items)";$I$2)

    but it dose not work, any help...

  17. basha says:

    i have two tables. in first table i have to check Regid and second table Same RegID and date . After checking both conditions, i have to get the matching data.

    Ex: I was given a car for rent to different customers in different dates.
    i have customer details in one table and which customer taken vehicle on which date i mentioned in another table.

    Now when i enter customer ID and date i have to get all the details of the customer and that vehicle. can anyone help to write formula for this

    • Eve says:

      It will be a sql statement to join two tables based on RegID.
      Select *
      from table1
      inner join table2 on table1.RegID=table2.RegID

  18. himanshu kumar sharma says:


    7.100001 TO ABOVE-------30%

  19. Gary says:

    I have a question. I have three separate columns with numbers in each cell. I a fourth column I want to place the lowest number that exist in the prior three columns in the cell. How do I go about doing this? Or is it possible?
    A B C Lowest
    100 150 200 100
    150 50 100 50

  20. himanshu kumar sharma says:


    7.100001 TO ABOVE-------30%


  21. Raza says:

    Hi there...
    i need some help if u can pls..
    i run a car renter service and i want to find which of my car earn how much in a single day
    i got some sheets in a single file these sheets got my daily sales
    i need to make a sheet which sums all the amount from all the sheets which contain same car num
    the sheets are made by driver that this driver drove this car on this date
    hope am able to convey u my issue

    • Raza says:

      Raza here again sorry i forgot to give an example for this:
      lets say Sheet 1 got data of driver 1 and sheet 2 got data of driver 2
      lets say driver 1 drove car A on 1st dec and drove car B on 2nd dec
      and driver 2 drove car B on 1st dec and car A on 2nd dec
      i want a sheet which just calculate that how much earning was done on that car on that day wether it b driven by more than 2 drivers

  22. Bonnie Slone says:

    I have a vehicle report that has the starting mileage at the top of the page in D6, then I have a column for each day of the month, another column with ending daily mileage and the last column is total daily mileage. My supervisor wants to be able to put the ending mileage and it figure how many miles were driven that day. My problem is that some days the vehicle doesn't move so a zero needs to go in the column. My formula for day 1 is =IF(OR(B10=0), "0", (B10-D6)) so now what do I do for day 2-31 if it could be 0 everyday or could be mileage to get it to go back up to the last place mileage was entered to get that days total?

  23. naushad says:

    Good Morning,

    Mis,Svetlana Cheusheva!

    Thank you very much for your kind excel work,i appreciate with your every tutorial and helpful for taking a the example thank you very much once again if i need any help i will take your approach.

  24. Jada says:

    I have a report of incoming phone calls. I have the following columns: Start time (time stamp of when the call was received), Call duration (length of the call), and I have calculated a third column of time between calls, but not sure if that is necessary. We have 2 phone reps available to take calls. I am wanting to find out based on the time stamp of the incoming calls, and the duration of the calls if the 2 phone reps can handle the call volume. Im thinking this would be an IF THEN calculation, but i cant figure it out. Are you able to help?

  25. NineJune says:

    I really need a summary for 4 conditions but have a problem like this

    if A4C4 or equal D4 then D4
    if A4>D4 or equal E4 then E4
    if A4>F4 then F4

    Help me pls.

  26. Clark says:

    I am trying to find a way to indicate if there is >10 consecutive duplicate values in a column and if so have a cell marked as yes but if no then have the column show a no. An example can be seen below of what I want it to look like.
    A1 B1
    Y N
    N N
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    Y Y
    N N
    N N
    N N
    N N
    N N
    N N
    Y N
    Y N

    Is there a way to get an equation that looks at consecutive duplicate values and flags them if there is higher that a set value?

  27. Jim says:


    I have a column of names and another column with a value. I am trying to build out a formula that will capture the the value in the row depending on the name. Something like "IF"Tricia,sumF15".

  28. Warren Briggs says:

    Hi, can you have more than one condition to get a same result? I have a range of prices, and essentially if the price is above a certain value, a 0 score, is given. However, I want to also give a 0 score if there is no price, or the price is blank.... =IF(K218.75,"0")))))))))))))
    I want to add that if K2 is a 0 price, or if K2 is blank, my formula must also revert with a 0 value. Thanks for any help

  29. HD says:


    Can someone help me with this formula? What is it trying to achieve?

  30. SB says:

    I have this formula =VALUE(IF(B4="high risk", "5", IF(B4="restricted industry", "5", IF(B4="medium risk", "3", IF(B4="low risk", "1"))))) imbedded so it will assign the numerical value once a selection is made from the drop down list next to this field. However, I have new data (a lot of options in the drop down now) and need the above formula to look for a partial match instead of an identical match. For example, instead of high/med/low wording, I know have a list of countries that have attached ratings like "Estonia-Low". And I need that formula to assign the numerical risk rating (5/3/1) based on a partial match for the Low/Medium/High that will be attached to the country name. Thank you so much for your help. I've been reading blog posts all night and can't figure it out.

  31. BB says:

    I am trying to create a formula that will first multiply a weight times a dollar amount then add a value from one of 4 columns where a choice needs to be made and an additional column that will be added regardless. These 'choice' columns are not cumulative they are exclusionary. If one has a value then non of the others will be added to the weight times dollar amount and the additional column.

    In a sentence it looks something like this:

    (weight*.65)+L13 if P13=FALSE)+(M13 if L13=0 and if P13=FALSE)+(N13 if L13=0 and if M13=0 and if P13=FALSE)+O13 (This is the column that is always added) if P13=80 (weight*.65)+O13+P13

    Thank you!

  32. Lee says:

    Hi, wondering if anyone could help me.

    I need one cell to equal LL. If the value in another column is equal to 3.90, 4.90, 5.45, 5.95 or 11.40 I need the column next to this value to equal LL. I can do it with one value but not with all the values?


Post a comment

Unfortunately, due to the volume of comments received we cannot guarantee that we will be able to give you a timely response. When posting a question, please be very clear and concise. We thank you for understanding!
Excel add-ins and Outlook tools -
Ultimate Suite for Excel Professionals
60+ professional tools for Excel 2016-2007 to do your daily work
Incredible product, even better tech support…AbleBits totally delivers!
Deborah Bryant
Anyone who works with Excel is sure to find their work made easier
Jackie Lee
The best spent money on software I've ever spent!
Patrick Raugh
Ablebits is a fantastic product - easy to use and so efficient.
Debra Celmer
Excel is at its best now
Annie C.
I don't know how to thank you enough for your Excel add-ins
Jennifer Morningstar
Anybody who experiences it, is bound to love it!
Kumar Nepa
AbleBits suite has really helped me when I was in a crunch!
Nelda Fink
I have enjoyed every bit of it and time am using it
Christian Onyekachi Nwosu
It's the best $100 we've ever spent!
Mike Cavanagh
I love the program, and I can't imagine using Excel without it!
Robert Madsen
One word… WOW!
Dave Brown
Love the products!
David Johnston
It is like having an expert at my shoulder helping me…
Linda Shakespeare
Your software really helps make my job easier
Jeannie C.
Thanks for a terrific product that is worth every single cent!
Dianne Young
I love your product
Brad Gibson
Sheila Blanchard