VBA COUNTIF i COUNTIFS funkcije

Ovaj će vam vodič pokazati kako koristiti funkcije Excel COUNTIF i COUNTIFS u VBA

VBA nema ekvivalent COUNTIF ili COUNTIFS funkcija koje možete koristiti - korisnik mora koristiti ugrađene Excel funkcije u VBA koristeći Funkcija radnog lista objekt.

COUNTIF Radni list Funkcija

Objekt WorksheetFunction može se koristiti za pozivanje većine Excel funkcija koje su dostupne u dijaloškom okviru Umetni funkciju u Excelu. Funkcija COUNTIF jedna je od njih.

123 Sub TestCountIf ()Raspon ("D10") = Application.WorksheetFunction.CountIf (Raspon ("D2: D9"), "> 5")Kraj podm

Gornji postupak će brojati ćelije u rasponu (D2: D9) samo ako imaju vrijednost 5 ili veću. Primijetite da, budući da koristite znak veći od, kriteriji veći od 5 moraju biti unutar zagrada.

Dodjeljivanje rezultata COUNTIF varijabli

Možda ćete htjeti koristiti rezultat svoje formule na drugom mjestu u kodu, a ne pisati ga izravno u Excel raspon. U tom slučaju rezultat možete dodijeliti varijabli koja će se kasnije koristiti u vašem kodu.

1234567 Sub AssignSumIfVariable ()Zatamnite rezultat kao dvostruki'Dodijelite varijabluresult = Application.WorksheetFunction.CountIf (Raspon ("D2: D9"), "> 5")'Pokaži rezultatMsgBox "Broj ćelija s vrijednošću većom od 5 je" & rezultatKraj podm

Upotreba COUNTIFS

Funkcija COUNTIFS slična je funkciji COUNTIF WorksheetFunction, ali vam omogućuje provjeru više od jednog kriterija. U donjem primjeru formula će brojati broj ćelija u D2 do D9 gdje je prodajna cijena veća od 6, a troškovna cijena veća od 5.

123 Pod UpotrebaCountIfs ()Raspon ("D10") = Funkcija radnog lista.CountIfs (Raspon ("C2: C9"), "> 6", Raspon ("E2: E9"), "> 5")Kraj podm

Korištenje COUNTIF -a s objektom raspona

Objektu Range možete dodijeliti skupinu ćelija, a zatim koristiti taj objekt Range s Funkcija radnog lista objekt.

123456789 PodispitCountIFRange ()Zatamnite rngCount as Range'dodijeliti raspon ćelijaPostavi rngCount = Raspon ("D2: D9")'upotrijebite raspon u formuliRaspon ("D10") = Funkcija radnog lista.SUMIF (rngCount, "> 5")'otpustite objekte rasponaPostavite rngCount = NištaKraj podm

Korištenje COUNTIFS -a na objektima s više raspona

Slično, možete koristiti COUNTIFS na više objekata raspona.

123456789101112 Pod TestCountMultipleRanges ()Dim rngCriteria1 As RangeDim rngCriteria2 as Range'dodijeliti raspon ćelijaPostavi rngCriteria1 = Raspon ("D2: D9")Postavi rngCriteria2 = Raspon ("E2: E10")'koristite raspone u formuliRaspon ("D10") = Funkcija radnog lista.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'otpustite objekte rasponaPostavite rngCriteria1 = NištaPostavite rngCriteria2 = NištaKraj podm

COUNTIF Formula

Kada koristite Funkcija radnog lista.COUNTIF za dodavanje zbroja rasponu na radnom listu vraća se statička vrijednost, a ne fleksibilna formula. To znači da kada se vaše brojke u Excelu promijene, vrijednost koju je vratio Funkcija radnog lista neće se promijeniti.

U gornjem primjeru, postupak je prebrojao količinu ćelija s vrijednostima u rasponu (D2: D9) gdje je prodajna cijena veća od 6, a rezultat je stavljen u D10. Kao što možete vidjeti na traci s formulama, ovaj rezultat je brojka, a ne formula.

Ako se bilo koja od vrijednosti promijeni u rasponu (D2: D9), rezultat u D10 hoće NE promijeniti.

Umjesto da koristite Radni listFunction.SumIf, možete koristiti VBA za primjenu funkcije SUMIF na ćeliju pomoću Formula ili Formula R1C1 metodama.

Metoda formule

Metoda formule omogućuje vam da posebno pokažete na niz ćelija, na primjer: D2: D9 kako je dolje prikazano.

123 Sub TestCountIf ()Raspon ("D10"). FormulaR1C1 = "= COUNTIF (D2: D9," "> 5" ")"Kraj podm

FormulaR1C1 metoda

Metoda FormulaR1C1 fleksibilnija je jer vas ne ograničava na zadani raspon ćelija. Primjer u nastavku dat će nam isti odgovor kao i prethodni.

123 Sub TestCountIf ()Raspon ("D10"). Formula R1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")"Kraj podm

Međutim, kako bismo formulu učinili još fleksibilnijom, mogli bismo izmijeniti kôd kako bi izgledao ovako:

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

Gdje god se nalazili na svom radnom listu, formula će zatim prebrojati ćelije koje zadovoljavaju kriterije izravno iznad njega i smjestiti odgovor u vašu ActiveCell. Raspon unutar funkcije COUNTIF mora se pozvati pomoću sintakse Redak (R) i Stupac (C).

Obje ove metode omogućuju vam korištenje Dynamic Excel formula unutar VBA.

U D10 sada će umjesto vrijednosti biti formula.

Tekst vaše veze

wave wave wave wave wave