VBA COUNTIF un COUNTIFS funkcijas

Šī apmācība parādīs, kā VBA izmantot Excel COUNTIF un COUNTIFS funkcijas

VBA nav līdzvērtīgu funkciju COUNTIF vai COUNTIFS, kuras varat izmantot - lietotājam ir jāizmanto VBA iebūvētās Excel funkcijas, izmantojot WorkSheetFunction objekts.

COUNTIF darblapas funkcija

Objektu WorksheetFunction var izmantot, lai izsauktu lielāko daļu Excel funkciju, kas ir pieejamas Excel dialoglodziņā Funkcijas ievietošana. Funkcija COUNTIF ir viena no tām.

123 Sub TestCountIf ()Diapazons ("D10") = Application.WorksheetFunction.CountIf (Diapazons ("D2: D9"), "> 5")Beigu apakš

Iepriekš minētā procedūra skaitīs diapazona (D2: D9) šūnas tikai tad, ja to vērtība ir 5 vai lielāka. Ņemiet vērā, ka, tā kā izmantojat lielākas par zīmi, kritērijiem, kas lielāki par 5, jābūt iekavās.

COUNTIF rezultāta piešķiršana mainīgajam

Iespējams, vēlēsities izmantot formulas rezultātu citur kodā, nevis rakstīt to tieši atpakaļ un Excel diapazonā. Ja tas tā ir, rezultātu varat piešķirt mainīgajam, lai to izmantotu vēlāk savā kodā.

1234567 Sub AssignSumIfVariable ()Iegūstiet dubultu rezultātu'Piešķiriet mainīgorezultāts = Application.WorksheetFunction.CountIf (Diapazons ("D2: D9"), "> 5")'Parādiet rezultātuMsgBox "Šūnu skaits, kuru vērtība ir lielāka par 5, ir rezultāts"Beigu apakš

Izmantojot COUNTIFS

Funkcija COUNTIFS ir līdzīga funkcijai COUNTIF WorksheetFunction, taču tā ļauj pārbaudīt vairāk nekā vienu kritēriju. Tālāk sniegtajā piemērā formula aprēķinās šūnu skaitu no D2 līdz D9, kur pārdošanas cena ir lielāka par 6 UN izmaksu cena ir lielāka par 5.

123 Sub UsingCountIfs ()Diapazons ("D10") = WorksheetFunction.CountIfs (Diapazons ("C2: C9"), "> 6", Diapazons ("E2: E9"), "> 5")Beigu apakš

COUNTIF izmantošana ar diapazona objektu

Objektam Range varat piešķirt šūnu grupu un pēc tam izmantot šo diapazona objektu ar DarblapaFunkcija objekts.

123456789 Sub TestCountIFRange ()Dim rngCount kā diapazons"piešķirt šūnu diapazonuIestatīt rngCount = Diapazons ("D2: D9")'izmantojiet diapazonu formulāDiapazons ("D10") = WorksheetFunction.SUMIF (rngCount, "> 5")'atlaidiet diapazona objektusSet rngCount = NekasBeigu apakš

COUNTIFS izmantošana vairāku diapazonu objektos

Līdzīgi varat izmantot COUNTIFS vairākiem diapazona objektiem.

123456789101112 Sub TestCountMultipleRanges ()Dim rngCriteria1 kā diapazonsDim rngCriteria2 kā diapazons"piešķirt šūnu diapazonuIestatīt rngCriteria1 = Diapazons ("D2: D9")Iestatīt rngCriteria2 = Diapazons ("E2: E10")'izmantojiet formulas diapazonusDiapazons ("D10") = WorksheetFunction.CountIfs (rngCriteria1, "> 6", rngCriteria2, "> 5")'atlaidiet diapazona objektusSet rngCriteria1 = NekasSet rngCriteria2 = NekasBeigu apakš

COUNTIF formula

Kad izmantojat WorksheetFunction.COUNTIF lai pievienotu summu darblapas diapazonam, tiek atgriezta statiskā vērtība, nevis elastīga formula. Tas nozīmē, ka, mainoties skaitļiem programmā Excel, vērtība, kuru ir atgriezusi DarblapaFunkcija nemainīsies.

Iepriekš minētajā piemērā procedūra ir saskaitījusi šūnu skaitu ar vērtībām diapazonā (D2: D9), kur pārdošanas cena ir lielāka par 6, un rezultāts tika ievietots D10. Kā redzat formulas joslā, šis rezultāts ir skaitlis, nevis formula.

Ja kāda no vērtībām mainās diapazonā (D2: D9), rezultāts D10 mainīsies mainīt.

Tā vietā, lai izmantotu WorksheetFunction.SumIf, varat izmantot VBA, lai šūnai lietotu SUMIF funkciju, izmantojot Formula vai FormulaR1C1 metodes.

Formulas metode

Formulas metode ļauj īpaši norādīt uz šūnu diapazonu, piemēram: D2: D9, kā parādīts zemāk.

123 Sub TestCountIf ()Diapazons ("D10"). FormulaR1C1 = "= COUNTIF (D2: D9," "> 5" ")"Beigu apakš

FormulaR1C1 metode

FormulaR1C1 metode ir elastīgāka, jo tā neierobežo jūs ar noteiktu šūnu diapazonu. Tālāk sniegtais piemērs sniegs mums tādu pašu atbildi kā iepriekš.

123 Sub TestCountIf ()Diapazons ("D10"). FormulaR1C1 = "= COUNTIF (R [-8] C: R [-1] C," "> 5" ")Beigu apakš

Tomēr, lai formula būtu vēl elastīgāka, mēs varētu grozīt kodu, lai tas izskatītos šādi:

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

Lai kur jūs atrastos darblapā, formula pēc tam saskaitīs šūnas, kas atbilst kritērijiem tieši virs tās, un ievietos atbildi jūsu ActiveCell. Funkcijas COUNTIF diapazons ir jāatsaucas, izmantojot rindu (R) un kolonnas (C) sintaksi.

Abas šīs metodes ļauj VBA izmantot dinamiskās Excel formulas.

Tagad vērtības D10 vietā būs formula.

Jūsu saites teksts

wave wave wave wave wave