Как я могу подсчитать строки с данными в листе 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 для появления "{}" и для правильного ввода.