Как я могу подсчитать строки с данными в листе Excel?
Я пытаюсь подсчитать количество строк в электронной таблице, которые содержат по меньшей мере одно не пустое значение в нескольких столбцах: i.e.
row 1 has a text value in column A
row 2 has a text value in column B
row 3 has a text value in column C
row 4 has no values in A, B or C
Формула будет равна 3, потому что строки 1, 2 и 3 имеют текстовое значение, по меньшей мере, в одном столбце. Аналогично, если строка 1 имела текстовое значение в каждом столбце (A, B и C), это считалось бы как 1.
Ответы
Ответ 1
С помощью формул вы можете сделать следующее:
- в новом столбце (например, col D-cell
D2
), добавьте =COUNTA(A2:C2)
- перетащите эту формулу до конца ваших данных (например, cell
D4
в нашем примере)
- добавьте последнюю формулу для ее суммирования (например, в ячейке
D5
): =SUM(D2:D4)
Ответ 2
Если вам нужен простой один лайнер, который сделает все это за вас (при условии, что никакое значение не означает пустую ячейку):
=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, "")
Если никакое значение не означает, что ячейка содержит 0
=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, 0)
Формула работает, сначала суммируя все строки, которые находятся в столбцах A, B и C (если вам нужно подсчитать больше строк, просто увеличьте столбцы в диапазоне, например ROWS(A:A) + ROWS(B:B) + ROWS(C:C) + ROWS(D:D) + ... + ROWS(Z:Z)
).
Затем формула подсчитывает количество значений в том же диапазоне, которые пусты (или 0 во втором примере).
Наконец, формула вычитает общее количество ячеек без значения из общего числа строк. Это дает вам количество ячеек в каждой строке, которые содержат значение
Ответ 3
Если вы не возражаете против VBA, вот функция, которая сделает это за вас. Ваш вызов будет примерно таким:
=CountRows(1:10)
Function CountRows(ByVal range As range) As Long
Application.ScreenUpdating = False
Dim row As range
Dim count As Long
For Each row In range.Rows
If (Application.WorksheetFunction.CountBlank(row)) - 256 <> 0 Then
count = count + 1
End If
Next
CountRows = count
Application.ScreenUpdating = True
End Function
Как это работает: я использую тот факт, что существует ограничение на 256 строк. Формула листа CountBlank сообщит вам, сколько ячеек в строке пусто. Если строка не имеет ячеек со значениями, то это будет 256. Таким образом, я просто минус 256, и если это не 0, то я знаю, что есть ячейка где-то, у которой есть какое-то значение.
Ответ 4
Попробуйте этот сценарий:
Массив = A1:C7
. A1-A3
имеют значения, B2-B6
имеют значение и C1
, C3
и C6
имеют значения.
Чтобы получить количество строк, добавьте столбец D
(вы можете скрыть его после создания формул), а в D1
введите формулу =If(Sum(A1:C1)>0,1,0)
. Скопируйте формулу от D1
до D7
(для других, кто не грамотен, цифры в формуле суммы меняются на строку, в которой вы находитесь, и это хорошо).
Теперь в C8
введите формулу суммы, которая добавляет столбец D
, и ответ должен быть 6
. Для визуально приятных целей скройте столбец D
.
Ответ 5
Вы должны использовать функцию sumif в Excel:
=SUMIF(A5:C10;"Text_to_find";C5:C10)
Эта функция принимает диапазон, подобный этому квадрату A5: C10, тогда у вас есть текст, чтобы найти этот текст в или B, после чего он добавит номер из строки C.
Ответ 6
Вот что я, наконец, придумал, что отлично работает!
{=SUM(IF((ISTEXT('Worksheet Name!A:A))+(ISTEXT('CCSA Associates'!E:E)),1,0))-1}
Не забывайте, так как это массив, который вводит формулу выше без "{}", а затем CTRL + SHIFT + ENTER вместо ENTER для появления "{}" и для правильного ввода.