Funkce VBA COUNTIF a COUNTIFS

Tento tutoriál vám ukáže, jak používat funkce Excel COUNTIF a COUNTIFS ve VBA

VBA nemá ekvivalent funkcí COUNTIF nebo COUNTIFS, které můžete použít - uživatel musí ve VBA používat vestavěné funkce Excelu pomocí Funkce pracovního listu objekt.

Funkce pracovního listu COUNTIF

Objekt WorksheetFunction lze použít k volání většiny funkcí aplikace Excel, které jsou k dispozici v dialogovém okně Vložit funkci v aplikaci Excel. Funkce COUNTIF je jednou z nich.

123 Dílčí testovací částka ()Rozsah ("D10") = Application.WorksheetFunction.CountIf (Rozsah ("D2: D9"), "> 5")End Sub

Výše uvedený postup započítá buňky v rozsahu (D2: D9), pouze pokud mají hodnotu 5 nebo větší. Všimněte si, že protože používáte znaménko větší než, musí být kritéria větší než 5 v závorkách.

Přiřazení výsledku COUNTIF proměnné

Možná budete chtít použít výsledek vzorce jinde v kódu, než abyste ho psali přímo zpět do a rozsahu Excelu. Pokud tomu tak je, můžete výsledek přiřadit proměnné, kterou použijete později v kódu.

1234567 Sub AssignSumIfVariable ()Dim výsledek jako Double"Přiřaďte proměnnou."výsledek = Application.WorksheetFunction.CountIf (rozsah ("D2: D9"), "> 5")„Ukaž výsledekMsgBox "Počet buněk s hodnotou větší než 5 je" & resultEnd Sub

Používání COUNTIFS

Funkce COUNTIFS je podobná funkci COUNTIF WorksheetFunction, ale umožňuje vám vyhledat více než jedno kritérium. V níže uvedeném příkladu vzorec spočítá počet buněk v D2 až D9, kde je prodejní cena vyšší než 6 A nákladová cena je větší než 5.

123 Dílčí usingCountIfs ()Rozsah ("D10") = WorksheetFunction.CountIfs (Rozsah ("C2: C9"), "> 6", Rozsah ("E2: E9"), "> 5")End Sub

Použití COUNTIF s objektem rozsahu

K objektu Range můžete přiřadit skupinu buněk a poté použít tento Range objekt s Pracovní list Funkce objekt.

123456789 Dílčí TestCountIFRange ()Dim rngCount jako rozsah'přiřaďte rozsah buněkNastavit rngCount = rozsah ("D2: D9")'použijte rozsah ve vzorci.'Rozsah ("D10") = WorksheetFunction.SUMIF (rngCount, "> 5")'uvolněte objekty dosahuNastavit rngCount = NicEnd Sub

Použití COUNTIFS na objektech s více rozsahy

Podobně můžete použít COUNTIFS na více objektech rozsahu.

123456789101112 Dílčí testovací částMultipleRanges ()Dim rngCriteria1 jako rozsahDim rngCriteria2 jako rozsah'přiřaďte rozsah buněkNastavit rngCriteria1 = Rozsah ("D2: D9")Nastavit rngCriteria2 = Rozsah ("E2: E10")'použijte rozsahy ve vzorci.'Rozsah ("D10") = WorksheetFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'uvolněte objekty dosahuNastavit rngCriteria1 = NicNastavit rngCriteria2 = NicEnd Sub

Vzorec COUNTIF

Když použijete WorksheetFunction.COUNTIF Chcete -li přidat součet do rozsahu v listu, je vrácena statická hodnota, nikoli flexibilní vzorec. To znamená, že když se vaše čísla v Excelu změní, hodnota, která byla vrácena Pracovní list Funkce nezmění.

Ve výše uvedeném příkladu postup spočítal množství buněk s hodnotami v rozsahu (D2: D9), kde je prodejní cena větší než 6, a výsledek byl vložen do D10. Jak vidíte na řádku vzorců, tento výsledek je obrázek a ne vzorec.

Pokud se některá z hodnot změní v rozsahu (D2: D9), výsledek v D10 se změní NE změna.

Místo použití WorksheetFunction.SumIf, můžete použít VBA k použití funkce SUMIF na buňku pomocí Vzorec nebo Vzorec R1C1 metody.

Metoda vzorce

Metoda vzorce vám umožňuje konkrétně ukázat na rozsah buněk, např.: D2: D9, jak je uvedeno níže.

123 Dílčí testovací částka ()Rozsah ("D10"). FormulaR1C1 = "= COUNTIF (D2: D9," "> 5" ")"End Sub

Metoda FormulaR1C1

Metoda FormulaR1C1 je flexibilnější v tom, že vás neomezuje na nastavený rozsah buněk. Následující příklad nám dá stejnou odpověď jako ten výše.

123 Dílčí testovací částka ()Rozsah ("D10"). FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub

Aby byl vzorec ještě flexibilnější, mohli bychom kód upravit tak, aby vypadal takto:

123 Dílčí testovací částka ()ActiveCell.FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"End Sub

Ať jste kdekoli v listu, vzorec poté spočítá buňky, které splňují kritéria přímo nad ním, a umístí odpověď do vašeho ActiveCell. Na rozsah uvnitř funkce COUNTIF je třeba odkazovat pomocí syntaxe Row (R) a Column (C).

Obě tyto metody vám umožňují používat ve VBA vzorce Dynamic Excel.

Nyní bude místo hodnoty vzorec v D10.

Text vašeho odkazu

wave wave wave wave wave