Masih Menulis Rumus di Worksheet? Coba WorksheetFunction di VBA Excel

Salah satu kelebihan Excel adalah memiliki ratusan fungsi bawaan yang siap digunakan, mulai dari perhitungan sederhana hingga analisis data yang kompleks. Fungsi-fungsi seperti SUM, AVERAGE, COUNTIF, VLOOKUP, dan MATCH sudah sangat familiar bagi pengguna Excel.

Kabar baiknya, fungsi-fungsi tersebut juga dapat digunakan langsung di dalam VBA melalui objek WorksheetFunction. Dengan begitu, Anda tidak perlu membuat rumus di worksheet hanya untuk memperoleh hasil perhitungan.

Pendekatan ini membuat kode lebih rapi, proses lebih otomatis, dan worksheet tetap bersih dari rumus yang sebenarnya hanya dibutuhkan oleh program.


Apa Itu WorksheetFunction?

WorksheetFunction adalah objek milik Application yang menyediakan akses ke berbagai fungsi bawaan Excel dari dalam VBA.

Sintaks dasarnya adalah:

Application.WorksheetFunction.NamaFungsi(...)

Contohnya:

Application.WorksheetFunction.Sum(Range("A1:A10"))

Kode tersebut menghasilkan nilai yang sama seperti rumus berikut di worksheet.

=SUM(A1:A10)

Menggunakan Fungsi SUM

Fungsi SUM digunakan untuk menjumlahkan nilai.

Dim Total As Double

Total = Application.WorksheetFunction.Sum(Range("B2:B20"))

MsgBox Total

Hasil penjumlahan langsung disimpan ke dalam variabel Total.


Menggunakan Fungsi AVERAGE

Untuk menghitung nilai rata-rata, gunakan Average.

Dim NilaiRata As Double

NilaiRata = Application.WorksheetFunction.Average(Range("C2:C20"))

Teknik ini sangat berguna saat membuat laporan statistik atau rekapitulasi nilai.


Menggunakan Fungsi MAX dan MIN

Anda juga dapat mencari nilai terbesar maupun terkecil.

Dim NilaiTerbesar As Double
Dim NilaiTerkecil As Double

NilaiTerbesar = Application.WorksheetFunction.Max(Range("A2:A100"))

NilaiTerkecil = Application.WorksheetFunction.Min(Range("A2:A100"))

Menggunakan COUNT

Fungsi Count menghitung jumlah sel yang berisi angka.

Dim Jumlah As Long

Jumlah = Application.WorksheetFunction.Count(Range("A:A"))

Jika ingin menghitung semua sel yang tidak kosong, gunakan fungsi CountA.


Menggunakan COUNTIF

CountIF digunakan untuk menghitung jumlah data yang memenuhi suatu kriteria.

Dim TotalLulus As Long

TotalLulus = Application.WorksheetFunction.CountIf( _
    Range("D2:D100"), _
    "Lulus")

Kode tersebut menghitung berapa banyak sel yang berisi teks Lulus.


Menggunakan VLOOKUP

Fungsi VLookup dapat digunakan untuk mencari data pada sebuah tabel.

Dim NamaBarang As Variant

NamaBarang = Application.WorksheetFunction.VLookup( _
    "BRG001", _
    Range("A2:C20"), _
    2, _
    False)

Jika kode barang ditemukan, VBA akan mengembalikan nama barang pada kolom kedua.


Menggunakan MATCH

Fungsi Match digunakan untuk mencari posisi suatu nilai.

Dim Posisi As Variant

Posisi = Application.WorksheetFunction.Match( _
    "Laptop", _
    Range("A2:A20"), _
    0)

Hasilnya berupa nomor urut relatif dalam range yang diperiksa.


Menggunakan ROUND

Untuk membulatkan angka, gunakan Round.

Dim Hasil As Double

Hasil = Application.WorksheetFunction.Round(125.6789, 2)

Nilai yang dihasilkan adalah:

125,68

Studi Kasus

Misalkan Anda ingin menampilkan ringkasan penjualan tanpa membuat satu pun rumus di worksheet.

Dim Total As Double
Dim Rata As Double
Dim Maksimum As Double

With Application.WorksheetFunction

    Total = .Sum(Range("D2:D100"))

    Rata = .Average(Range("D2:D100"))

    Maksimum = .Max(Range("D2:D100"))

End With

MsgBox _
    "Total : " & Total & vbCrLf & _
    "Rata-rata : " & Rata & vbCrLf & _
    "Tertinggi : " & Maksimum

Menggunakan blok With membuat kode lebih singkat karena objek WorksheetFunction tidak perlu ditulis berulang kali.


WorksheetFunction vs Evaluate

WorksheetFunctionEvaluate
Memanggil fungsi Excel melalui objek VBA Menjalankan rumus Excel dalam bentuk string
Sintaks lebih jelas untuk fungsi tertentu Lebih fleksibel untuk rumus yang dibentuk secara dinamis
Cocok untuk pemanggilan fungsi secara langsung Cocok untuk ekspresi atau rumus yang kompleks
Menghasilkan kode yang mudah dibaca Memerlukan penulisan string rumus

Keduanya memiliki kelebihan masing-masing. Pilih metode yang paling sesuai dengan kebutuhan Anda.


Kesalahan yang Sering Dilakukan

Menggunakan WorksheetFunction Tanpa Menangani Error

Beberapa fungsi, seperti VLookup atau Match, akan menghasilkan Run-time Error jika data yang dicari tidak ditemukan.

Gunakan penanganan error jika kemungkinan tersebut dapat terjadi.


Salah Menentukan Range

Pastikan range yang digunakan sesuai dengan kebutuhan fungsi.

Sebagai contoh, VLookup harus mencari pada kolom pertama dari tabel referensi.


Memanggil Objek Berulang Kali

Kurang efisien:

Application.WorksheetFunction.Sum(...)
Application.WorksheetFunction.Max(...)
Application.WorksheetFunction.Min(...)

Lebih ringkas:

With Application.WorksheetFunction

    ' Memanggil beberapa fungsi

End With

Tips Praktis

💡 Gunakan WorksheetFunction ketika Anda ingin memanfaatkan fungsi bawaan Excel tanpa menulis rumus di worksheet.

💡 Gunakan blok With jika memanggil beberapa fungsi sekaligus.

💡 Tangani kemungkinan error saat menggunakan fungsi seperti VLookup dan Match.

💡 Gunakan Evaluate jika rumus harus dibentuk secara dinamis.

💡 Pilih fungsi yang paling sesuai agar kode tetap mudah dibaca.


Ringkasan

FungsiKegunaan
Sum Menjumlahkan data
Average Menghitung rata-rata
Max Mencari nilai terbesar
Min Mencari nilai terkecil
Count Menghitung sel yang berisi angka
CountIf Menghitung data berdasarkan kriteria
VLookup Mencari data dalam tabel
Match Menentukan posisi data
Round Membulatkan angka

Kesimpulan

WorksheetFunction memungkinkan Anda memanfaatkan berbagai fungsi bawaan Excel langsung dari dalam VBA. Dengan objek ini, proses perhitungan, pencarian, maupun analisis data dapat dilakukan tanpa harus menambahkan rumus ke worksheet. Selain membuat workbook lebih bersih, penggunaan WorksheetFunction juga menghasilkan kode yang lebih terstruktur dan mudah dipahami, terutama ketika Anda bekerja dengan fungsi-fungsi Excel yang sudah dikenal.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.