В таблице Google: как я могу подсчитать строки в заданной области, у которых есть значение? Все подсказки по этому поводу, которые я нашел до сих пор, приводят к формулам, которые подсчитывают строки, которые имеют не пустое содержимое (включая формулу), а ячейку с
=IF(1=2;"";"") // Shows an empty cell
тоже засчитывается.
Как решить эту простую задачу?
Ответы:
Создайте еще один столбец, который определяет, является ли указанная ячейка пустой, с помощью функции «CountBlank». Затем используйте счетчик значений, созданных в новом столбце «CountBlank».
источник
Я просто использовал,
=COUNTIF(Range, "<>")
и он подсчитал для меня непустые ячейки.источник
=COUNTIF(Range,"?*")
counta
: "Возвращает количество значений в наборе данных"Примечание:
CountA
считает""
быть значение . Только пустые ячейки (нажмите удалить в ячейке, чтобы очистить ее) не учитываются.Поддержка Google: https://support.google.com/docs/answer/3093991
countblank
: "Возвращает количество пустых ячеек в заданном диапазоне"Примечание.
CountBlank
Учитываются как пустые ячейки (нажмите «Удалить», чтобы очистить ячейку), так и ячейки с формулой, которая возвращается""
как пустые ячейки.Поддержка Google: https://support.google.com/docs/answer/3093403
Если у вас есть диапазон, который включает формулы, которые приводят к получению
""
, вы можете изменить формулу изчтобы:
РЕДАКТИРОВАТЬ: функция
countblank
, а неcountblanks
, последняя выдаст ошибку.источник
Вот что я считаю лучшим решением на данный момент:
Вот почему за 3 простых шага
Шаг 1. Просто как пирог - добавьте дополнительный столбец
Ответ на eniacAvenger даст правильное решение , не заботясь о случаях краев , как
=A1<>""
кажется , чтобы прийти к правильному truthy / falsy стоимости , основанным на том , как мы интуитивно думать о пустых ячейках, либо девственные заготовки или созданные заготовки.Итак, представьте, что у нас есть эти данные и мы хотим, чтобы в нем было количество непустых пробелов
B2:B6
:Если бы мы полагались на столбец C , мы могли бы получить количество значений в B следующим образом:
Шаг 2: используйте
FormulaArray
для динамического создания дополнительного столбцаТем не менее, комментарий consideRatio является допустимым - если вам нужен дополнительный столбец, вы часто можете достичь той же цели с помощью,
ArrayFormula
который может создать столбец в памяти, не занимая пространство листа.Итак, если мы хотим создать C динамически, мы можем использовать такую формулу массива:
Если мы просто поместим его в C2, он создаст вертикальный массив одним движением пера:
Шаг 3. Подсчитайте значения в динамическом столбце
Но когда это решено, нам больше не нужен столбец, чтобы просто отображать значения.
ArrayFormula
будет решать в следующем диапазоне:{True,True,False,True,False}
.CountIf
просто принимает любой диапазон и в этом случае может подсчитать количество истинных значений.Таким образом, мы можем обернуть
CountIf
значения, полученныеArrayFormula
следующим образом:Дальнейшее чтение
Другие решения в этом потоке либо слишком сложны, либо не работают в определенных крайних случаях, которые я перечислил в этом тестовом листе:
Таблица Google - Тест CountA - Демо
О том, почему
CountA
работает шаткий способ, см. Мой ответ здесьисточник
ArrayFormula(...)
чтобы вернуть массив значений внутри,CountIf
как вы предложили. Я обновил ответ и демонстрацию электронной таблицы. Они оба будут делать одно и то же, но чистота рядом с добротой.Для меня ни один из ответов не работал для диапазонов, которые включают как девственные ячейки, так и ячейки, которые пусты на основе формулы (например,
=IF(1=2;"";"")
)Для меня это решило следующее:
=COUNTA(FILTER(range, range <> ""))
источник
Filter()
не найти никаких элементов, он вернет,#N/A
которыйCOUNTA()
рассматривается как элемент, и поэтому всегда будет возвращать 1, даже если счетчик должен быть равен нулю. Пример в Google=COUNTA(filter({1;range},{1;range}<>"")) - 1
Решено с помощью решения, которое я нашел в Google Йоги Ананд: https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ
В приведенном ниже примере подсчитывается количество непустых строк в диапазоне A3: C, не забудьте обновить оба диапазона в формуле с учетом интересующего вас диапазона.
Также убедитесь, что избегаете циклических зависимостей, это произойдет, если вы, например, подсчитаете количество непустых строк в A: C и поместите эту формулу в столбец A или C.
источник
Для меня это работает:
Подсчет всех непустых ячеек от F2 до конца столбца
источник
Учитывая диапазон
A:A
, я предлагаю:Проблема заключается в том, что COUNTA превышает количество ячеек со строками нулевой длины
""
.Решение состоит в том, чтобы найти количество именно этих ячеек. Это можно найти, просмотрев все текстовые ячейки и вычтя все текстовые ячейки, содержащие хотя бы один символ.
""
но исключая действительно пустые ячейки""
но исключая действительно пустые ячейкиЭто означает, что значением
COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")
должно быть количество текстовых ячеек за вычетом количества текстовых ячеек, содержащих хотя бы один символ, то есть количество ячеек, содержащих ровно""
источник
Более простое решение, которое мне подходит:
Он считает оба числа, строки, даты и т. Д., Которые не пусты.
источник
Насколько я понимаю, большинство решений здесь подсчитывают количество непустых ячеек, а не количество строк с непустой ячейкой внутри.
Одно из возможных решений для диапазона,
B3:E29
например,Здесь
ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1))
возвращается столбец0
(если строка пуста) и1
(иначе).Еще один дается в ответе ThinkRatio .
источник
Вы можете определить пользовательскую функцию с помощью скрипта приложений (Инструменты> Редактор скриптов), например
numNonEmptyRows
:А затем используйте его в такой ячейке,
=numNonEmptyRows(A23:C25)
чтобы подсчитать количество непустых строк в диапазонеA23:C25
;источник
В Google Таблицах, чтобы подсчитать количество строк, содержащих хотя бы одну непустую ячейку в двумерном диапазоне :
Где A1: C5 - это диапазон, который вы проверяете на наличие непустых строк.
Формула взята из следующей статьи EXCELXOR и объясняется в ней - https://excelxor.com/2015/03/30/counting-rows-where-at-least-one-condition-is-met/
источник
Очень гибкий способ делать такие вещи - использовать ARRAYFORMULA.
В качестве примера представьте, что вы хотите подсчитать непустые строки (текстовые поля), вы можете использовать этот код:
Здесь происходит то, что «ArrayFormula» позволяет вам работать с набором значений. Используя функцию СУММ, вы указываете "ArrayFormula" для суммирования любого значения набора. Предложение «If» используется только для проверки «пусто» или «не пусто», 1 для непустого и 0 в противном случае. «Len» возвращает длину различных текстовых полей, здесь вы определяете набор (диапазон), который хотите проверить. Наконец, «ArrayFormula» суммирует 1 для каждого поля внутри набора (диапазона), в котором «len» возвращает больше 0.
Если вы хотите проверить любое другое условие, просто измените первый аргумент предложения IF.
источник