Усреднение смещенных ячеек будущих данных в Excel - PullRequest
0 голосов
/ 25 июня 2018

В моей текущей электронной таблице есть целые числа, которые я бы хотел усреднить в каждой 9-й ячейке столбца K, начиная с K10.Итак, сейчас моя текущая формула гласит:

=AVERAGE(K9,K18,K27)

Я бы хотел, чтобы эквалайзер учел [K36, K45, K54], даже если эти ячейки еще не заполнены.

IПолагаю, я могу использовать что-то вроде:

*pseudocode*
Find the average of K1+(K1+9)

*Attempt*
\\
=AVERAGE(OFFSET(K10,9,,,)
\\

Я думаю, что мне не хватает полного знания о СМЕЩЕНИИ, или я думаю, что может быть в порядке AverageIF ()?Я потратил, вероятно, час на это

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Эта формула массива будет возвращать каждую 9-ю ячейку, начиная с K10, и расширяться для включения новых данных по мере их ввода:

=AVERAGE(INDEX(K:K,N(IF({1},(ROW(A1:INDEX(A:A,(MATCH(1E+99,K:K)-9)/9))-1)*9+10))))

-9 - это число строк, в которое нужно получить начальную строкустрока 1 10-9=1

/9 и *9 - это интервал

+10 - начальная строка.

Подтвердите с помощью Ctrl-Shift-Ввод вместо ввода при выходе из режима редактирования

0 голосов
/ 25 июня 2018

Если вы можете добавить столбец в качестве флага, вы можете использовать функцию MOD для проверки номера строки следующим образом:

=MOD(ROW(K10)+1,9) - это возвращает 0 для каждой 9-й ячейки, начиная с K10

Тогда вы можете использовать функцию AVERAGEIF для усреднения, если функция MOD возвращает 0.

Если вы не можете добавить флаг, вам может потребоваться использовать формулу массиванапример:

=AVERAGE(IF(MOD(ROW(K10:K30)-1,9)=0,K10:K30))

Вы можете активировать формулу массива, нажав Ctrl+Shift+Enter.Если все сделано правильно, фигурные скобки ({}) будут помещены вокруг формулы в строке формул.

РЕДАКТИРОВАТЬ:

** оба следующих метода считают пустые ячейки как 0

Эта формула массива будет работать для столбца K, если в каждой строке столбца K есть значение:

=AVERAGE(IF(MOD(ROW(INDIRECT("K10:K" & COUNTA(K:K)+10))-1,9)=0,INDIRECT("K10:K" & COUNTA(K:K)+10)))

или если в столбце K нет непрерывных данныхэтот метод получает последнюю заполненную ячейку.

=AVERAGE(IF(MOD(ROW(INDIRECT("K10:K" & MAX((K:K<>"")*(ROW(K:K)))))-1,9)=0,INDIRECT("K10:K" & MAX((K:K<>"")*(ROW(K:K))))))

...