Salah satu pekerjaan yang paling sering dilakukan di Excel adalah menyaring data. Misalnya, Anda hanya ingin melihat transaksi pada bulan tertentu, menampilkan produk dengan stok yang hampir habis, atau mencari pelanggan dari kota tertentu.
Jika dilakukan secara manual, proses tersebut cukup mudah untuk data yang sedikit. Namun, ketika jumlah data mencapai ribuan baris dan harus dilakukan berulang kali, cara manual menjadi kurang efisien.
Melalui VBA Excel, Anda dapat mengaktifkan AutoFilter secara otomatis sehingga pengguna langsung melihat data yang sesuai dengan kriteria tanpa perlu melakukan filter secara manual.
Mengenal AutoFilter
AutoFilter adalah metode yang digunakan untuk menyaring data pada sebuah tabel berdasarkan kriteria tertentu.
Sintaks sederhananya adalah:
Range("A1:D100").AutoFilter
Kode tersebut akan menambahkan tombol filter pada setiap header kolom.
Menampilkan Data Berdasarkan Nilai Tertentu
Misalkan kolom C berisi nama kota.
Untuk menampilkan data yang berasal dari Surabaya, gunakan kode berikut.
Range("A1:D100").AutoFilter _
Field:=3, _
Criteria1:="Surabaya"
Penjelasan:
-
Field:=3berarti filter diterapkan pada kolom ketiga dalam range. -
Criteria1adalah nilai yang akan dicari.
Menggunakan Lebih dari Satu Kriteria
AutoFilter juga dapat digunakan untuk menyaring beberapa nilai sekaligus.
Range("A1:D100").AutoFilter _
Field:=3, _
Criteria1:=Array("Surabaya", "Malang"), _
Operator:=xlFilterValues
Hasilnya, hanya data dengan kota Surabaya atau Malang yang akan ditampilkan.
Filter Angka
Filter tidak hanya berlaku untuk teks.
Contoh berikut menampilkan data dengan nilai lebih dari 1.000.000.
Range("A1:D100").AutoFilter _
Field:=4, _
Criteria1:=">1000000"
Anda juga dapat menggunakan operator lain seperti:
-
>= -
<= -
< -
<>
Menggunakan Dua Kondisi Sekaligus
Misalkan Anda ingin menampilkan nilai antara 500.000 hingga 1.000.000.
Range("A1:D100").AutoFilter _
Field:=4, _
Criteria1:=">=500000", _
Operator:=xlAnd, _
Criteria2:="<=1000000"
Operator yang tersedia:
| Operator | Fungsi |
|---|---|
xlAnd |
Kedua kondisi harus terpenuhi |
xlOr |
Salah satu kondisi terpenuhi |
Menghapus Filter
Setelah proses selesai, Anda dapat menghapus filter.
ActiveSheet.AutoFilterMode = False
Semua data akan kembali ditampilkan.
Menampilkan Semua Data Tanpa Menghapus Filter
Jika hanya ingin menghilangkan hasil penyaringan tetapi tetap mempertahankan tombol filter.
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
Cara ini sering digunakan pada aplikasi laporan yang melakukan filter berulang kali.
Studi Kasus
Sebuah worksheet memiliki data penjualan berikut.
| Tanggal | Produk | Kota | Total |
|---|---|---|---|
| 01/07/2026 | Laptop | Surabaya | 7.500.000 |
| 02/07/2026 | Printer | Malang | 2.100.000 |
| 03/07/2026 | Scanner | Surabaya | 1.800.000 |
Anda ingin menampilkan hanya transaksi dari Surabaya.
Range("A1:D100").AutoFilter _
Field:=3, _
Criteria1:="Surabaya"
Tanpa melakukan pencarian manual, worksheet langsung menampilkan data yang sesuai.
Kesalahan yang Sering Dilakukan
Salah Menentukan Nomor Field
Field dihitung berdasarkan urutan kolom di dalam range yang difilter, bukan berdasarkan nomor kolom pada worksheet.
Sebagai contoh, jika range dimulai dari kolom C, maka kolom C memiliki nilai Field:=1.
Tidak Menyertakan Header
AutoFilter bekerja lebih baik jika range yang digunakan menyertakan baris header.
Contoh yang benar:
Range("A1:D100")
Bukan:
Range("A2:D100")
Lupa Menghapus Filter
Jika filter lama masih aktif, hasil filter berikutnya bisa membingungkan pengguna.
Pastikan filter dibersihkan atau ditampilkan kembali sebelum menerapkan filter baru.
Tips Praktis
💡 Gunakan AutoFilter pada data yang memiliki header.
💡 Tentukan Field sesuai posisi kolom dalam range.
💡 Gunakan ShowAllData jika ingin mengembalikan seluruh data tanpa menghapus tombol filter.
💡 Kombinasikan AutoFilter dengan LastRow agar area filter menyesuaikan jumlah data secara otomatis.
💡 Gunakan variabel untuk menyimpan kriteria filter jika nilainya berasal dari input pengguna.
Ringkasan
| Perintah | Fungsi |
|---|---|
AutoFilter |
Mengaktifkan filter |
Criteria1 |
Menentukan kriteria utama |
Criteria2 |
Menentukan kriteria kedua |
Field |
Menentukan kolom yang difilter |
ShowAllData |
Menampilkan kembali seluruh data |
AutoFilterMode = False |
Menghapus filter |
Kesimpulan
AutoFilter merupakan fitur penting dalam VBA Excel yang memungkinkan Anda menyaring data secara otomatis berdasarkan berbagai kriteria. Dengan memanfaatkan metode ini, Anda dapat membuat laporan yang lebih interaktif, mempercepat proses analisis data, serta mengurangi pekerjaan manual saat menangani worksheet dengan jumlah data yang besar.
