Vba: cara menulis fungsi sumif dan sumifs
Anda bisa menggunakan metode berikut untuk menulis fungsi SUMIF dan SUMIFS menggunakan VBA di Excel:
Metode 1: Fungsi SUMIF di VBA
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Contoh khusus ini akan menjumlahkan nilai dalam rentang B2:B12 hanya jika nilai terkait dalam rentang A2:A12 sama dengan “Mavs” dan menetapkan hasilnya ke sel E2 .
Metode 2: Fungsi SUMIFS di VBA
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Contoh khusus ini akan menjumlahkan nilai dalam rentang C2:C12 hanya jika nilai dalam rentang A2:A12 sama dengan “Mavs” dan nilai dalam 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 SUMIF di VBA
Katakanlah kita ingin menghitung penjumlahan nilai pada kolom poin hanya untuk pemain yang berada di tim Mavs saja.
Kita dapat membuat makro berikut untuk menjalankan fungsi SUMIF ini:
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa sel E2 berisi nilai 73 .
Ini mewakili penjumlahan nilai pada kolom poin pemain tim Mavs.
Kami dapat memverifikasi kebenarannya dengan menghitung secara manual jumlah nilai di kolom poin untuk pemain tim Mavs:
Jumlah poin untuk pemain Mavs: 22 + 10 + 29 + 12 = 73 .
Contoh 2: Fungsi SUMIFS di VBA
Katakanlah kita ingin menghitung jumlah nilai pada kolom assist hanya 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 SUMIFS ini:
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(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 18 .
Ini mewakili penjumlahan nilai pada kolom poin untuk pemain tim Mavs yang mencetak lebih dari 20 poin.
Catatan : Dalam contoh ini, kami membuat fungsi SUMIFS menggunakan dua rentang kriteria tetapi Anda dapat menggunakan rentang kriteria sebanyak yang Anda inginkan dalam metode WorksheetFunction.SumIfs .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menulis fungsi COUNTIF dan COUNTIFS
VBA: Cara menulis fungsi AVERAGEIF dan AVERAGEIFS