How to calculate average last N values in a table in Excel

To calculate the average for the last N values n an Excel table (i.e. last 3 rows, last 5 rows, etc.) you can use the AVERAGE function together with the INDEX and ROWS functions. See example below:

Formula

=AVERAGE(INDEX(table[column],ROWS(table)-(N-1)):INDEX(table[column],ROWS(table))) Explanation

In the example shown, the formula in F5 is:

=AVERAGE(INDEX(Table1[Sales],ROWS(Table1)-(F4-1)):INDEX(Table1[Sales],ROWS(Table1)))

How this formula works

This formula is a good example of how structured references can make working with data in Excel much easier. At the core, this is what we’re doing:

=AVERAGE(first:last)

where “first” is a reference to the first cell to include in the average and “last” is a reference to the last cell to include. The result is a range that includes the N cells to average.

Also See:   Find most frequent text within a range with criteria in Excel

To get the first cell in the range, we use INDEX like this:

INDEX(Table1[Sales],ROWS(Table1)-(F4-1))

The array is the entire Sales column, and row number worked by subtracting (n-1) from total rows.

In the example, F4 contains 3, so the row number is 10-(3-1) = 8. With a row number of 8, INDEX returns C12.

Also See:   3D sum multiple worksheets in Excel

To get the last cell we use INDEX again like this:

INDEX(Table1[Sales],ROWS(Table1))

There are 10 rows in the table, so INDEX returns C14.

The AVERAGE function then returns the average of C12:C14, which is \$78.33.