Menggunakan SUMIF dengan macro

Menggunakan SUMIF dengan macro


Melengkapi pembahasan tentang SUMIF pada kesempatan kali ini saya akan membahas kembali fungsi SUMIF, jika pada kesempatan yang lalu saya membahas SUMIF dengan rumus maka kali ini saya akan membahas SUMIF dengan kode macro / VBA. Fungsi SUMIF di Excel digunakan untuk melakukan perhitungan atau penjumlahan data dengan kriteria tertentu, perhatikan gambar dibawah ini



Pada gambar diatas jika ingin menjumlahkan nilai yang didapat Abu Bakar dengan rumus SUMIF maka cukup kita tulis rumus SUMIF dibawah ini kedalam kolom J3
=SUMIF($B$3:$E$22;H3;$E$3:$E$22)

SUMIF dengan macro yang akan saya bahas sebenarnya merupakan fungsi dari LOOPING (silahkan baca tentang looping disini ). Looping adalah proses yang dilakukan secara berulang-ulang sampai batas yang ditentukan. Pada kasus diatas kita akan mencari Nilai Mapel yang didapatkan oleh siswa bernama Abu Bakar pada tabel TOTAL NILAI berdasarkan tabel sumber NILAI SISWA. Untuk memecahkan kasus ini gunakan kode macro dibawah ini

Sub SumNilaiSiswa ()
Range("J3").Value = 0
For NamaSiswa = 1 To WorksheetFunction.CountA(Range("A3:A22"))
If Range("H3").Value = Cells(NamaSiswa + 2, 2).Value Then
Range("J3").Value = Range("J3").Value + Cells(NamaSiswa + 2, 5).Value
End If
Next NamaSiswa
End Sub

Range("A3:A22") Menentukan jumlah pengulangan baris pada tabel NILAI SISWA
Range("H3").Value Merupakan kriteria Abu Bakar pada tabel TOTAL NILAI
Range("J3").Value Merupakan tempat penjumlahan nilai Abu Bakar
Cells(NamaSiswa + 2, 5).Value Merupakan nilai mapel pada tabel NILAI SISWA

+ Lihat hasilnya


Masalahnya ada beberapa nama siswa sekaligus pada tabel TOTAL NILAI dan saya rasa jika kita menuliskan kode macro diatas berulang ulang maka akan merepotkan dan memakan banyak tempat (pada jendela VBE), untuk itu saya sudah menyiapkan kode macro sebagai pemecah permasalahan ini, yaitu

Sub SumNilaiSiswa ()
Range("J3:J12").Value = 0
For NamaSiswa = 1 To WorksheetFunction.CountA(Range("A3:A22"))
For NamaSiswa1 = 1 To WorksheetFunction.CountA(Range("G3:G12"))
If Cells(NamaSiswa1 + 2, 8).Value = Cells(NamaSiswa + 2, 2).Value Then
Cells(NamaSiswa1 + 2, 10).Value = Cells(NamaSiswa1 + 2, 10).Value + Cells(NamaSiswa + 2, 5).Value
End If
Next NamaSiswa1
Next NamaSiswa
End Sub

+ Lihat hasilnya


Demikianlah cara menggunakan SUMIF dengan macro, artikel ini sebagai penyempurna artikel sebelumnya yaitu Menggunakan Fungsi SUMIF dan SUMIFS, semoga dapat dipahami dan bermanfaat bagi kita semua , Aamiin




Share this: