Funkcie VBA COUNTIF a COUNTIFS

Tento tutoriál vám ukáže, ako používať funkcie Excel COUNTIF a COUNTIFS vo VBA

VBA nemá ekvivalent funkcií COUNTIF alebo COUNTIFS, ktoré môžete použiť - používateľ musí používať vstavané funkcie programu Excel vo VBA pomocou Funkcia pracovného listu predmet.

Funkcia hárku COUNTIF

Objekt WorksheetFunction je možné použiť na vyvolanie väčšiny funkcií programu Excel, ktoré sú k dispozícii v dialógovom okne Vložiť funkciu v programe Excel. Funkcia COUNTIF je jednou z nich.

123 Sub TestCountIf ()Rozsah ("D10") = Application.WorksheetFunction.CountIf (rozsah ("D2: D9"), "> 5")Koniec pod

Vyššie uvedený postup bude počítať bunky v rozsahu (D2: D9) iba vtedy, ak majú hodnotu 5 alebo väčšiu. Všimnite si toho, pretože pretože používate znamienko viac ako, kritériá vyššie ako 5 musia byť v zátvorke.

Priradenie výsledku COUNTIF premennej

Výsledok svojho vzorca môžete chcieť použiť inde v kóde, než ho písať priamo späť do programu Excel Range. Ak je to tak, môžete výsledok priradiť k premennej, ktorá sa má použiť neskôr vo vašom kóde.

1234567 Sub AssignSumIfVariable ()Stmaviť výsledok ako dvojitý„Priraďte premennúvýsledok = Application.WorksheetFunction.CountIf (rozsah ("D2: D9"), "> 5")„Ukáž výsledokMsgBox "Počet buniek s hodnotou vyššou ako 5 je" & výsledokKoniec pod

Použitie COUNTIFS

Funkcia COUNTIFS je podobná funkcii COUNTIF WorksheetFunction, ale umožňuje vám vyhľadať viac ako jedno kritérium. V nižšie uvedenom príklade vzorec spočíta počet buniek v D2 až D9, kde je predajná cena väčšia ako 6 A nákladová cena je väčšia ako 5.

123 Čiastkové používanieCountIfs ()Rozsah ("D10") = WorksheetFunction.CountIfs (rozsah ("C2: C9"), "> 6", rozsah ("E2: E9"), "> 5")Koniec pod

Použitie COUNTIF s objektom rozsahu

K objektu Range môžete priradiť skupinu buniek a potom použiť tento objekt Range s príponou Pracovný listFunkcia predmet.

123456789 Dielčí testovací početIFRange ()Dim rngCount ako rozsah'priradiť rozsah buniekNastaviť rngCount = rozsah ("D2: D9")„použite rozsah vo vzorciRozsah ("D10") = WorksheetFunction.SUMIF (rngCount, "> 5")'uvoľnite objekty dosahuNastaviť rngCount = NičKoniec pod

Použitie COUNTIFS na objektoch s viacerými rozsahmi

Podobne môžete použiť COUNTIFS na viacerých objektoch rozsahu.

123456789101112 Sub TestCountMultipleRanges ()Dim rngCriteria1 As RangeDim rngCriteria2 ako rozsah'priradiť rozsah buniekNastaviť rngCriteria1 = rozsah ("D2: D9")Nastaviť rngCriteria2 = rozsah ("E2: E10")„použite rozsahy vo vzorciRozsah ("D10") = WorksheetFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'uvoľnite objekty dosahuNastaviť rngCriteria1 = NičNastaviť rngCriteria2 = NičKoniec pod

COUNTIF vzorec

Keď použijete WorksheetFunction.COUNTIF ak chcete do pracovného hárka pridať súčet k rozsahu, vráti sa statická hodnota, nie flexibilný vzorec. To znamená, že keď sa vaše údaje v Exceli zmenia, hodnota, ktorú vrátil súbor Pracovný listFunkcia sa nezmení.

Vo vyššie uvedenom príklade postup spočítal množstvo buniek s hodnotami v rozsahu (D2: D9), kde je predajná cena väčšia ako 6, a výsledok bol vložený do D10. Ako vidíte na paneli vzorcov, tento výsledok je údaj a nie vzorec.

Ak sa ktorákoľvek z hodnôt zmení v rozsahu (D2: D9), výsledok v D10 sa zmení NIE zmeniť.

Namiesto použitia WorksheetFunction.SumIf, môžete použiť VBA na použitie funkcie SUMIF na bunku pomocou Vzorec alebo Formula R1C1 metódy.

Metóda vzorca

Metóda vzorca vám umožňuje konkrétne poukázať na rozsah buniek, napr .: D2: D9, ako je uvedené nižšie.

123 Sub TestCountIf ()Rozsah ("D10"). FormulaR1C1 = "= COUNTIF (D2: D9," "> 5" ")"Koniec pod

Metóda FormulaR1C1

Metóda FormulaR1C1 je flexibilnejšia v tom, že vás neobmedzuje na určitý rozsah buniek. Nasledujúci príklad nám poskytne rovnakú odpoveď ako vyššie.

123 Sub TestCountIf ()Rozsah ("D10"). Vzorec R1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"Koniec pod

Aby bol však vzorec ešte flexibilnejší, mohli by sme kód zmeniť tak, aby vyzeral takto:

123 Sub TestCountIf ()ActiveCell.FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"Koniec pod

Nech ste kdekoľvek v pracovnom hárku, vzorec potom spočíta bunky, ktoré spĺňajú kritériá, priamo nad ním a odpoveď vloží do vášho ActiveCell. Na rozsah vo funkcii COUNTIF je potrebné odkazovať pomocou syntaxe riadka (R) a stĺpca (C).

Obe tieto metódy vám umožňujú používať vzorce Dynamic Excel vo VBA.

Teraz bude namiesto hodnoty vzorec v D10.

Text tvojho odkazu

wave wave wave wave wave