Excel СЧЕТЕСЛИ: подсчет ячеек, не равных нулевой длине строки

В Excel функция СЧЕТЕСЛИ обычно используется для подсчета ячеек, соответствующих определенным критериям. Однако если вы хотите подсчитать ячейки, длина которых не равна нулю, вам необходимо использовать комбинацию функций и операторов. В этой статье мы рассмотрим несколько методов с примерами кода для решения этой задачи.

Метод 1: использование функций LEN и COUNTIF
Функция LEN возвращает длину заданной текстовой строки. Объединив функцию ДЛСТР с функцией СЧЕТЕСЛИ, мы можем подсчитать ячейки, длина которых больше нуля.

=COUNTIF(range,"<>"&"") 

Объяснение:

  • range – это диапазон ячеек, которые вы хотите посчитать.
  • "<>"&""— это критерий, используемый функцией COUNTIF для подсчета ячеек, которые не равны пустой строке.

Метод 2: использование функции СУММПРОИЗВ
Функция СУММПРОИЗВ может использоваться для выполнения вычислений над массивами. Используя функцию СУММПРОИЗВ с логическими операторами, мы можем подсчитывать ячейки, длина которых не равна нулю.

=SUMPRODUCT(--(range<>""))

Объяснение:

  • range – это диапазон ячеек, которые вы хотите посчитать.
  • (range<>"")создает массив значений TRUE/FALSE, где TRUE представляет ячейки, которые не равны пустой строке.
  • --(range<>"")преобразует значения TRUE/FALSE в 1/0 соответственно.
  • СУММПРОИЗВ суммирует 1 и 0, эффективно подсчитывая ячейки ненулевой длины.

Метод 3: использование функции СЧЁТЕСЛИ
Функция СЧЁТЕСЛИ позволяет подсчитывать ячейки на основе нескольких критериев. Установив критерий «не равно пустой строке», мы можем подсчитать ячейки ненулевой длины.

=COUNTIFS(range,"<>"&"")

Объяснение:

  • range – это диапазон ячеек, которые вы хотите посчитать.
  • "<>"&""— это критерий, используемый COUNTIFS для подсчета ячеек, которые не равны пустой строке.

Метод 4: использование VBA (Visual Basic для приложений)
Если вы знакомы с VBA, вы можете использовать специальную функцию для подсчета ячеек ненулевой длины. Вот пример:

Function CountNonZeroLength(rng As Range) As Long
    Dim cell As Range
    Dim count As Long

    For Each cell In rng
        If Len(cell.Value) > 0 Then
            count = count + 1
        End If
    Next cell

    CountNonZeroLength = count
End Function

Объяснение:

  • Функция CountNonZeroLengthпринимает диапазон (rng) в качестве входных данных и возвращает количество ячеек ненулевой длины.
  • Функция перебирает каждую ячейку диапазона и проверяет, больше ли ее длина нуля, с помощью функции Len.
  • Если длина больше нуля, счетчик увеличивается.
  • Наконец, функция возвращает счетчик.

В этой статье мы рассмотрели несколько методов подсчета ячеек в Excel, длина которых не равна нулю. Мы рассмотрели формулы с использованием функций СЧЁТЕСЛИ, СУММПРОИЗВ и СЧЁТЕСЛИ, а также пользовательской функции VBA. Применяя эти методы, вы можете эффективно подсчитывать ячейки ненулевой длины в таблицах Excel.