4. Nested Formulas
4.1. Index and Match
index and match are two separate functions that when used together in a nested formula,
can be a very powerful tool like vlookup and hlookup. These functions are as follows:
=index(array,row_num,col_num)
=match(lookup_value,lookup_array,match_type)
The index function looks at a group of cells and goes to the specified row and column and
returns the value of that cell. The match function searches for a value in a row or column
of cells and returns the position of that value.
Cells I6 and I7 demonstrates the use of index. The group of cells spans from A2 to
F11. The row and column specified are 4 and 5, respectively. Four rows and five columns
from A2 is cell E6 which has the value 1466854.
The first example for match, cell I10 searches for the number 7 in the column that spans
A2 to A17. 7 is in the 8th position of the array A2:A17 and is the value returned
in cell I9. The second example, cell I13, searches for the string Female Name in the
array A2:F2 and returns 4 as the position in I12.
Cell I2 has the formula:
=index(A2:F17,match(H3,A2:A17,0),match(H4,A2:F2,0))
Observe that inside the index function, there are two match functions. These two match
functions are used as the row_num and col_num parameters. They are also the same match
functions that were used in cells I10 and I13. When one or more functions are inside
another function, this is called nesting. Nesting formulas in excel is an advanced technique
allowing for complex operations of cells to determine an output.
4.2. Len, And, Or
In this example, the if, and, or, len, and concatenate functions will be used to
demonstrate a nested formula.
The and and or functions are logical functions that test two or more conditions simultaneously
and returns a value of either TRUE or FALSE. The len evaluates the number of characters in
a string or cell and returns that count as a number. Their forms are below:
=and(logical1,logical2,...)
=or(logical1,logical2,...)
=len(value)
The first nested formula in cell O3 is:
Analyzing this formula shows the outer most function is the if. Inside the if function, the
len function is used in the logical_test parameter to compare the number of letters in the male
name of row 3 to the female of row 3. The value_if_true parameter of the if function is
another if function.
This second if function tests to see if the number of population of male names minus the
population of surnames is greater than the population of female names minus the population of
surnames. Its value_if_true parameter concatenates the male name with the surname. If false,
the female name is concatenated with the surname.
The third if function is the first if function’s value_if_false parameter. This if
function compares length of the male and female names. If the male name has more characters,
than the female name, the male name is joined with the surname. If false, it joins the female name
with the surname.
It should be noted that nested formulas can get long, complicated and confusing very fast. Could the
formula in the previous example been written in a shorter way without the two if functions nested
and the same concatenation functions being repeated? As users gain more experience and learn more
functions in Excel, they will start to observe that the repetitive functions inside nested functions
can be simplified using and and or functions. Sometimes, it may be necessary to build the
formula like the previous example so that the formula below can be realized.
Notice the nested if statements have been removed. The formula above will concatenate the male name with the surname if the length of the male name is greater than the female name or if those lengths are equal and the difference in population of the male name and surname is greater than the population difference of the female name and surname.