COUNTIF непустых и непустых ячеек
В Google Sheets я хочу посчитать количество ячеек в диапазоне (C4:U4)
которые не пустые и не пустые. Подсчет непустых легко с COUNTIF
, Сложная проблема, кажется, в том, что я хочу рассматривать ячейки с одним или несколькими пробелами как пустые. (Мои пользователи продолжают оставлять пробелы в ячейках, которые не видны, и я трачу много времени на их очистку.)
=COUNTIF(C4:U4,"<>")
обрабатывает ячейку с одним или несколькими пробелами как непустую и считает ее. Я также пытался =COUNTA(C4:U4)
но это страдает от той же проблемы подсчета клеток с одним или несколькими пробелами.
Я нашел решение в stackru, помеченное как решение 95 людьми, но оно не работает для ячеек с пробелами.
После долгих чтений я придумал необычную формулу:
=COUNTIF(FILTER(C4:U4,TRIM(C4:U4)>="-"),"<>")
Идея в том, что TRIM
удаляет передние и конечные пробелы перед FILTER
проверяет, будет ли ячейка больше или равна дефису (самый низкий порядок печатаемых символов, которые я смог найти). FILTER
Затем функция возвращает массив в COUNTIF
функция, которая содержит только непустые и непустые ячейки. COUNTIF
тогда тесты против "<>"
Это работает (или, по крайней мере, "кажется" работает), но мне было интересно, пропустил ли я что-то действительно очевидное. Конечно, проблема скрытых пропусков очень распространена и существует с рассвета Excel и Google. Там должен быть более простой способ.
(Мой первый вопрос, поэтому прошу прощения за любые нарушения правил форума.)
3 ответа
Я нашел другой способ сделать это с помощью:
=ARRAYFORMULA(SUM(IF(TRIM($C4:$U4)<>"",1,0)))
Я все еще ищу более простой способ сделать это, если таковой имеется.
=COLUMNS(C4:U4)-COUNTBLANK(C4:U4)
Это подсчитает, сколько ячеек находится в вашем диапазоне (от C4 до U4 = 19 ячеек), и вычтет те, которые действительно "пустые".
Пробелы не будут учитываться COUNTBLANK
несмотря на свое название, которое действительно должно быть COUNTEMPTY
,
Я не знаю о Google. Но для Excel вы можете использовать эту формулу массива для нескольких смежных столбцов:
=ROWS(A1:B10) * COLUMNS(A1:B10)-(COUNT(IF(ISERROR(CODE(A1:B10)),1,""))+COUNT(IF(CODE(A1:B10)=32,1,"")))
Могу попробовать это, но я совсем не уверен в этом
=SUMPRODUCT(--(trim((substitute(A2:A5,char(160),"")))<>""))
- в Google Sheets кажется, что вы должны поместить char(160), чтобы соответствовать пробелу, введенному в ячейку?
Похоже, это связано с неразрывным пробелом и может также применяться к Excel - как объясняется здесь - предполагается, что вы также можете передать его через функцию CLEAN, чтобы исключить невидимые символы с кодами в диапазоне 0-31.
Это должно работать:
=countif(C4:U4,">""")
Я нашел это решение здесь:
COUNTA считает пустые (пустые) ячейки в новых электронных таблицах Google?
Пожалуйста, дайте мне знать, если это так.