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?

Пожалуйста, дайте мне знать, если это так.

Другие вопросы по тегам