Есть ли способ считать пустые "строки" в Excel 2016, а не только пустые ячейки. У меня есть документ, в котором мне нужно знать, сколько строк в диапазоне данных не имеют ничего в них. Надеюсь, это имеет смысл. Спасибо!

3 ответа3

2

VBA не требуется. Вспомогательные столбцы не требуются. Даже ввод массива в формулу не требуется!

Скриншот рабочего листа

Введите следующую формулу в H2:

=SUM(--(MMULT(--(A2:F11<>""),ROW(INDEX(H:H,1):INDEX(H:H,COLUMNS(A2:F11))))=0))

Формула работает путем умножения матрицы проверки на непустые значения всего диапазона на вектор столбцов, отличный от нуля, той же длины, что и число столбцов диапазона. Это приводит к вектору значений столбцов, которые больше нуля, если любая из ячеек соответствующей строки не является пустой. Суммирование проверки на ноль каждого из этих значений приводит к количеству пустых строк.

1

Как это устроено:

  • В ячейке E2 напишите эту формулу: =QUOTIENT(COUNTBLANK(B2:D2),3) и заполните ее.

Обратите внимание, что 3 представляет "общее количество столбцов" в диапазоне данных, например, B, C & D равны 3.Вы можете изменить это количество столбцов, включенных в ярость данных.

  • Запишите эту формулу в ячейку E11 =Sum(E2:E10)
-1

Если вы можете использовать VBA, то это довольно просто. Этот код будет принимать выбранный диапазон в качестве входа. Затем он выбирает каждую строку отдельно и проверяет, является ли она пустой. Если это так, то счетчик увеличивается на 1. В конце он повторно выбирает ваш исходный диапазон и выдает окно сообщения с количеством пустых строк. Требуется некоторая модификация, чтобы выбрать только часть строки, но это также должно быть довольно простым для реализации.

Public Sub countBlanks()
Dim Rowcount, currentRow, i, countBlanks As Integer
Dim Selected As Variant
Selected = Selection.Address
Rowcount = Selection.Rows.Count
currentRow = Selection.Rows(1).Row
For i = currentRow To currentRow + Rowcount - 1
    Rows(i).Select
    If WorksheetFunction.CountA(Selection) = 0 Then countBlanks = countBlanks + 1
Next i
Range(Selected).Select
MsgBox countBlanks
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .