2016-09-12 8 views
-1

В Google Таблицах Я хочу подсчитать количество ячеек в диапазоне (C4:U4), которые являются не пустыми и не пустыми. Подсчет непустого легко с COUNTIF. Кажется, что сложная проблема заключается в том, что я хочу обрабатывать ячейки с одним или несколькими пустым как пустые. (Мои пользователи оставляют пробелы в ячейках, которые не видны, и я трачу много времени на их очистку.)COUNTIF непустых и непустых ячеек

=COUNTIF(C4:U4,"<>") рассматривает ячейку с одной или несколькими пробелами как непустую и подсчитывает ее. Я также пробовал =COUNTA(C4:U4), но это связано с той же проблемой подсчета ячеек с одним или несколькими пробелами.

Я нашел решение в stackoverflow, помеченное как решение на 95 человек, но оно не работает для ячеек с пробелами.

После долгого чтения я пришел с причудливой формулой:

=COUNTIF(FILTER(C4:U4,TRIM(C4:U4)>="-"),"<>") 

Идея заключается в том, что TRIM удаляет начальные и конечные пробела перед тем FILTER тестирует клетку, чтобы быть больше или равен дефисом (я мог бы найти самый низкий тип печатных символов). Затем функция FILTER возвращает массив функции COUNTIF, которая содержит только непустые и непустые ячейки. COUNTIF, тогда тесты против «<» «

Это работает (или, по крайней мере,« кажется »работать), но мне было интересно, пропустил ли я что-то действительно очевидное. Разумеется, проблема скрытых пробелов очень распространена и существует с тех пор, как настало время для Excel и листов google. должен быть более простой способ.

(Мой первый вопрос так извинения за любые нарушения правил форума.)

+0

Что такое ячейка * 'с одним или несколькими пустым * *? – Jeeped

+0

Вы имеете в виду клетку с ничего в ней и ячейку с пробелом в ней? – Brian

+0

@ Jeeped Вы спрашиваете: «Что такое ячейка» с одним или несколькими пустым ». Ячейка может быть пустой (никаких данных вообще) или может содержать пробел, введенный одним нажатием клавиши пробела. –

ответ

1

Может попробовать это, но я не совсем уверен, что это

=SUMPRODUCT(--(trim((substitute(A2:A5,char(160),"")))<>"")) 
  • кажется в Google Таблицах, что вы нужно ли поместить символ (160) в соответствие с пробелом, введенным в ячейку?

Кажется, это происходит из-за неразрывный пробел и, возможно, обратиться к Excel также - как объяснено here - предположение, что вы могли бы также передать его через функцию очистки для устранения невидимых символов с кодами в диапазоне от 0 -31.

+0

Хорошее (и краткое) решение, Том! Вы можете использовать это для нескольких столбцов. – Brian

+0

Спасибо! Я думаю, что я понимаю, что сломать и не сломать пробелы немного лучше сейчас :-) –

+0

@TomSharpe Спасибо. Я пробовал вашу формулу, и это сработало, но я должен признаться, что понятия не имею, почему. Я не знаком с SUMPRODUCT, и я не понимаю двух тире. Можете ли вы объяснить, как это работает? –

1

Я не знаю о Google. Но для Excel можно использовать эту формулу массива для нескольких смежных столбцов:

=ROWS(A1:B10) * COLUMNS(A1:B10)-(COUNT(IF(ISERROR(CODE(A1:B10)),1,""))+COUNT(IF(CODE(A1:B10)=32,1,""))) 
+0

Это хорошо работает и в Google Таблицах, если вы изменяете 32 до 160 или, возможно, используете MOD (CODE (A1: B10), 128) = 32 для покрытия обоих типов пространства –

+0

@Brian Спасибо. Я пробовал, и это не работает для меня. Возможно, это потому, что у меня есть только одна строка в моем диапазоне (C4: U4), и это мои ячейки содержат текст. Это, конечно, не более простая формула, чем то, что я использую сейчас. Именно это я и искал. –

1

я нашел еще один способ сделать это с помощью:

=ARRAYFORMULA(SUM(IF(TRIM($C4:$U4)<>"",1,0))) 

Я все еще ищу более простой способ сделать это, если один доступен.

Смежные вопросы