[Year 12 IPM] Nested IFs
Mark Kelly
kel at mckinnonsc.vic.edu.au
Fri May 20 12:29:31 EST 2005
The nested IF issue grabbed my curiosity. Went Googling to try and find
a really good case of where a nested IF was essential.
My first Googling found...
http://www.cpearson.com/excel/nested.htm
It presents the case of...
> Suppose we wanted an nested IF formula to test:
> IF A4 = 1 Then 11
> Else If A4 = 2 Then 22
> Else If A4 = 3 Then 33
> Else If A4 = 4 Then 44
> ...
> Else If A4 = 13 Then 130 Else "Not Found"
The author then creates a massively complicated IF solution.
This is an example of where you just would not use nested IF at all.
You would use VLOOKUP. Since the lookup values are simply 1 to 13, just
use:
IF A4= RETURN VALUE
1 11
2 22
3 33
4 44
.. ..
13 Not found
(I hope the tabs above survive MIME encoding and the numbers don't crash
into each other)
Name the above range "table" and use =VLOOKUP(A4,table,2)
Far better than twisting yourself up with IF...
-----------------------------------------------------------------------------
Hmmm, just found the CHOOSE() function which lets you easily look up
values for an index value e.g.
=CHOOSE(daynumber,"Sunday","Monday","Tuesday"... etc)
That may be useful too!
-----------------------------------------------------------------------------
---------------------------------------------------------------------------
Second Google led to...
http://spreadsheets.about.com/cs/excelfunction1/a/nestediffunct.htm
It says...
> To illustrate, let's say you have a spreadsheet that you use to keep
> track of your sales force. The rate of commission each sales person
> receives is based on the amount of sales they have generated for that
> month. For example:
> From $1 to $10 earns 10% commission
> From $11 to $100 earns 15% commission
> Anything over $100 earns 20% commission
> Assuming the amount of sales is in column B, starting at row 4, and
> that the column containing the commission is formated for percentages,
> this is what the nested IF function would look like:
> =IF(B4<=10,"10", if(b4<=100, "15", "20"))
Once again, a simple VLOOKUP is far superior.
FROM TO COMMISSION
1 10 10%
11 100 15%
101 20%
Name the range (excluding headings) "table" and then use
=VLOOKUP(sales,table,3)
-------------------------------------------------------------------
Note the method I now use for setting out lookup tables. I used to get
mental cramps working out the cutoff values for categories. Now I use
"From" and "To" columns to make it much easier to determine the numbers.
The second column is actually never used by the lookup, but it helps
my brain. Life is som much more pleasant now :-)
---------------------------------------------------------------------
Example 3, found at
http://www.techonthenet.com/excel/formulas/if_nested.htm
Question: In Excel, I need to write a formula that works this way:
> If (cell A1) is less than 20, then times it by 1,
> If it is greater than or equal to 20 but less than 50, then times it by 2
> If its is greater than or equal to 50 and less than 100, then times
it by 3
> And if it is great or equal to than 100, then times it by 4
> Answer: You can write a nested IF statement to handle this. For
example:
> =IF(A1<20, A1*1, IF(A1<50, A1*2, IF(A1<100, A1*3, A1*4)))
Once again, it's far easier to use
From To Multiplier
0 19 1
20 49 2
50 99 3
100 4
Name the range "table" (or whatever)
In the target cell just put =a1 * VLOOKUP(A1,table,3)
---------------------------------------------------------------
Example 4, found at
http://www.techonthenet.com/excel/macros/if_custom.htm
> Question: I have a formula in Excel that I am using to test for 7
> conditions, and each condition if true will return a different value.
> However, I now need to test a total of 12 possible values. The
> limitation of the nested IFs is that you can only nest up to 7. Is
> there an alternative to this formula to test so that I can test for 12
> values instead of 7?
>
=IF(A1="10X12",120,IF(A1="8x8",64,IF(A1="6x6",36,IF(A1="8x10",80,IF(A1="14x16",224,IF(A1="9x9",81,IF(A1="4x3",12)))))))
> Answer: There is no built-in alternative formula in Excel, but you
> could write your own function in VBA and then call this new function
> instead.
Or you could (again) use vlookup...
10x12 120
14x16 224
4x3 12
6x6 36
8x10 80
8x8 64
9x9 81
Sort by the first column so they're sorted alphabetically. Call it
"table" and use =VLOOKUP(a1,table,2)
----------------------------------------------------------------------------
In short: I very rarely use nested IFs because often there are alternatives.
Does anyone know of a neat example of using nested IFs wisely?
--
Mark Kelly
Manager, Information Systems
McKinnon Secondary College
More information about the ipm
mailing list