VBA Gjennomsnitt - GJENNOMSNITT, GJENNOMSNITT, GJENNOMSNITT

Denne opplæringen viser deg hvordan du bruker Excel Average -funksjonen i VBA.

Excel -gjennomsnittsfunksjonen brukes til å beregne et gjennomsnitt fra en cellecelle i regnearket som har verdier i dem. I VBA får du tilgang til den ved hjelp av metoden WorksheetFunction.

GJENNOMSNITT Arbeidsark Funksjon

WorksheetFunction -objektet kan brukes til å ringe de fleste Excel -funksjonene som er tilgjengelige i dialogboksen Sett inn funksjon i Excel. AVERAGE -funksjonen er en av dem.

123 Sub TestFunksjonOmråde ("D33") = Application.WorksheetFunction.Average ("D1: D32")Slutt Sub

Du kan ha opptil 30 argumenter i gjennomsnittsfunksjonen. Hvert av argumentene må referere til en rekke celler.

Dette eksemplet nedenfor vil produsere gjennomsnittet av summen av cellene B11 til N11

123 Deltest Gjennomsnitt ()Range ("O11") = Application.WorksheetFunction.Average (Range ("B11: N11"))Slutt Sub

Eksemplet nedenfor vil produsere et gjennomsnitt av summen av cellene i B11 til N11 og summen av cellene i B12: N12. Hvis du ikke skriver Application -objektet, antas det.

123 Deltest Gjennomsnitt ()Range ("O11") = WorksheetFunction.Average (Range ("B11: N11"), Range ("B12: N12"))Slutt Sub

Tilordne et GJENNOMSNITT resultat til en variabel

Det kan være lurt å bruke resultatet av formelen din andre steder i koden i stedet for å skrive det direkte tilbake til et Excel -område. Hvis dette er tilfelle, kan du tilordne resultatet til en variabel som skal brukes senere i koden.

1234567 Sub AssignAverage ()Dim resultat som heltall'Tilordne variabelenresult = WorksheetFunction.Average (Område ("A10: N10"))'Vis resultatetMsgBox "Gjennomsnittet for cellene i dette området er" og resultatSlutt Sub

GJENNOMSNITT med et rekkeviddeobjekt

Du kan tilordne en gruppe celler til Range -objektet, og deretter bruke det Range -objektet med Arbeidsark Funksjon gjenstand.

123456789 Sub TestAverageRange ()Dim rng As Range'tilordne celleområdetSett rng = Range ("G2: G7")'bruk området i formelenOmråde ("G8") = WorksheetFunction.Average (rng)'slipp rekkeviddeobjektetSett rng = ingentingSlutt Sub

GJENNOMSNITT Flere objekter i rekkevidde

På samme måte kan du beregne gjennomsnittet av cellene fra flere rekkeviddeobjekter.

123456789101112 Sub TestAverageMultipleRanges ()Dim rngA As RangeDim rngB som område'tilordne celleområdetSett rngA = Range ("D2: D10")Sett rngB = Range ("E2: E10")'bruk området i formelenOmråde ("E11") = WorksheetFunction.Average (rngA, rngB)'slipp rekkeviddeobjektetSett rngA = IngentingSett rngB = IngentingSlutt Sub

Bruker AVERAGEA

AVERAGEA -funksjonen skiller seg fra AVERAGE -funksjonen ved at den skaper et gjennomsnitt fra alle cellene i et område, selv om en av cellene har tekst i den - den erstatter teksten med en null og inkluderer den ved beregning av gjennomsnittet. GJENNOMSNITT -funksjonen ville ignorere den cellen og ikke ta den med i beregningen.

123 Deltest GjennomsnittA ()Område ("B8) = Application.WorksheetFunction.AverageA (Range (" A10: A11 "))Slutt Sub

I eksemplet nedenfor returnerer AVERAGE -funksjonen en annen verdi til AVERAGEA -funksjonen når beregningen brukes på cellene A10 til A11

Svaret for AVERAGEA -formelen er lavere enn GJENNOMSNITTEL -formelen ettersom den erstatter teksten i A11 med en null, og derfor gjennomsnitt over 13 verdier i stedet for de 12 verdiene som gjennomsnittet beregner over.

Bruker AVERAGEIF

AVERAGEIF -funksjonen lar deg gjennomsnittlig summen av et celleområde som oppfyller visse kriterier.

123 Del gjennomsnitt Hvis ()Range ("F31") = WorksheetFunction.AverageIf (Range ("F5: F30"), "Savings", Range ("G5: G30"))Slutt Sub

Fremgangsmåten ovenfor vil bare gjennomsnittliggjøre cellene i område G5: G30 der den tilsvarende cellen i kolonne F har ordet ‘Savings’ i den. Kriteriene du bruker må stå i anførselstegn.

Ulemper med regnearkfunksjon

Når du bruker Arbeidsark Funksjon For å gjennomsnittlig verdiene i et område i regnearket, returneres en statisk verdi, ikke en fleksibel formel. Dette betyr at når tallene i Excel endres, vil verdien som er returnert av Arbeidsark Funksjon vil ikke endre seg.

I eksemplet ovenfor har prosedyren TestAverage -prosedyren laget gjennomsnittet av B11: M11 og satt svaret i N11. Som du kan se i formellinjen, er dette resultatet en figur og ikke en formel.

Hvis noen av verdiene derfor endres i området (B11: M11), vil resultatene i N11 IKKE endring.

I stedet for å bruke Arbeidsark Funksjon. Gjennomsnitt, kan du bruke VBA til å bruke gjennomsnittsfunksjonen på en celle ved hjelp av Formel eller FormelR1C1 metoder.

Ved hjelp av formelmetoden

Formelmetoden lar deg peke spesifikt på et celleområde, for eksempel: B11: M11 som vist nedenfor.

123 Sub TestAverageFormula ()Område ("N11"). Formel = "= Gjennomsnitt (B11: M11)"Slutt Sub

Bruke FormulaR1C1 -metoden

FomulaR1C1 -metoden er mer fleksibel ved at den ikke begrenser deg til et angitt celleområde. Eksemplet nedenfor gir oss det samme svaret som det ovenfor.

123 Sub TestAverageFormula ()Område ("N11"). Formel = "= Gjennomsnitt (RC [-12]: RC [-1])"Slutt Sub

For å gjøre formelen mer fleksibel, kan vi imidlertid endre koden slik at den ser slik ut:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Antall (R [-11] C: R [-1] C)"Slutt Sub

Uansett hvor du er i regnearket, vil formelen deretter gjennomsnittet verdiene i de 12 cellene direkte til venstre for det og plassere svaret i ActiveCell. Området inne i AVERAGE -funksjonen må refereres til ved bruk av rad (R) og kolonne (C) syntaks.

Begge disse metodene lar deg bruke dynamiske Excel -formler i VBA.

Det vil nå være en formel i N11 i stedet for en verdi.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave