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