Функция VBA COUNTIF в Excel (6 примера)

  • Споделя Това
Hugh West

Сайтът COUNTIF в Excel се използва за преброяване на броя на клетките в даден диапазон, които отговарят на дадено условие. В тази статия ще ви покажем как да използвате функцията COUNTIF функция в Excel с VBA макрос.

Изтегляне на работна тетрадка

Можете да изтеглите безплатната учебна тетрадка на Excel от тук.

Функцията COUNTIF с VBA.xlsm

Функция COUNTIF в Excel

  • Синтаксис

WorksheetFunction.CountIf( Arg1 Като обхват, Arg2 ) като Double

  • Параметри
Параметър Задължително/незадължително Тип данни Описание
Arg1 Изисква се Обхват

Обхватът на клетките от броя на клетките.

Arg2 Изисква се Вариант Число, израз, препратка към клетка или текст, който определя кои клетки да се броят. Например изразът може да бъде 20, "20", ">20", "fruit" или B2.
  • Тип връщане

Стойност като Double

6 примера за използване на функцията COUNTIF в Excel с VBA

В този раздел ще научите как да използвате COUNTIF функция в Excel за броене на текстове, числа и др. с VBA код.

1. WorksheetFunction с COUNTIF в Excel VBA

Excel's Работен листФункция може да се използва за извикване на повечето от другите функции в Excel, които са налични в функцията Insert диалогов прозорец в Excel и COUNTIF е една от тези функции.

С горния пример ще научим как да използваме Работен листФункция с COUNTIF за преброяване на данни с VBA в Excel.

Стъпки:

  • Натиснете Alt + F11 на клавиатурата или отидете в раздела Разработчик -> Visual Basic да отворите Редактор на Visual Basic .

  • В изскачащия прозорец с код, в лентата с менюта щракнете върху Вмъкване -> Модул .

  • Копирайте следния код и го поставете в прозореца за код.
 Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub 

Вашият код вече е готов за изпълнение.

  • Натиснете F5 на клавиатурата или от лентата с менюта изберете Run -> Run Sub/UserForm Можете също така просто да щракнете върху малка икона Play в лентата с подменюта, за да стартирате макроса.

Искахме да разберем колко са числата в нашата съвкупност от данни, които са по-малки от 3. Така че, след като изпълнихме кода, получихме резултата 4, който е броят на числата, по-малки от 3, за нашата съвкупност от данни.

Прочетете още: Как да използвате COUNTIF между две числа (4 метода)

2. Функция COUNTIF за преброяване на определен текст в Excel

Ако искате да преброите конкретен текст, например колко града, имена, храни и т.н. има в лист на Excel, можете да използвате функцията COUNTIF функция в VBA .

От горния пример ще научим как да използваме COUNTIF за да преброите колко пъти името Джон се среща в нашия набор от данни с VBA макрос.

Стъпки:

  • По същия начин, както преди, отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub CountifText() 'вход countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'изход Range("E7") = countName End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте макроса и ще получите общия брой.

Ако не искате да записвате текста директно в кода си, можете първо да го съхраните в променлива и по-късно да я предадете в кода. Точно както в кода по-долу,

 Sub CountifText() 'вход Name = Range("E6") countName = WorksheetFunction.CountIf(Range("B5:B10"), Name) 'изход Range("E7") = countName End Sub 

Прочетете още: Преброяване на текста в началото с функциите COUNTIF & LEFT в Excel

3. Функция COUNTIF за изчисляване на число с VBA

Можете да използвате COUNTIF за извличане на определени резултати.

От горния пример ще научим как да използваме COUNTIF да преброим колко числа има в нашата съвкупност от данни, които са по-голям от 1,1 с VBA макрос.

Стъпки:

  • По същия начин, както преди, отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub CountifNumber() 'вход countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'изход Range("E7") = countNum End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте макроса и ще получите общия брой.

Както вече споменахме, ако не искате да записвате числото директно в кода, можете първо да го съхраните в променлива и по-късно да я предадете в кода. Точно както в кода по-долу,

 Sub CountifNumber() 'вход Num = Range("E6") countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">" & Num) 'изход Range("E7") = countNum End Sub 

Прочетете още: Excel COUNTIF с критерии "по-голямо от" и "по-малко от

Подобни четива

  • Функция COUNTIF на Excel за броене на клетки, по-големи от 0
  • Как да използвате заедно функциите IF и COUNTIF в Excel
  • Excel COUNTIF за броене на клетка, която съдържа текст от друга клетка
  • Как да използвате функцията COUNTIF за изчисляване на процент в Excel

4. Функцията COUNTIF с обхват на обект в Excel

Можете да присвоите група клетки към Обект от обхвата и след това използвайте този Обект от обхвата за броене на стойности в Excel.

Стъпки:

  • Отвори Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • В прозореца за код копирайте следния код и го поставете.
 Sub ExCountIFRange() Dim iRng As Range 'присвояване на диапазона от клетки Set iRng = Range("B5:B10") 'използване на диапазона във формулата Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'освобождаване на обекта на диапазона Set iRng = Nothing End Sub 

Вашият код вече е готов за изпълнение.

  • Изпълнявайте кода и ще получите общия брой със стойност за сумиране.

Прочетете още: Как да използвате COUNTIF за неприлежащ обхват в Excel

5. Метод на формулата COUNTIF в Excel

Можете също така да използвате Формула и/или FormulaR1C1 метод за прилагане на COUNTIF към клетка в VBA Тези методи са по-гъвкави при извършването на такива операции.

5.1. Метод на формулата

Формулата позволява да се зададе диапазон от клетки като B5:B10 показано по-долу в примера.

Стъпки:

  • В прозореца за код на Редактор на Visual Basic , копирайте следния код и го поставете.
 Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub 

Вашият код вече е готов за изпълнение.

Тази част от кода ще ви даде общия брой на данните, които ви трябват.

5.2. Метод FormulaR1C1

ФормулатаR1C1 Методът е по-гъвкав, тъй като не се ограничава до определен диапазон от клетки.

Със същия набор от данни сега ще се научим как да използваме FormulaR1C1 за преброяване на стойностите в VBA .

Стъпки:

  • В прозореца за код на Редактор на Visual Basic , копирайте следния код и го поставете.
 Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub 

Вашият код вече е готов за изпълнение.

Този код ще ви даде и общия брой на данните, които ви трябват.

Ако не искате да задавате обхвата на изхода, можете да направите този код още по-гъвкав, като напишете следното,

 Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub 

Формулата ще преброи клетките, които отговарят на условието, и ще постави отговора в ActiveCell във вашия работен лист. Обхватът в COUNTIF трябва да бъде посочена с помощта на Ред (R) и Колона (C) синтаксис.

Прочетете още: Как да приложите COUNTIF между две стойности на клетките в Excel

6. Присвояване на резултата от функцията COUNTIF към променлива

Ако искате да използвате резултата от формулата на друго място, а не в набора от данни на Excel, можете да присвоите резултата на променлива и да го използвате по-късно в кода си.

Сайтът VBA кодът за това е,

 Sub AssignCountIfVariable() Dim iResult As Double 'Присвояване на променливата iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Показване на резултата MsgBox "Броят на клетките със стойност по-малка от 3 е " & iResult End Sub 

Резултатът ще бъде показан в полето за съобщения на Excel.

Прочетете още: Пример за COUNTIF в Excel (22 примера)

Заключение

Тази статия ви показа как да използвате COUNTIF функция в Excel с VBA . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.