2009-04-21 5 views
61

Как мне получить countifs, чтобы выбрать все непустые ячейки? У меня есть два других критерия, поэтому использование только counta - это не вариант.Как получить countifs для выбора всех непустых ячеек в Excel?

Используя istext, результат дает 0, всегда. Excel дает ошибку при использовании <>"" в качестве критерия.

ответ

91

Использовать критерии "<>". Он будет считать все, что не является пустой ячейкой, включая #NAME? или #DIV/0!. Что касается того, почему это работает, проклятый, если я знаю, но Excel, похоже, это понимает.

Примечание: работает хорошо в Google Spreadsheet слишком

+0

Я пробовал это сам и выяснил, что он работает, но, как вы также указываете, нет никакого смысла, почему он это принимает. Мне пришлось добавить еще один критерий, чтобы избежать того, что показывают мои vlookups. – Kim

+4

Примечание: хорошо работает в Документах Google – LeonardChallis

+0

Вау! Этот ответ по-прежнему остается спасателем 7 лет спустя - и содержит информацию, которую я не могу найти в документах Microsoft. Благодаря!! – AAT

6

Если вы используете несколько критериев, и хотите, чтобы подсчитать количество не пустых ячеек в определенном столбце, вы, вероятно, хотите посмотреть на DCOUNTA.

например
A B C D E F G 
1 Dog Cat Cow Dog Cat 
2 x 1   x 1 
3 x 2 
4 x 1 nb  Result: 
5 x 2 nb  1 

Формула в Е5: = DCOUNTA (A1: C5, "Корова", E1: F2)

+1

Это гораздо лучший вариант, чем принятый ответ. Почему вы должны использовать Vlookup с IF, выходит за меня, когда вы хотите рассчитывать. Dcount - ваш друг. Тем не менее, если вам нравятся большие короткие формулы, используйте другой ответ. –

8

В Excel 2010, Вы имеете функцию COUNTIFS.

У меня возникли проблемы, если я пытался подсчитать количество ячеек в диапазоне, который имеет значение non0.

например. Если у вас был лист, который в диапазоне A1: A10 имел значения 1, 0, 2, 3, 0, и вам нужен был ответ 3.

Нормальная функция = COUNTIF (A1: A10, «<> 0») даст вам 8, поскольку он подсчитывает пустые ячейки как 0s.

Моим решением является использование функции COUNTIFS с тем же диапазоном, но с несколькими критериями, например.

= COUNTIFS (A1: A10, "<> 0" , A1: A10," <> ")

Это эффективно проверяет, если диапазон не является 0, и не является пустым.

17

Если несколько критериев используют COUNTIFS

=countifs(A1:A10,">""",B1:B10,">""") 

" >"" " смотрит на большее, чем быть пустым. Эта формула ищет два критерия, и ни один столбец не может быть пустым в той же строке для подсчета. Если только подсчет одного столбца делает это с одним критерием (т.Используйте все перед B1:B10 не включая запятую)

+1

используя «>» «» - отличный трюк! – ak112358

+0

Это полезно, поскольку есть случаи, когда видимая пустая ячейка не будет исключена '' <> "', но при использовании ''> "" "'. –

+1

Решение ">" "идеально. Проблема с «<>» заключается в том, что она подсчитывает ячейки, которые имеют формулу в них, даже если она приводит к пустому значению (например, если вы используете, например, IFERROR), тогда как «>» «", похоже, работает для вычисленного значения ячейки, а не содержимого. – JoeP

0

Лучший способом я нашел, чтобы использовать комбинацию «IF» и «ISERROR» заявление:

=IF(ISERROR(COUNTIF(E5:E356,1)),"---",COUNTIF(E5:E356,1) 

Этой формула будет либо заполнить ячейку с три тишины (---), если бы произошла ошибка (если в ячейках нет данных для подсчета/среднего/и т. д.) или с подсчетом (если в ячейках были данные)

Приятная часть о этот логический запрос состоит в том, что он исключает полностью пустые строки/столбцы, делая их текстовыми значениями «---», поэтому, если у вас есть подсчет строк (или усреднение), который был затем подсчитывается (или усредняется) в другом месте в вашей формуле, вторая формула не отвечает с ошибкой, потому что она будет игнорировать ячейку «---».

3

Вы можете попробовать это:

=COUNTIF(Data!A2:A300,"<>"&"") 
3

Я считаю, что лучший способ сделать это состоит в использовании SUMPRODUCT вместо:

=SUMPRODUCT((A1:A10<>"")*1) 

Это также очень удобно, если вы хотите, чтобы бросить в более критериев :

=SUMPRODUCT((A1:A10<>"")*(A1:A10>$B$1)*(A1:A10<=$B$2)) 
+0

Это также работает с формулами, которые возвращают «". – CFreitas

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