Exceljet

Quick, clean, and to the point

Average last 5 values

Excel formula: Average last 5 values
Generic formula 
=AVERAGE(OFFSET(A1,COUNT(A:A),0,-N))
Explanation 

To average the last 5 data points, you can use the AVERAGE function together with the COUNT and OFFSET functions. You can use this approach to average the last N data points: last 3 days, last 6 measurements, etc. In the example shown, the formula in F6 is:

=AVERAGE(OFFSET(C3,COUNT(C:C),0,-5))

Note: a negative value for height won't work in Google sheets. See below for more information.

How this formula works

The OFFSET function can be used to construct dynamic rectangular ranges based on a starting reference and given rows, columns, height, and width.  The rows and columns arguments function like "offsets" from the starting reference. The height and width arguments (both optional), determine how many rows and columns the final range includes. For this example, OFFSET is configured like this:

  • reference = C3
  • rows = COUNT(A:A)
  • cols =  0
  • height = -5
  • width = (not provided)

The starting reference is provided as C3 the cell above the actual data. Since we want OFFSET to return a range originating from the last entry in column C, we use the COUNT function to count all values in column C to get the required row offset. COUNT counts only numeric values, so the heading in row 3 is automatically ignored.

With 8 numeric values in column C, the OFFSET formula resolves to:

OFFSET(C3,8,0,-5)

With these values, OFFSET starts at C3, offsets 8 rows to C11, then uses -5 to extend the rectangular range up "backwards" 5 rows to create the range C7:C11.

Finally, OFFSET returns the range C7:C11 to the AVERAGE function, which computes the average of values in that range.

Excel vs. Sheets

An odd quirk with this formula is that it won't work with Google Sheets, because the OFFSET function in Sheets won't allow a negative value for height or width arguments. Excel documentation also states height or width can't be negative but as near as we can tell, negative values have worked fine since Excel 5, which shipped in the early 1990's. 

To work around this problem in Sheets, or to avoid negative height or width values in Excel, you can use:

=OFFSET(C4,COUNT(C:C)-5,0,5)

Notice C4 is the starting reference in this case. The general form is:

=AVERAGE(OFFSET(A1,COUNT(A:A)-N,0,N))

where A1 is the first cell in the numbers you want to average.

Author 
Dave Bruns

Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.