Comments on: Excel Nested IF statement: examples, best practices and alternatives

Though very popular, the nested IF statement is not the only way to check multiple conditions in Excel. In this tutorial, you will find a handful of alternatives that are definitely worth exploring. Continue reading

Comments page 5. Total comments: 231

  1. A1 value is Male or Female
    B2 Value is 10000 or 5000 or 15000 or 30000
    in C2 result want if male is greater than 10000 then 200 or greater than 7500 then 175 or 0
    or C2 result want if Female is greater than 10000 then 200 or 0

  2. SOS, I am totally lost here.
    I have 5 colons I need to take in my formula, with a total of 4 conditions and I need to calculate the following:
    IF and and Then
    condition1 D1460 G14=0 P14=0 =D14*$L$10
    condition3 D14+G140 G14=<60 P14=Y D14*$L$10+$M$9
    - and in all other cases it should be D14+G14
    How do I get them all in one field and make excel calculate the result with all those parameters? Is it possible at all?
    I tried with: IF((AND(D1460, G14=0), D14*$L$10, IF(D14+G14<=59, $M$9, IF((AND(G14=<60, P14=J), D14*$L$10+$M$9, D14+G14))))
    But the formula is obviously wrong :-(
    Since I am a linguist and the last time I had maths was in 1983, you can understand my confusion...
    Many thanks!

  3. Hi
    I have to update the three different states professional tax values (PT) in column B based on the Column A (Salary) & Column C (states). state wise & Salary wise PT slab given below. I tried with if condition. It is throwing me an error. Can you help
    Col A Col B Col C
    Salary PT State TN PT Slab
    1800 KL 12501 208.00
    5500 KL
    6000 KL KA PT Slab
    6500 TN 0-15000 0
    7500 TN >150001 200
    7600 KL
    8600 TN KL PT Slab
    9000 TN 20834 208
    25000 KA

  4. I have a table with values, no text. The data look something like this
    0.00 0.51 1.01 0.00 1.43
    0.82 2.48 5.40 1.96 7.75
    0.39 0.00 0.00 0.93 0.00

    I need to present these values in four categories:
    0 [presenting as 0]
    >0 and <0.05 [presenting as =0.05 and =1 [presenting as the actual value]

    I have not found a way for IFS to test against a range of values within a single unit of the function, as the old AND function used to enable in IF statements. Is this possible?

    1. A chunk of the four categories got erased. Here are the categories, again:
      0 [presenting as 0]
      >0 and <0.05 [presenting as 0.04999 and 0.99999 [presenting as the actual value]

  5. Thank you for better understand the if forula

  6. I can’t figure out how to write this...the cell that I’m evaluating is a %
    The formula I’ve tried: IF(B17≥65,"THRIVING",IF(B17≥50,"Ahead Of The Curve",IF(B17>35,"TURBULANT","Making Ends Meet")))
    Criteria: 66+% = Thriving,
    51-65% = Ahead Of The Curve,
    36-50% = Making Ends Meet,
    0-35% = Turbulent
    One cell I’m evaluating has a value of 45%, another of 88%...the formula says both are Making Ends Meet
    Can you help me?

    1. HI Donna,
      I thing this will you.
      IF(A11>=66%,"THRIVING","")&IF(A11<=65%,"Ahead Of The Curve","")&IF(A11<=50%,"Making Ends Meet","")&IF(A11<=35%,"TURBULENT","")

  7. 169 #N/A
    169 #N/A
    169 #N/A
    169 Punjab National Bank
    169 #N/A
    169 #N/A

    i want to have punjab national bank in all the other places where it is #N/A. please share logic to write in other column

  8. I need a formula for excel -
    If (Salary<=13000) Then 9617 Else 12022 Elseif(Salary<=24000) Then 15100 ElseiF(salary<=30000) Then (Basic*0.45)

    Help me

    1. Sub Value()
      Dim Salary As Integer
      Dim Basic As Double
      Basic = Cells(?, "?")
      Salary = Cells(?, "?")
      If Salary < 13001 Then
      Cells(?, "?") = 9617
      ElseIf Salary < 24001 Then
      Cells(?, "?") = 15100
      ElseIf Salary < 30001 Then
      Cells(?, "?") = Basic * 0.45
      Else
      Cells(?, "?") = 12022
      End If
      End Sub

  9. I am trying to find a max value from a list which belongs to another range of data. For example, when I have a data: A=1, B=2, C=3, D=4, E=5. If the list contains A, C, D, the output should be 4 (the maximum value).
    I made a formula that works (F column: A,B,C,D,E; G column: 1,2,3,4,5; J column: list)as below: =MAX(IF(F22:F29=J21,G22:G29),IF(F22:F29=J22,G22:G29),IF(F22:F29=J23,G22:G29),IF(F22:F29=J24,G22:G29))
    But I wonder, if there is any way to make the formula simpler.

  10. Please help. My Formula mentioned below is working correctly.
    =IF(I4>=9000, 2%, IF(I4>7500,1.75%, IF(I4>6000, "1.5%", IF(I4>4000, "1%", IF(I4=9000, 2%, IF(I4>7500,1.75%, IF(I4>6000, "1.5%", IF(I4>4000, "1%", IF(I4<4000, "0")))))), "0")

  11. Thank you - this was extraordinarily helpful! The IF & IF & IF was exactly what I needed to make my column work properly. I used it in Google Sheets and it worked like a charm!

  12. Afternoon, looking for some help with trending some date with date ranges. Have a data set with a lot of fluid data from multiple people and downloads. I need to 'Snap shot' the data in specific cells to track progress quickly for a trending report week on week. Complete a large search on the net but it I can not find anything the help with my problem. My current formula looks back at last weeks results which is misleading the data. Currently I have to manually over write the formula result each week manually so the data is retained and not re calculated, or over written. Any help appreciated..

  13. hi, i have 3 different if formulas that works when entered separately. However, when i tried to combine them, the result shows "FALSE".

    =IF(E3="PREVIEW 1",IF(N3>=11,30,IF(AND(N3>=10,N3=9,N3=12,30,IF(AND(N3>=11,N3=10,N3=14,30,IF(AND(N3>=13,N3<14),24,IF(N3=13,18,""))))))))))))

  14. Please help me get the formulae for the below Ms excel problem. I need the card rate to appear automatically on the 4th column when the amount of Fixed Deposit (in millions), period of fixing (in days) & interest offered (%) is given. The card rates are given below.

    FD(Mns) Days Int Offered(%) Card Rate (%)
    2.65 31 7.50
    11.34 91 7.50
    64.21 181 8.00
    178.58 365 8.75

    CARD RATE
    Days 10Mn50 Million
    30 to 90 6.00 6.50 7.00
    90 to 180 6.50 7.00 7.25
    181 to 364 7.00 7.25 7.75
    365 to 730 7.25 7.75 8.25

  15. '=IF(AND(F9>0,F9=11,F9<=15),30,IF(F9<15,25,0)))

    1. =IF(AND(F9>0,F9=11,F9<=15),30,IF(F9<15,25,0)))

  16. @Nishith Rana try:
    =IF(AND(F9>0,F9=11,F9<=15),30,IF(F9<15,25,0)))

  17. =IF(0<F9<=10,45,IF(11<=F9<=15,30,IF(15<F9,25,0)))
    THIS WONT WORK. HOW TO CORRECT THIS??

  18. I run a badminton booking spreadsheet with 7 named players (as column headings in row 2) and I want to identify the first 4 people who have said "YES" (in row 3), working from the left. I have nested IFs, but I want to stop trying after I have achieved the 4th YES (because you can only get 4 player on a badminton court!).
    This:
    =CONCATENATE("This week it's ",
    IF(C3="YES","me, ",""),
    IF(D3="YES",$D$2,""),IF(D3="YES",", ",""),
    IF(G3="YES",$G$2,""),IF(G3="YES",", ",""),
    IF(I3="YES",$I$2,""),IF(I3="YES",", ",""),
    IF(J3="YES",$J$2,""),IF(J3="YES",", ",""),
    IF(K3="YES",$K$2,""),IF(K3="YES",", ",""),
    IF(L3="YES",$L$2,""))
    gives
    "This week it's me, Roger, Sanath, Agnelo, Greg, Alec"
    which is 6 names because José in column D had said "NO".
    I would like the result to read
    "This week it's me, Roger, Sanath, Agnelo".
    I think the more gramatically correct
    "This week it's me, Roger, Sanath and Agnelo"
    might be too much of a challenge!
    Any ideas please?

    1. Hi Guy,
      What if all the players reply in the affirmative? Will it be possIble to pick only four of them for a game without upsetting the others? If random selection sounds good to you, I can suggest applying a formula that will bring the names of those who want to take part (Step 1) and turning the values received into a 'Custom list' to delegate Ablebits' 'Random Generator' to take an unbiased decision (Step 2). If you like the idea, this is the formula which is needed in Step 1:

      =IF($3:$3="YES", CHOOSE(1, $2:$2), "")

  19. FYI =IF(G39="","",IF(J39=G39,"Contact individual",IF(M39="","",IF(M39<=J39,"Returned","Contact individual")))))

  20. Hello please could you wizards advise on the following:
    =IF(G40="","",IF(J40=G40,"Contact individual",IF(M40="","",IF(J40>=M40,"Returned","Contact individual")))))
    I require a nest IF (if think)
    I have three dates and three different document status outcomes depending on the sequence below.
    If the issue date is is filled in only, then the status shall be "in circulation".
    if there is now a document withdrawal date in the next cell that the is greater or equal to the issue date, the value shall be "Contact individual".
    If the return date value is missing from the required cell then the status shall remain as "Contact individual", but if a date is entered into the withdrawal date cell the status then the status is to return "Returned"
    Please Help Friends

  21. I need to do an IF statement to get a range for:
    Volumes Greater than and equal to 2,000,000
    Volumes Less than 2,000,000 but greater than and equal to 200,000
    Volumes less than 200,000 but greater than and equal to 500
    Volumes less than and equal to 500

  22. I just want to say thank you. I was able to create an if-choose on my excel thanks

  23. Awesome article. I switched nested ifs for Lookup - made it so much easier. Also now I can go to the lookup table and change values without having to copy paste the formula again. Thanks....

  24. I need help in defining the reorder level using "IF" or any other formula in excel
    Column A = Shortage = 18500
    Column B = MOQ = 5000
    Column C = Reorder level = ?
    I would like to calculate the reorder level as follows :-
    (ie. Reorder level should be = to MOQ if shortage is less than MOQ
    OR Reorder level should be 20000 if shortage is between 15001 & 20000
    ie. Reorder level should be in multiples of MOQ but > shortage
    Kindly confirm how to use "IF" formula or any other formula in excel

    1. Tony,
      You do not need an IF function for this.
      Try:
      =CEILING(shortage, 5000)

      This will round your shortage number up to the next 5000.

      K

      1. Thanks a lot. it did work

  25. Error in your explanation of the SWITCH function. Line 1, you use SWIFT. I expect you mean SWITCH. #yourewelcome

    1. Of course, I meant SWITCH. Fixed, thank you!

  26. I have a formula I am trying to use for Overbillings and underbillings, each a separate column. If I use one column the formula looks like this:
    =IF([@[% Comp]]<30%,[@[Earned Cost]],[@[% Comp]]*[@[Contract Amount]])-[@Billed]
    but I want it to give the result of zero if the answer to this in the overbillings is over zero. What do i add?

  27. I am attempting to create a formula with IF statements.
    Here it is:
    G6 =TODAY() which inputs today's date.
    J6 If "Yes" is selected
    L6 will input TODAY()+7
    =IF(J6="Yes",G6=TODAY()+7) the result will go into L6
    Thank you

  28. I am attempting to create a dynamic table where the value in one cell makes another equal a 3rd cell plus the data in another cell. So for example, =IF(F2=P7,G2+Q7,"-") I can get it to work with that one---but I need to nest that statement with 10+ others of the same type (=IF(f2=P8,G2+Q8) etc etc (pulling data from a table). I'm lost.

  29. Not working. Please help please. I need to use 16 conditions for if statement but as you see, it is only 10 and not working. It said that "this formula uses more levels of nesting than you can use in the current file format". Anyone please.

    Thanks!

    =IF(S10>=95,20, IF(S10=94,19, if(s10=93,18, if(s10=92,17, if(s10=91,16, if(s10=90,15, if(s10=89,14, if(s10=88,13, if(s10=87,12, if(s10=86,11))))))))))

    1. I know this is kind of late, but try this:

      =IF(S10>=95,20, IF(and(S1085),s10-75,))

      1. For some reason that did not format correctly. I will try it one more time:

        =IF(S10>=95,20,IF(and(S10 85),s10-75,))

  30. Can I use nested IF to do the following :
    I have a column with three possibilities entered in the cells : ABC DEF GHI

    the next column in the contagious cell needs a number based on the above so that :
    ABC would be 123
    DEF would be 456
    GHI would be 789

  31. I have 2 work sheets, the first one named Property 1 and the 2nd one named summery.
    In the first sheet I have expenses listed by date, amount and category. the categories are Repairs,Labor,Materials,Transport,Advertising and Commission.
    I would like to sum each category monthly (Jan,Feb.....) and display the total on the Summery sheet.

  32. I'm trying to make a formula along the lines of if D3>= 2300 multiply by J3, once 2300 is exceed the difference should be multiplied by K3. Is this possible?

  33. Rustin.
    Your formula is missing the condition. If 'UTILITY Rates'!A2:A13 equal, larger, contains, etc

  34. My formula wont work, can anyone see where I am going wrong?
    =IF('UTILITY Rates'!A2:A13,'Utility Score Card'!C1,"'UTILITY Rates'!C2")

  35. Hello. I have look different ways, but I'm running out of time to complete a project I'm working on. I have a table like this, is a changing pattern, so there is not actually a pattern, but there are some blank cells in between the text in Column A. In Column be I have tax names, which is just next. I need to be able to concatenate a formula with if or I don;t know to be able to concatenate tax names on the row with out blanks, I need to delete the blanks but have that information in every text
    A B C
    Text1 tax1 tax1,tax2
    blank tax2 ------------
    text2 tax1 tax1,tax2
    blank tax2 --------------
    text3 tax1 tax1
    text4 tax1 tax1
    text5 tax1 tax1
    text6 tax1 tax1,tax2,tax3,tax4,tax5
    blank tax2 --------
    blank tax3 --------
    blank tax4 ---------
    blank tax5 -------
    text7 tax1 tax1,tax2,tax3,tax4
    blank tax2 ------------
    blank tax3 ------------
    blank tax4 -------------
    text8 tax1 tax1
    text9 tax2 tax2
    text10 tax3 tax3,tax2
    blank Tax2 ---------
    test11 tax1 tax1

  36. I'm having trouble with this formula. I have three conditions and they need to all be true to return "TRUE". If any are not true, it should return "FALSE". Here's what I've tried now, which does not work.
    =IFS(C:C="CSD_SERVICES", "TRUE", (K:K=0,"TRUE", (O:O="","TRUE","FALSE")))
    I've tried probably 25 different iterations but so far none returns the correct answer.

    1. Hi,
      It seems to me that any of the two formulas below can help you with your task:

      =IF(AND(C:C="CSD_SERVICES", K:K=0, O:O=""), "TRUE", "FALSE")

      =IFS(AND(C:C="CSD_SERVICES", K:K=0, O:O=""), "TRUE", TRUE, "FALSE")

      Please note that the necessity of one more 'TRUE' in the second formula is dictated by the syntax that the Excel IFS function has. Please press 'F1' if you feel like looking into it.

  37. if D4<=4,
    true E4*50%,
    False E4*100% but if
    E45%, true E4*100%,false 5%

  38. IF sentens:

    About getting % when buying

    Ih I by <= 4 pallets I´ll get 60%
    If I by 5 but les than 9 pallets I'll get 60% and from his price I get ekstra 5 %

    J=Amount of Pallets
    L= My price (pallets times price pr. pallet)
    M= 60 %

    This works perfectly:
    =IF(J6<=4;L6;L6-(IF(OR(J6=5;J6<=9);L6*(M6))))*(0,95)

    My problem comes when I add this:
    10 pallets but than 15 pallets I get 10 % (so first the 60 % and than an ekstra 10 after the first results.

    Like this:
    =IF(J6<=4;L6;L6-(IF(OR(J6=5;J6<=9);L6*(M6))))*(0,95);(IF(OR(J6=5;J6<=9);L6*(M6))))*(0,93);(IF(OR(J6=5;J6<=9);L6*(M6))))*(0,90)

  39. I have a summary of invoices (positive) and credit notes (negative).
    When I knock off against payment made it shows zero.
    I am trying to make an if statement which would show:-
    If zero - "-"
    If more than .01 - "OS" (invoice)
    If more than -.01 - "OS" (CN)

    The aim is to filter what are the unpaid invoice and CN to generate
    a payment proposal for those outstanding.

    Thanks

  40. I'm using a nested IF formula for conditional formatting and to evaluate if the date in a cell is equal to today =IF(I2=TODAY(),I2,IF(J2="NDA",J2,IF(J2="SDA",J2))). I want the formula to stop if the date in cell I2 is not equal today. The formula should stop at the first false argument however the formula evaluates all the arguments and returns a NDA which is the value in J2. I have evaluated the formula using Formula Auditing and I get a false value whether or not my first logical test is nested in an nested IF formula.

  41. I have the following data in C7:
    S123 - using formula will result in D7 as 80123
    SA123 - using formula will result in D7 as 81123
    E123 - using formula will result in D7 as 82123
    EA123 - using formula will result in D7 as 83123
    C123 - using formula will result in D7 as 84123
    CA123 - using formula will result in D7 as 85123
    U123 - using formula will result in D7 as 87123
    UA123 - using formula will result in D7 as 86123
    I tried to nest IF statements but excel is returning an error that maximum nesting is reached.
    FORMULA:
    =IF(LEFT(C7,2)="SA",CONCATENATE(81,RIGHT(C7,3)),IF(LEFT(C7,1)

    ="S",CONCATENATE(80,RIGHT(C7,3)),IF(LEFT(C7,2)="UA",CONCATENATE(87,RIGHT

    (C7,3)),IF(LEFT(C7,1)="U",CONCATENATE(86,RIGHT(C7,3)),IF(LEFT(C7,2)

    ="CA",CONCATENATE(85,RIGHT(C7,3)),IF(LEFT(C7,1)="C",CONCATENATE(84,RIGHT

    (C7,3)),"-"))))))

  42. Dear Sir,
    Kindly confirm one coloum are value 1-15, and secound Coloum value 15-30, if kindly confirm which sort out the value's of Below & uper.
    & kindly confirm vlookup formulas fungtions.

    1. Thanks for the reply.

      When a name is selected from H67,
      The result in H68 should be 000234-UMPT.

    2. I created a drop box of names in cell H67. I wanted my nested if statement to return some numbers and alphabets when a name is selected but it's not working.

      Eg.
      =IF(H67="M.ISAAC","000234-UMTP",IF(H67="D.MICHAEL","000678-UMPT",""))

      The statement is not working. What am I doing wrong?

      Do you offer classes online?

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)