Формула Excel: суммировать первые n совпадающих значений -

Содержание

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

=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))

Резюме

Чтобы суммировать первые n совпадающих значений в наборе данных, вы можете использовать формулу, основанную на функциях ФИЛЬТР и ПОСЛЕДОВАТЕЛЬНОСТЬ. В показанном примере формула в ячейке G5, скопированная вниз, имеет следующий вид:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))

где имя (B5: B16) и оценка (C5: C16) являются именованными диапазонами.

Объяснение

Функция ФИЛЬТР, новая в Excel 365, может помочь упростить некоторые сложные задачи с формулами.

В этом примере цель состоит в том, чтобы суммировать первые 3 балла Джейка и Хейли, исходя из порядка их появления в таблице. Всего набрано 12 оценок, а у Джейка и Хейли по 6 оценок.

Работая изнутри, первая задача - создать список оценок для каждого имени. Это делается с помощью функции ФИЛЬТР:

FILTER(score,name=F5)

С «Джейком» в ячейке F5 результатом будет массив со всеми оценками Джейка, подобными этому:

(6;5;7;7;6;8)

Этот массив возвращается в функцию ИНДЕКС в качестве аргумента массива:

INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))

Функция ПОСЛЕДОВАТЕЛЬНОСТЬ используется для генерации значения номера строки и возвращает массив с 3 числами,

SEQUENCE(3,1,1,1) // returns (1;2;3)

На этом этапе мы можем записать часть формулы ИНДЕКС следующим образом:

INDEX((6;5;7;7;6;8),(1;2;3))

ИНДЕКС возвращает значения, связанные с первыми 3 строками в массиве, функции СУММ:

=SUM((6;5;7)) // returns 18

а СУММ возвращает сумму этих значений в качестве окончательного результата в G5. Когда формула копируется в ячейку G6, результатом является сумма первых трех оценок Хейли.

Суммировать последние n совпадающих значений

Чтобы суммировать последние n совпадающих значений, вы можете адаптировать формулу следующим образом:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))

Эта формула объясняется более подробно здесь.

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