Допустим, что в некой колонке нам нужно по условию отобразить заметный маркер вроде «●» или «✅». Также допустим, что внизу таблицы нам нужно сосчитать и вывести количество ячеек, в которых присутствует маркер.
Составляем вот такую простую таблицу с именами:
![](/images/posts/202208.blank-formula/10.frame.png)
Далее, в колонке «B» выводим маркер напротив имён, которые содержат более 5 букв:
![](/images/posts/202208.blank-formula/20.formula1.png)
Пока всё хорошо. Похоже, наша формула =IF(…,"●","")
вполне работает. Теперь сосчитаем ячейки с маркером (то есть, непустые ячейки) в колонке «B». Нам поможет функция COUNTA():
![](/images/posts/202208.blank-formula/30.counta.png)
Что мы видим? Почему-то вывелось 5, хотя визуально непустых ячеек всего две. Мы знаем, что COUNTA()
использует ту же логику, что и ISBLANK()
. Вероятно, ISBLANK()
по какой-то причине возвращает FALSE
для всех ячеек, а не только для тех, в которых находится маркер. Проверяем наше предположение:
![](/images/posts/202208.blank-formula/40.isblank.png)
Хммм… Везде FALSE
. Значит, значение ""
не является пустым. Не будем заниматься гаданием, а перейдём сразу к ответу.
По замыслу разработчиков Google Sheets значение
""
действительно не является пустым (blank). Трудно сказать, почему они так решили, но это факт. В документации на ISBLANK() об этом ни слова.
Чтобы вывести настоящее пустое значение, нужна формула IFERROR(0/0)
.
Любопытен метод, которым пустое значение изготавливается. По сути IFERROR() — защита от ошибки при расчёте значения. Мы специально делим на ноль, вызывая ошибку, которую тут же сами «ловим».
Правим формулу вывода маркера и смотрим:
![](/images/posts/202208.blank-formula/50.iferror.png)
Теперь всё в порядке.
Запомнили: для вывода пустого значения используем формулу IFERROR(0/0)
.