VBA vidējais rādītājs - AVERAGE, AVERAGEA, AVERAGEIF

Šī apmācība parādīs, kā izmantot Excel vidējo funkciju VBA.

Funkcija Excel AVERAGE tiek izmantota, lai aprēķinātu vidējo vērtību no darblapas diapazona šūnām, kurās ir vērtības. VBA tam piekļūst, izmantojot metodi WorkheetFunction.

VIDĒJĀ darblapas funkcija

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

123 Apakšpārbaudes funkcijaDiapazons ("D33") = Application.WorksheetFunction.Average ("D1: D32")Beigu apakš

Funkcijā AVERAGE var būt līdz 30 argumentiem. Katram no argumentiem ir jāattiecas uz šūnu diapazonu.

Šis piemērs turpmāk parādīs šūnu B11 līdz N11 summas vidējo lielumu

123 ApakšpārbaudeAverage ()Diapazons ("O11") = Application.WorksheetFunction.Average (Diapazons ("B11: N11"))Beigu apakš

Tālāk sniegtajā piemērā tiks iegūta vidējā šūnu summa no B11 līdz N11 un šūnu summa no B12: N12. Ja neievadīsiet lietojumprogrammas objektu, tas tiks pieņemts.

123 ApakšpārbaudeAverage ()Diapazons ("O11") = WorksheetFunction.Average (Diapazons ("B11: N11"), diapazons ("B12: N12"))Beigu apakš

VIDĒJĀ rezultāta piešķiršana mainīgajam

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

1234567 Sub AssignAverage ()Dim rezultāts kā vesels skaitlis'Piešķiriet mainīgorezultāts = WorksheetFunction.Average (Diapazons ("A10: N10"))'Parādiet rezultātuMsgBox "Vidējais rādītājs šūnām šajā diapazonā ir" & rezultātsBeigu apakš

VIDĒJAIS ar diapazona objektu

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

123456789 ApakšpārbaudeAverageRange ()Dim rng As Range"piešķirt šūnu diapazonuIestatīt rng = Diapazons ("G2: G7")'izmantojiet diapazonu formulāDiapazons ("G8") = WorksheetFunction.Average (rng)'atlaidiet diapazona objektuSet rng = NekasBeigu apakš

VIDĒJI vairāku diapazonu objekti

Līdzīgi jūs varat aprēķināt vidējo šūnu skaitu no vairākiem diapazona objektiem.

123456789101112 ApakšpārbaudeAverageMultipleRanges ()Dim rngA As RangeDim rngB kā diapazons"piešķirt šūnu diapazonuIestatīt rngA = Diapazons ("D2: D10")Iestatīt rngB = diapazons ("E2: E10")'izmantojiet diapazonu formulāDiapazons ("E11") = WorksheetFunction.Average (rngA, rngB)'atlaidiet diapazona objektuIestatīt rngA = NekasSet rngB = NekasBeigu apakš

Izmantojot AVERAGEA

Funkcija AVERAGEA atšķiras no funkcijas AVERAGE, jo tā veido vidējo vērtību no visām diapazona šūnām, pat ja vienā no šūnām ir teksts - tā aizstāj tekstu ar nulli un iekļauj to vidējā aprēķinā. Funkcija VIDĒJĀ ignorē šo šūnu un neņem to vērā aprēķinos.

123 ApakšpārbaudeAverage (()Diapazons ("B8) = Application.WorksheetFunction.AverageA (Diapazons (" A10: A11 "))Beigu apakš

Tālāk redzamajā piemērā funkcija AVERAGE atgriež funkciju AVERAGEA atšķirīgu vērtību, kad aprēķins tiek izmantots šūnās A10 līdz A11

Atbilde uz AVERAGEA formulu ir zemāka par AVERAGE formulu, jo tā aizstāj A11 tekstu ar nulli, un tāpēc vidējās vērtības pārsniedz 13 vērtības, nevis 12 vērtības, ar kurām AVERAGE aprēķina.

Izmantojot AVERAGEIF

Funkcija AVERAGEIF ļauj vidēji aprēķināt šūnu diapazona summu, kas atbilst noteiktiem kritērijiem.

123 Zem vidējā If ()Diapazons ("F31") = WorksheetFunction.AverageIf (Diapazons ("F5: F30"), "Ietaupījumi", diapazons ("G5: G30"))Beigu apakš

Iepriekš minētā procedūra vidēji aprēķinās tikai šūnas diapazonā G5: G30, kur atbilstošajā šūnā F slejā ir vārds “Ietaupījumi”. Izmantotajiem kritērijiem ir jābūt pēdiņās.

WorksheetFunction trūkumi

Kad izmantojat DarblapaFunkcija lai aprēķinātu vidējās vērtības jūsu darblapas diapazonā, tiek atgriezta statiska 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 TestAverage ir izveidojusi vidējo vērtību B11: M11 un ievieto atbildi N11. Kā redzat formulas joslā, šis rezultāts ir skaitlis, nevis formula.

Ja kāda no vērtībām mainās diapazonā (B11: M11), rezultāti N11 mainīsies mainīt.

Tā vietā, lai izmantotu DarblapaFunkcija.Vidējais, varat izmantot VBA, lai šūnā lietotu AVERAGE funkciju, izmantojot Formula vai FormulaR1C1 metodes.

Izmantojot formulas metodi

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

123 ApakšpārbaudeAverageFormula ()Diapazons ("N11"). Formula = "= Vidējais (B11: M11)"Beigu apakš

Izmantojot FormulaR1C1 metodi

FomulaR1C1 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 ApakšpārbaudeAverageFormula ()Diapazons ("N11"). Formula = "= Vidējais (RC [-12]: RC [-1])"Beigu apakš

Tomēr, lai padarītu formulu elastīgāku, mēs varētu grozīt kodu šādi:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Skaits (R [-11] C: R [-1] C)"Beigu apakš

Lai kur jūs atrastos darblapā, formula pēc tam vidēji aprēķinās vērtības 12 šūnās pa kreisi no tās un ievietos atbildi savā ActiveCell. Funkcijas AVERAGE diapazons ir jāatsaucas, izmantojot rindu (R) un kolonnu (C) sintaksi.

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

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

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave