Формула Excel: определение диапазона на основе значения ячейки -

Общая формула

=SUM(firstcell:INDEX(data,rows,cols))

Резюме

Чтобы определить диапазон на основе значения в другой ячейке, вы можете использовать функцию ИНДЕКС. В показанном примере формула J7 выглядит так:

=SUM(C5:INDEX(data,J5,J6))

где «данные» - именованный диапазон B5: G9.

Объяснение

Эта формула зависит от определенного поведения INDEX - хотя кажется, что INDEX возвращает значение в определенном месте, на самом деле он возвращает ссылку на это местоположение. В большинстве формул вы не заметите разницы - Excel просто оценивает ссылку и возвращает значение. Эта формула использует эту функцию для создания динамического диапазона на основе ввода листа.

Внутри функции суммы первая ссылка - это просто первая ячейка в диапазоне, который охватывает все возможные ячейки:

=SUM(C5:

Чтобы получить последнюю ячейку, мы используем ИНДЕКС. Здесь мы указываем INDEX именованный диапазон «data», который представляет собой максимально возможный диапазон значений, а также значения из J5 (строки) и J6 (столбцы). INDEX не возвращает диапазон, он возвращает только одну ячейку в этом месте, E9 в примере:

INDEX(data,J5,J6) // returns E9

Исходная формула сводится к:

=SUM(C5:E9)

который возвращает 300, сумму всех значений в C5: E9.

Формула в J8 почти такая же, но для вычисления среднего используется СРЕДНЕЕ вместо СУММ. Когда пользователь изменяет значения в J5 или J6, диапазон обновляется, и возвращаются новые результаты.

Альтернатива со смещением

Вы можете построить аналогичные формулы с помощью функции СМЕЩЕНИЕ, показанной ниже:

=SUM(OFFSET(C5,0,0,J5,J6)) // sum =AVERAGE(OFFSET(C5,0,0,J5,J6)) // average

OFFSET предназначен для возврата диапазона, поэтому формулы, возможно, проще для понимания. Однако СМЕЩЕНИЕ является непостоянной функцией и может вызвать проблемы с производительностью при использовании в более крупных и сложных рабочих листах.

Интересные статьи...