Съдържание
Сайтът 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 . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.