VBA Átlag - ÁTLAG, ÁTLAG, ÁTLAG

Ez az oktatóanyag megmutatja, hogyan kell használni az Excel Átlag funkciót a VBA -ban.

Az Excel ÁTLAG függvény egy átlag kiszámítására szolgál a munkalap tartománycelláiból, amelyekben vannak értékek. A VBA -ban a WorksheetFunction módszerrel érhető el.

ÁTLAG munkalapFunkció

A WorksheetFunction objektum a legtöbb Excel -funkció meghívására használható, amelyek az Excel Funkció beszúrása párbeszédpaneljén érhetők el. Ezek közé tartozik az ÁTLAG funkció.

123 Sub TestFunctionTartomány ("D33") = Application.WorksheetFunction.Average ("D1: D32")End Sub

Az ÁTLAG függvényben legfeljebb 30 argumentum áll rendelkezésre. Minden érvnek cellatartományra kell vonatkoznia.

Ez az alábbi példa a B11 -N11 cellák összegének átlagát adja meg

123 Sub TestAverage ()Tartomány ("O11") = Application.WorksheetFunction.Average (tartomány ("B11: N11"))End Sub

Az alábbi példa a B11 – N11 cellák összegének és a B12: N12 cellák összegének átlagát adja. Ha nem írja be az Application objektumot, akkor azt feltételezi.

123 Sub TestAverage ()Tartomány ("O11") = WorksheetFunction.Average (tartomány ("B11: N11"), tartomány ("B12: N12"))End Sub

ÁTLAGOS eredmény hozzárendelése egy változóhoz

Érdemes a képlet eredményét máshol használni a kódban, nem pedig közvetlenül visszaírni egy Excel tartományba. Ebben az esetben az eredményt hozzárendelheti egy változóhoz, amelyet később használhat a kódban.

1234567 Hozzárendelés átlaga ()Halvány eredmény Egész számként'Rendelje hozzá a változóteredmény = WorksheetFunction.Average (tartomány ("A10: N10"))'Mutasd az eredménytMsgBox "Az ebben a tartományban lévő cellák átlaga" & resultEnd Sub

ÁTLAG egy tartomány objektummal

Cellacsoportot rendelhet a Range objektumhoz, majd a Range objektumot a MunkalapFunkció tárgy.

123456789 Sub TestAverageRange ()Dim rng mint tartomány'rendelje hozzá a cellák tartományátRng = tartomány beállítása ("G2: G7")'használja a tartományt a képletbenTartomány ("G8") = WorksheetFunction.Average (rng)'engedje el a tartományobjektumotSet rng = SemmiEnd Sub

ÁTLAGOS Több tartományú objektumok

Hasonlóképpen, több tartomány objektumból is kiszámíthatja a cellák átlagát.

123456789101112 Sub TestAverageMultipleRanges ()Dim rngA As RangeDim rngB mint tartomány'rendelje hozzá a cellák tartományátÁllítsa be az rngA = tartományt ("D2: D10")Állítsa be az rngB = tartományt ("E2: E10")'használja a tartományt a képletbenTartomány ("E11") = WorksheetFunction.Average (rngA, rngB)'engedje el a tartományobjektumotSet rngA = SemmiSet rngB = SemmiEnd Sub

Az AVERAGEA használata

Az AVERAGEA függvény abban különbözik az ÁTLAG függvénytől, hogy átlagot hoz létre a tartomány összes cellájából, még akkor is, ha az egyik cella szöveget tartalmaz - a szöveget nullával helyettesíti, és ezt az átlag kiszámításakor is figyelembe veszi. Az ÁTLAG függvény figyelmen kívül hagyja ezt a cellát, és nem veszi figyelembe a számításban.

123 Rész tesztAverageA ()Tartomány ("B8) = Application.WorksheetFunction.AverageA (tartomány (" A10: A11 "))End Sub

Az alábbi példában az ÁTLAG függvény más értéket ad vissza az AVERAGEA függvénynek, ha a számítást az A10 - A11 cellákra használják.

Az AVERAGEA képletre adott válasz alacsonyabb, mint az ÁTLAG képlet, mivel az A11 szövegét nullával helyettesíti, és ezért 13 -nál több átlagot jelent, nem pedig azt a 12 értéket, amelyen az ÁTLAG számol.

Az AVERAGEIF használatával

Az AVERAGEIF függvény lehetővé teszi, hogy átlagolja egy bizonyos feltételeknek megfelelő cellatartomány összegét.

123 Átlag alatti Ha ()Tartomány ("F31") = WorksheetFunction.AverageIf (Tartomány ("F5: F30"), "Takarék", Tartomány ("G5: G30"))End Sub

A fenti eljárás csak a G5: G30 tartomány celláit fogja átlagolni, ahol az F oszlop megfelelő cellájában a „Takarék” szó szerepel. Az Ön által használt kritériumoknak idézőjelek között kell lenniük.

A WorksheetFunction hátrányai

Amikor a MunkalapFunkció a munkalap egy tartományának átlagolásához statikus érték kerül visszaadásra, nem rugalmas képlet. Ez azt jelenti, hogy amikor az Excel számai megváltoznak, akkor a MunkalapFunkció nem fog változni.

A fenti példában a TestAverage eljárás létrehozta a B11: M11 átlagát, és a választ N11 -be tette. Amint a képletsávban látható, ez az eredmény egy ábra és nem képlet.

Ha valamelyik érték ezért változik a tartományban (B11: M11), akkor az N11 eredményei változnak NEM változás.

Ahelyett, hogy a MunkalapFunkció.Átlagos, a VBA segítségével alkalmazhatja az ÁTLAG funkciót egy cellára a Képlet vagy KépletR1C1 mód.

A képlet módszer használatával

A képlet módszer lehetővé teszi, hogy konkrétan mutasson egy cellatartományra, például: B11: M11, amint az alább látható.

123 Sub TestAverageFormula ()Tartomány ("N11"). Képlet = "= Átlag (B11: M11)"End Sub

A FormulaR1C1 módszer használatával

A FomulaR1C1 módszer rugalmasabb, mivel nem korlátozza a cellák meghatározott tartományára. Az alábbi példa ugyanazt a választ adja, mint a fenti.

123 Sub TestAverageFormula ()Tartomány ("N11"). Képlet = "= Átlag (RC [-12]: RC [-1])"End Sub

A képlet rugalmasabbá tétele érdekében azonban módosíthatjuk a kódot így:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Szám (R [-11] C: R [-1] C)"End Sub

Bárhol is van a munkalapon, a képlet ezután átlagolja a közvetlenül tőle balra lévő 12 cella értékeit, és a választ az ActiveCell -be helyezi. Az ÁTLAG funkcióban lévő tartományra a Sor (R) és az Oszlop (C) szintaxis segítségével kell hivatkozni.

Mindkét módszer lehetővé teszi a dinamikus Excel képletek használatát a VBA -n belül.

Most az N11 képlet lesz az érték helyett.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave