Vba: cara menulis fungsi averageif dan averageifs
Anda dapat menggunakan metode berikut untuk menulis fungsi AVERAGEIF dan AVERAGEIFS menggunakan VBA di Excel:
Metode 1: Fungsi AVERAGEIF di VBA
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Contoh khusus ini akan menghitung nilai rata-rata dalam rentang B2:B12 di mana nilai terkait dalam rentang A2:A12 sama dengan “Mavs”, lalu menetapkan hasilnya ke sel E2 .
Metode 2: Fungsi AVERAGEIFS di VBA
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Contoh khusus ini akan menghitung nilai rata-rata pada rentang C2:C12 dimana nilai pada rentang A2:A12 sama dengan “Mavs” dan nilai pada rentang B2:B12 lebih besar dari 20, lalu tetapkan hasilnya ke sel E2 . .
Contoh berikut memperlihatkan cara menggunakan masing-masing metode ini dalam praktik dengan himpunan data berikut di Excel yang berisi informasi tentang berbagai pemain bola basket:
Contoh 1: Fungsi AVERAGEIF di VBA
Katakanlah kita ingin menghitung nilai rata-rata pada kolom poin pemain di tim Mavs.
Kita dapat membuat makro berikut untuk menjalankan fungsi AVERAGEIF ini:
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa sel E2 berisi nilai 18.25 .
Artinya nilai rata-rata pada kolom poin pemain tim Mavs adalah 18,25.
Kami dapat memverifikasi kebenarannya dengan menghitung secara manual nilai rata-rata poin pemain di Mavs:
Poin rata-rata pemain Mavs: (22 + 10 + 29 + 12) / 4 = 18.25 .
Contoh 2: Fungsi AVERAGEIFS di VBA
Katakanlah kita ingin menghitung nilai rata-rata pada kolom assist untuk pemain yang memenuhi kriteria berikut:
- Pemain adalah bagian dari tim Mavs.
- Pemain mencetak lebih dari 20 poin.
Kita dapat membuat makro berikut untuk menjalankan fungsi AVERAGEIFS ini:
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa sel E2 berisi nilai 9 .
Ini memberitahu kita bahwa rata-rata assist di antara pemain yang berada di tim Mavs dan yang telah mencetak lebih dari 20 poin adalah 9.
Catatan : Dalam contoh ini, kami membuat fungsi AVERAGEIFS menggunakan dua rentang kriteria, namun Anda dapat menggunakan rentang kriteria sebanyak yang Anda inginkan dalam metode WorksheetFunction.AverageIfs .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menghitung nilai rata-rata rentang
VBA: Cara menulis fungsi SUMIF dan SUMIFS
VBA: Cara menulis fungsi COUNTIF dan COUNTIFS