VBA keskmine - KESKMINE, KESKMINE, KESKMINE

See õpetus näitab teile, kuidas kasutada VBA Exceli keskmist funktsiooni.

Funktsiooni Excel AVERAGE kasutatakse keskmise arvutamiseks teie töölehe vahemiku lahtritest, millel on väärtused. VBA on külastatud kasutades WorksheetFunction meetod.

KESKMINE töölehtFunktsioon

Objekti WorksheetFunction abil saab helistada enamikule Exceli funktsioonidele, mis on saadaval Exceli dialoogiboksis Lisa funktsioon. Funktsioon KESKMINE on üks neist.

123 AlamkatsefunktsioonVahemik ("D33") = Application.WorksheetFunction.Average ("D1: D32")End Sub

Sul on võimalus olla kuni 30 argumente keskmise funktsiooni. Iga argumendid tuleb viidata lahtrite.

See allpool toodud näide annab lahtrite B11 kuni N11 summa keskmise

123 Alamkatse keskmine ()Vahemik ("O11") = Application.WorksheetFunction.Average (Vahemik ("B11: N11"))End Sub

Allolev näide annab keskmiselt lahtrite B11 kuni N11 summa ja lahtrite B12: N12 summa. Kui te ei kirjuta objekti Application, eeldatakse seda.

123 Alamkatse keskmine ()Vahemik ("O11") = Töölehe funktsioon. Keskmine (vahemik ("B11: N11"), vahemik ("B12: N12"))End Sub

Määramine keskmine tulemus muutuja

Võib -olla soovite oma valemi tulemust kasutada mujal koodis, selle asemel, et seda otse Exceli vahemikku tagasi kirjutada. Sellisel juhul saate tulemuse määrata muutujale, et seda oma koodis hiljem kasutada.

1234567 Alammääramine Keskmine ()Tuhm tulemus täisarvuna'Määrake muutujaresult = WorksheetFunction.Average (vahemik ("A10: N10"))'Näita tulemustMsgBox "Selle vahemiku rakkude keskmine on" & tulemusEnd Sub

KESKMINE koos vahemiku objektiga

Objektile Range saate määrata lahtrirühma ja seejärel kasutada seda vahemiku objekti koos TöölehtFunktsioon objekti.

123456789 AlamkatseAverageRange ()Dim rng As Range'määrake lahtrite vahemikMäära rng = vahemik ("G2: G7")'kasutage valemis vahemikkuVahemik ("G8") = WorksheetFunction.Average (rng)'vabastage vahemiku objektMäära rng = mitte midagiEnd Sub

Kordarvude Range objektid

Samamoodi saate arvutada mitme vahemiku objekti lahtrite keskmist.

123456789101112 AlamkatseAverageMultipleRanges ()Dim rngA As RangeDim rngB kui vahemik'määrake lahtrite vahemikSet rngA = Range ( "D2: D10")Määra rngB = vahemik ("E2: E10")'kasutage valemis vahemikkuVahemik ("E11") = WorksheetFunction.Average (rngA, rngB)'vabastage vahemiku objektMäära rngA = Mitte midagiMäära rngB = mitte midagiEnd Sub

AVERAGEA kasutamine

Funktsioon AVERAGEA erineb funktsioonist AVERAGE selle poolest, et loob keskmise kõikidest vahemiku lahtritest, isegi kui ühes lahtris on tekst - see asendab teksti nulliga ja võtab selle keskmise arvutamisel arvesse. Funktsioon KESKMINE ignoreerib seda lahtrit ja ei võta seda arvesse.

123 Alamkatse KeskmineA ()Vahemik ("B8) = Application.WorksheetFunction.AverageA (Vahemik (" A10: A11 "))End Sub

Allolevas näites tagastab funktsioon KESKMINE funktsiooni AVERAGEA teistsuguse väärtuse, kui arvutust kasutatakse lahtritel A10 kuni A11

Vastus AVERAGEA valemile on madalam kui AVERAGE valem, kuna see asendab A11 teksti nulliga ja seega keskmised on üle 13 väärtuse, mitte need 12 väärtust, mida AVERAGE arvutab.

AVERAGEIF -i kasutamine

Funktsioon AVERAGEIF võimaldab teil keskmistada teatud kriteeriumidele vastava lahtrivahemiku summa.

123 Alam keskmine Kui ()Vahemik ("F31") = WorksheetFunction.AverageIf (Vahemik ("F5: F30"), "Säästud", vahemik ("G5: G30"))End Sub

Ülaltoodud protseduur keskmistab ainult lahtreid vahemikus G5: G30, kus veeru F vastavas lahtris on sõna „Säästud”. Teie kasutatavad kriteeriumid peavad olema jutumärkides.

Töölehe funktsiooni puudused

Kui kasutate TöölehtFunktsioon töölehe vahemiku väärtuste keskmistamiseks tagastatakse staatiline väärtus, mitte paindlik valem. See tähendab, et kui teie arvud Excelis muutuvad, siis väärtus, mille on tagastanud TöölehtFunktsioon ei muutu.

Ülaltoodud näites on protseduur TestAverage loonud B11: M11 keskmise ja pannud vastuse N11 -sse. Nagu näete valemiribal, on see tulemus joonis ja mitte valem.

Kui mõni väärtustest muutub seetõttu vahemikus (B11: M11), muutuvad N11 tulemused MITTE muutus.

Selle asemel, et kasutada TöölehtFunktsioon.Keskmine, saate VBA abil funktsiooni AVERAGE rakendada lahtrile, kasutades klahvi Valem või Valem R1C1 meetodeid.

Valemimeetodi kasutamine

Valemimeetod võimaldab teil osutada konkreetselt lahtrite vahemikule, nt: B11: M11, nagu allpool näidatud.

123 Alamkatse Keskmine valem ()Vahemik ("N11"). Valem = "= Keskmine (B11: M11)"End Sub

Kasutades meetodit FormulaR1C1

FomulaR1C1 meetod on paindlikum, kuna see ei piira teid teatud lahtrite vahemikuga. Allolev näide annab meile sama vastuse nagu ülaltoodud.

123 Alamkatse Keskmine valem ()Vahemik ("N11"). Valem = "= Keskmine (RC [-12]: RC [-1])"End Sub

Kuid valemi paindlikumaks muutmiseks võiksime koodi muuta järgmiselt:

123 Alam TestCountFormula ()ActiveCell.FormulaR1C1 = "= Arv (R [-11] C: R [-1] C)"End Sub

Kus iganes te oma töölehel asute, keskmistab valem seejärel sellest vasakul olevate 12 lahtri väärtused ja paneb vastuse teie ActiveCelli. Funktsiooni KESKMINE vahemikule tuleb viidata, kasutades rida (R) ja veerg (C) süntaksit.

Mõlemad meetodid võimaldavad teil VBA -s kasutada dünaamilisi Exceli valemeid.

Nüüd on N11 väärtuse asemel valem.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave