Optimalkan Pencarian Data dengan AutoFilter di VBA Excel

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:=3 berarti filter diterapkan pada kolom ketiga dalam range.

  • Criteria1 adalah 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:

OperatorFungsi
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.

TanggalProdukKotaTotal
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

PerintahFungsi
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.

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.