VBA Ortalaması - ORTALAMA, ORTALAMA, ORTALAMA

Bu öğretici, VBA'da Excel Ortalama işlevini nasıl kullanacağınızı gösterecektir.

Excel ORTALAMA İşlevi, Çalışma Sayfanızdaki içinde değerler bulunan bir aralık hücrelerinden bir ortalamayı hesaplamak için kullanılır. VBA'da WorksheetFunction yöntemi kullanılarak erişilir.

ORTALAMA Çalışma SayfasıFonksiyon

WorksheetFunction nesnesi, Excel'deki İşlev Ekle iletişim kutusunda bulunan Excel işlevlerinin çoğunu çağırmak için kullanılabilir. ORTALAMA işlevi bunlardan biridir.

123 Alt TestFonksiyonuRange("D33") = Application.WorksheetFunction.Average("D1:D32")Alt Bitiş

ORTALAMA işlevinde en fazla 30 bağımsız değişkene sahip olabilirsiniz. Bağımsız değişkenlerin her biri bir hücre aralığına başvurmalıdır.

Aşağıdaki bu örnek, B11 ila N11 hücrelerinin toplamının ortalamasını üretecektir.

123 Alt TestAverage()Range("O11") = Application.WorksheetFunction.Average(Range("B11:N11"))Alt Bitiş

Aşağıdaki örnek, B11 ila N11 arasındaki hücrelerin toplamının ve B12:N12'deki hücrelerin toplamının bir ortalamasını üretecektir. Application nesnesini yazmazsanız, olduğu varsayılacaktır.

123 Alt TestAverage()Aralık("O11") = Çalışma SayfasıFunction.Average(Range("B11:N11"),Range("B12:N12"))Alt Bitiş

Bir Değişkene ORTALAMA sonuç atama

Formülünüzün sonucunu doğrudan bir Excel Aralığına yazmak yerine kodda başka bir yerde kullanmak isteyebilirsiniz. Bu durumda, sonucu daha sonra kodunuzda kullanmak üzere bir değişkene atayabilirsiniz.

1234567 Alt AssignAverage()Sonucu Tamsayı Olarak Karart'Değişkeni atasonuç = WorksheetFunction.Average(Range("A10:N10"))'Sonucu gösterMsgBox "Bu aralıktaki hücrelerin ortalaması " & sonuçAlt Bitiş

Bir Aralık Nesnesiyle ORTALAMA

Range nesnesine bir hücre grubu atayabilir ve ardından bu Range nesnesini Çalışma SayfasıFonksiyonu nesne.

123456789 Alt TestAverageRange()Aralık Olarak Karartma'hücre aralığını ataSet rng = Aralık("G2:G7")'formüldeki aralığı kullanRange("G8") = WorksheetFunction.Average(rng)'aralık nesnesini serbest bırakRng ayarla = Hiçbir şeyAlt Bitiş

ORTALAMA Çoklu Aralık Nesneleri

Benzer şekilde, birden çok Menzil Nesnesinden hücrelerin ortalamasını hesaplayabilirsiniz.

123456789101112 Alt TestAverageMultipleRanges()Aralık olarak Dim rngAAralık olarak Dim rngB'hücre aralığını atarngA = Aralık ("D2:D10") ayarlarngB = Aralık ("E2:E10") olarak ayarla'formüldeki aralığı kullanAralık("E11") = Çalışma SayfasıFunction.Average(rngA, rngB)'aralık nesnesini serbest bırakrngA'yı ​​ayarla = Hiçbir şeyrngB'yi ayarla = Hiçbir şeyAlt Bitiş

ORTALAMA kullanma

ORTALAMA işlevi, ORTALAMA işlevinden, hücrelerden birinde metin olsa bile, bir aralıktaki tüm hücrelerden bir ortalama oluşturmasıyla farklıdır - metni sıfırla değiştirir ve bunu ortalamanın hesaplanmasına dahil eder. ORTALAMA işlevi o hücreyi yok sayar ve hesaplamaya dahil etmez.

123 Alt TestAverageA()Aralık("B8) = Application.WorksheetFunction.AverageA(Range("A10:A11"))Alt Bitiş

Aşağıdaki örnekte, ORTALAMA işlevi, hesaplama A10 ila A11 arasındaki hücrelerde kullanıldığında, ORTALAMA işlevine farklı bir değer döndürür.

ORTALAMA formülünün yanıtı, A11'deki metni sıfırla değiştirdiği için ORTALAMA formülünden daha düşüktür ve bu nedenle, ORTALAMA'nın hesapladığı 12 değer yerine 13'ün üzerinde değerin ortalamasını alır.

AVERAGEIF kullanma

EĞERORTALAMA İşlevi, belirli bir ölçütü karşılayan bir hücre aralığının toplamının ortalamasını almanızı sağlar.

123 Alt OrtalamaIf()Range("F31") = WorksheetFunction.AverageIf(Range("F5:F30"), "Tasarruf", Range("G5:G30"))Alt Bitiş

Yukarıdaki prosedür, yalnızca F sütunundaki karşılık gelen hücrenin içinde 'Tasarruf' kelimesinin bulunduğu G5:G30 aralığındaki hücrelerin ortalamasını alacaktır. Kullandığınız kriterler tırnak içinde olmalıdır.

WorksheetFunction'ın Dezavantajları

kullandığınızda Çalışma SayfasıFonksiyonu çalışma sayfanızdaki bir aralıktaki değerlerin ortalamasını almak için esnek bir formül değil, statik bir değer döndürülür. Bu, Excel'deki rakamlarınız değiştiğinde, tarafından döndürülen değer anlamına gelir. Çalışma SayfasıFonksiyonu değişmeyecek.

Yukarıdaki örnekte, TestAverage prosedürü, B11:M11'in ortalamasını oluşturmuş ve cevabı N11'e koymuştur. Formül çubuğunda görebileceğiniz gibi, bu sonuç bir rakamdır, formül değil.

Bu nedenle Range(B11:M11 ) içindeki değerlerden herhangi biri değişirse, N11'deki sonuçlar OLUMSUZ değiştirmek.

kullanmak yerine Çalışma SayfasıFonksiyon.Ortalamakullanarak bir hücreye ORTALAMA İşlevini uygulamak için VBA'yı kullanabilirsiniz. formül veya formülR1C1 yöntemler.

Formül Yöntemini Kullanma

Formül yöntemi, aşağıda gösterildiği gibi, örneğin: B11:M11 gibi belirli bir hücre aralığına işaret etmenizi sağlar.

123 Alt TestAverageFormula()Aralık("N11").Formül = "=Ortalama(B11:M11)"Alt Bitiş

FormulaR1C1 Yöntemini Kullanma

FomulaR1C1 yöntemi, sizi belirli bir hücre aralığıyla sınırlamadığı için daha esnektir. Aşağıdaki örnek bize yukarıdakiyle aynı cevabı verecektir.

123 Alt TestAverageFormula()Aralık("N11").Formül = "=Ortalama(RC[-12]:RC[-1])"Alt Bitiş

Ancak, formülü daha esnek hale getirmek için kodu şu şekilde değiştirebiliriz:

123 Alt TestCountFormula()ActiveCell.FormulaR1C1 = "=Sayım(R[-11]C:R[-1]C)"Alt Bitiş

Çalışma sayfanızın neresinde olursanız olun, formül daha sonra doğrudan solundaki 12 hücredeki değerlerin ortalamasını alır ve yanıtı ActiveCell'inize yerleştirir. ORTALAMA işlevinin içindeki Aralık, Satır (R) ve Sütun (C) sözdizimi kullanılarak başvurulmalıdır.

Bu yöntemlerin her ikisi de VBA içinde Dinamik Excel formüllerini kullanmanızı sağlar.

Artık N11'de bir değer yerine bir formül olacak.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave