
Загальна формула
=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 як аргумент масиву:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
Функція SEQUENCE використовується для генерації значення номера рядка та повертає масив із 3 числами,
SEQUENCE(3,1,1,1) // returns (1;2;3)
На даний момент ми можемо записати частину формули INDEX таким чином:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX повертає значення, пов’язані з першими 3 рядками масиву, до функції SUM:
=SUM((6;5;7)) // returns 18
і SUM повертає суму цих значень як кінцевий результат у G5. Коли формула копіюється до комірки G6, результатом є сума перших 3 балів Хейлі.
Підсумуйте останні n відповідних значень
Щоб підсумувати останні n відповідних значень, ви можете адаптувати формулу так:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Ця формула пояснюється тут більш докладно.