Подсчет количества чисел в диапазоне ячеек

Я пытаюсь найти формулу в Excel VBA, которая будет подсчитывать количество чисел в диапазоне ячеек. Я пробовал формулу, но она учитывает только количество чисел в одной ячейке. Кто-нибудь может мне с этим помочь?

=IF(A1="",0,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1) 

person user3308733    schedule 14.02.2014    source источник
comment
ну нужно было бы указать диапазон ячеек. Я думаю, что Excel хорош тем, что позволяет вам создавать эти функции почти автоматически   -  person Caffeinated    schedule 14.02.2014


Ответы (2)


Вставьте этот код в модуль

Function GetNumbCount(Rng As Range) As Long
    Dim aCell As Range
    Dim MYAr As Variant
    Dim n As Long, i As Long

    For Each aCell In Rng
        If InStr(1, aCell.Value, " ") Then
            MYAr = Split(aCell.Value, " ")
            For i = LBound(MYAr) To UBound(MYAr)
                If IsNumeric(Trim(MYAr(i))) Then n = n + 1
            Next i
        Else
            If IsNumeric(Trim(aCell.Value)) Then n = n + 1
        End If
    Next

    GetNumbCount = n
End Function

А затем используйте его на листе

Синтаксис

GetNumbCount (диапазон)

Снимок экрана

введите описание изображения здесь

person Siddharth Rout    schedule 14.02.2014

Не могу понять, что необходимо и почему, но чтобы суммировать результаты данной формулы в диапазоне A1:B2, вы можете использовать такую ​​формулу массива:

{=SUM(IF(A1:B2="",0,LEN(A1:B2)-LEN(SUBSTITUTE(A1:B2," ",""))+1))}

Используйте Ctrl + Shift + Enter, чтобы ввести формулу как массив.

person V.B.    schedule 14.02.2014
comment
какой результат ваша формула дала бы вам для ячейки со значением 1 d a b? - person Dmitry Pavliv; 14.02.2014
comment
@simoco 4, но это не моя формула (есть только часть суммы). Для входов Siddharth Rout с картинки это дает 11 - person V.B.; 14.02.2014
comment
SiddhartRout проверяет, является ли значение числовым: If IsNumeric(Trim(MYAr(i))), а вы нет. Я знаю, что это формула OP, но стоит отметить, что она работает только в том случае, если ячейки содержат только числа, разделенные пробелами :) - person Dmitry Pavliv; 14.02.2014
comment
В вопросе говорится, что исходная формула выполняет работу для одной ячейки и спрашивает о диапазонах. Я просто не делал никаких дополнительных предположений, пропавших без вести. - person V.B.; 14.02.2014