У меня есть таблица, где значение в столбце B является средним значением некоторых предыдущих значений в столбце A.

Я хочу использовать именованный диапазон "DaysToCount", чтобы варьировать количество строк, используемых для среднего. Я попытался использовать ADDRESS и CONCATENATE для создания функции AVERAGE, например:

AVERAGE(CONCATENATE(ADDRESS(ROW()-DaysToCount+1,2),":B",ROW())))

Это дает мне ошибку #VALUE. Используя инструмент формулы Evaluate, я вижу, что он оценивается примерно так:

AVERAGE("B3:B12")  

Что я хочу это:

AVERAGE(B3:B12)

Есть ли способ исправить это - или я должен попробовать другой подход?

2 ответа2

0

Я смог построить ссылку на диапазон, который мне нужен, используя INDIRECT:

AVERAGE(INDIRECT("B" & ROW()-DaysToCount+1 & ":B"&ROW()))
0

Короткий путь что-то вроде этого. Давайте предположим, что эта формула будет в B7:

=AVERAGE(OFFSET(B7,(-1 * (DaysToCount-1)),-1,DaysToCount))

Мне это не всегда нравится из-за явной ссылки на ячейку. Но избавление от этого требует немного больше усилий. Вы можете заменить его одним из методов здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .