Условная агрегация
Пусть есть таблица со всеми сотрудниками компании. Как найти общее число инженеров? С этой задачей справляется функция COUNTIFS (в формулах используются табличные ссылки):
=COUNTIFS(Сотрудники[Должность];"Инженер")
Мы передаём в функцию столбец «Должность» и просим посчитать количество ячеек, содержащих значение «Инженер».
В отличие от поиска, можно легко комбинировать несколько условий. Следующая формула считает количество инженеров в Москве:
=COUNTIFS(Сотрудники[Должность];"Инженер";Сотрудники[Город];"Москва")
Если нужно посчитать не количество, а сумму окладов всех инженеров, пригодится функция SUMIFS:
=SUMIFS(Сотрудники[Оклад];Сотрудники[Должность];"Инженер")
Здесь первым параметром передаётся столбец, который будем суммировать, а дальше условия для выборки. Аналогично работают функции MINIFS и MAXIFS.
Иногда возникает необходимость в более сложной агрегации. Например, нужно склеить имена инженеров через запятую. Специальных формул для такой операции нет. Как быть? В такой ситуации можно сначала выбрать нужные записи с помощью FILTER и потом склеить через JOIN:
=JOIN(", ";FILTER(Сотрудники[Имя];Сотрудники[Должность]="Инженер"))
Важное отличие: в функциях выше столбец и значение передавались отдельными аргументами, здесь же они указываются через знак равенства.
