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