Выводим количество незаполненных ячеек в колонке таблицы

Допустим, мы неспешно собираем какие-нибудь данные в таблицу. Например, от каждого жильца дома принимаем и записываем показания какого-нибудь прибора за прошедший месяц:

Поскольку в схеме замешаны люди, данные поступают крайне неравномерно: кто-то забыл, кто-то в отъезде и так далее. Неплохо бы знать, сколько ещё осталось незаполненных ячеек, чтобы, блин, поскорее добить эту чёртову таблицу и до следующего месяца забыть о её существовании.

На помощь приходит ARRAYFORMULA(), которая позволит нам сделать подсчёт одной формулой, без необходимости уродовать таблицу лишней колонкой:

Итак, готовая формула выглядит так:

=CONCATENATE("Ещё ", SUM(ARRAYFORMULA(IF(ISBLANK(C3:C7), 1, 0))))

Нужны пояснения? Их есть у меня. Разбираем изнутри:

  1. ISBLANK(<cell>) — возвращает TRUE, если ячейка пуста, иначе FALSE.
  2. IF(…, 1, 0)) — если выражение TRUE, возвращает 1, иначе 0. В нашем случае будет 1 если ячейка пуста.
  3. ARRAYFORMULA(FUNC(<cell>)) — позволяет вместо <cell> указать диапазон. Возвращает массив. В нашем случае это будет массив из 5 элементов C3:C7, каждый из которых 0 или 1.
  4. SUM(<array>) — суммирует.
  5. CONCATENATE("Ещё ", …) — делает текст в информационной ячейке человечнее, что-ли… Лично меня «Ещё 2» будет подбадривать, а безликое «2» — отвлекать.

Вроде всё.

Ах, да, откуда в списке Берия? Да просто перечисление фамилий «Иванов, Петров, Берия!» — нечто вроде мема в узком кругу ограниченных людей, помнящих одноимённую репризу из КВН начала 2000-х.

Дополнение:

Парой месяцев позже попалась мне на глаза функция COUNTBLANK(), которая считает количество пустых ячеек. Так что более простой путь к заветному «Ещё 2» может быть и таким:

=CONCATENATE("Ещё ", COUNTBLANK(C3:C7))

Текст выше всё равно оставляю, потому что он вполне удачно демонстрирует полезность ARRAYFORMULA() как универсального средства.