2014-02-14 6 views
1

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

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

хорошо было бы необходимо указать диапазон клеток. Я думаю, что Excel хорош в том, чтобы позволить вам строить эти функции почти автоматически – Coffee

ответ

0

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

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

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

+0

, каков результат вашей формулы даст вам ячейку со значением '1 d a b'? –

+0

@simoco 4, но это не моя формула (только часть суммы). Для входа Siddharth Rout из изображения, которое он дает 11 –

+0

SiddhartRout проверяет, является ли значение числовым: 'If IsNumeric (Trim (MYAr (i))), но вы этого не сделали. Я знаю, что это формула OP, но вы должны упомянуть, что она работает только в том случае, если ячейки содержат только числа, разделенные пробелами :) –

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 (Range)

ScreenShot

enter image description here

Смежные вопросы