Charisse
Charisse

Reputation: 21

Need excel average formula for a dynamic range

This is what my table looks like:

Please note that I cannot change the position of any data here. This is a table that will continuously expand as I add new columns to the right and new rows at the bottom.

I need a formula in Column A that will calculate the average of all data in the same row as where the formula is and the formula has to autoupdate whenever I add new columns to the right of the last column. For example, in cell A64 is the formula that will average C64 to E64. when I add new data in F64, I want A64 to autoupdate to include that new cell in the computation.

I tried

=AVERAGE(INDIRECT("C64:"&ADDRESS(ROW(),COLUMN()+4)))

but it did not autoupdate when I added new data in F64. I am not an excel expert and I mostly learn by googling, but this one is taking me forever. Please help.

Upvotes: 0

Views: 1006

Answers (1)

QHarr
QHarr

Reputation: 84465

This is where OFFSET and COUNTA are your friends, In A2 and fill down:

=AGGREGATE(1,6,OFFSET(C2,,,1,COUNTA(C2:XFD2)))

I have used AGGREGATE function with argument 1 for Average and argument 6 to ignore error values in the range. COUNTA resizes the array from C2 to the end of the populated area (allowing for error values).

You can also use INDEX with COUNTA

=AGGREGATE(1,6,$C$2:INDEX(C2:XFD2,COUNTA(C2:XFD2)))

Or INDEX with MATCH. In the example below, I have reduced the column end point to AA, rather than XFD (which is the last column in 2016). If you know a realistic number of columns that will ever be filled you can use that as your end point reference to reduce the amount of work your dynamic formulas are doing.

=AGGREGATE(1,6,$C$2:INDEX(C2:AA2,MATCH(99^99,2:2)))

Upvotes: 1

Related Questions