Fungsi FILTER Excel - pemfilteran dinamis dengan rumus

  • Bagikan Ini
Michael Brown

Dalam pelajaran singkat ini, Anda akan belajar cara memfilter di Excel secara dinamis dengan rumus. Contoh untuk memfilter duplikat, sel yang berisi teks tertentu, dengan beberapa kriteria, dan banyak lagi.

Bagaimana Anda biasanya memfilter di Excel? Sebagian besar, dengan menggunakan Filter Otomatis, dan dalam skenario yang lebih kompleks dengan Filter Lanjutan. Menjadi cepat dan kuat, metode ini memiliki satu kelemahan yang signifikan - metode ini tidak diperbarui secara otomatis saat data Anda berubah, yang berarti Anda harus membersihkan dan memfilter lagi. Pengenalan fungsi FILTER di Excel 365 menjadi alternatif yang telah lama ditunggu-tunggu untukTidak seperti mereka, rumus Excel menghitung ulang secara otomatis dengan setiap perubahan lembar kerja, jadi Anda hanya perlu mengatur filter Anda sekali saja!

    Fungsi FILTER Excel

    Fungsi FILTER di Excel digunakan untuk memfilter berbagai data berdasarkan kriteria yang Anda tentukan.

    Fungsi ini termasuk dalam kategori fungsi Dynamic Arrays. Hasilnya adalah larik nilai yang secara otomatis tumpah ke dalam rentang sel, mulai dari sel tempat Anda memasukkan rumus.

    Sintaks dari fungsi FILTER adalah sebagai berikut:

    FILTER(array, include, [if_empty])

    Di mana:

    • Larik (wajib) - rentang atau larik nilai yang ingin Anda filter.
    • Termasuk (wajib) - kriteria yang diberikan sebagai larik Boolean (nilai TRUE dan FALSE).

      Tingginya (apabila data dalam kolom) atau lebarnya (apabila data dalam baris) harus sama dengan tinggi dari array argumen.

    • Jika_kosong (opsional) - nilai yang akan dikembalikan ketika tidak ada entri yang memenuhi kriteria.

    Fungsi FILTER hanya tersedia di Excel untuk Microsoft 365 dan Excel 2021. Di Excel 2019, Excel 2016 dan versi sebelumnya, ini tidak didukung.

    Rumus FILTER Excel dasar

    Sebagai permulaan, mari kita bahas beberapa kasus yang sangat sederhana hanya untuk mendapatkan pemahaman lebih lanjut tentang cara kerja rumus Excel untuk memfilter data.

    Dari kumpulan data di bawah ini, seandainya Anda ingin mengekstrak record dengan nilai spesifik dalam Kelompok , kolom, katakanlah grup C. Untuk menyelesaikannya, kita menyediakan ekspresi B2:B13="C" ke dalam termasuk argumen, yang akan menghasilkan larik Boolean yang diperlukan, dengan TRUE yang sesuai dengan nilai "C".

    =FILTER(A2:C13, B2:B13="C", "Tidak ada hasil")

    Dalam praktiknya, akan lebih mudah untuk memasukkan kriteria dalam sel terpisah, misalnya F1, dan menggunakan referensi sel daripada melakukan hardcoding nilai secara langsung dalam rumus:

    =FILTER(A2:C13, B2:B13=F1, "Tidak ada hasil")

    Tidak seperti fitur Filter Excel, fungsi ini tidak membuat perubahan apa pun pada data asli. Ini mengekstrak catatan yang difilter ke dalam apa yang disebut rentang tumpahan (E4: G7 pada gambar di bawah), dimulai di sel tempat rumus dimasukkan:

    Jika tidak ada rekaman yang cocok dengan kriteria yang ditentukan, formula mengembalikan nilai yang Anda masukkan ke dalam if_empty argumen, "Tidak ada hasil" dalam contoh ini:

    Jika Anda lebih suka tidak mengembalikan apa pun dalam kasus ini, maka berikan string kosong ("") untuk argumen terakhir:

    =FILTER(A2:C13, B2:B13=F1, "")

    Jika data Anda terorganisir secara horizontal dari kiri ke kanan seperti yang ditunjukkan pada gambar di bawah ini, fungsi FILTER juga akan bekerja dengan baik. Pastikan saja Anda menentukan rentang yang sesuai untuk array dan termasuk argumen, sehingga larik sumber dan larik Boolean memiliki lebar yang sama:

    =FILTER(B2:M4, B3:M3= B7, "Tidak ada hasil")

    Fungsi FILTER Excel - catatan penggunaan

    Untuk memfilter secara efektif di Excel dengan rumus, berikut adalah beberapa poin penting yang harus diperhatikan:

    • Fungsi FILTER secara otomatis menumpahkan hasilnya secara vertikal atau horizontal di lembar kerja, tergantung pada bagaimana data asli Anda diatur. Jadi, pastikan Anda selalu memiliki cukup sel kosong di bawah dan ke kanan, jika tidak, Anda akan mendapatkan kesalahan #SPILL.
    • Hasil dari fungsi FILTER Excel bersifat dinamis, artinya mereka memperbarui secara otomatis ketika nilai dalam kumpulan data asli berubah. Namun, kisaran yang disediakan untuk fungsi array tidak diperbarui ketika entri baru ditambahkan ke data sumber. Jika Anda menginginkan argumen array untuk mengubah ukuran secara otomatis, lalu mengonversinya ke tabel Excel dan membuat rumus dengan referensi terstruktur, atau membuat rentang bernama dinamis.

    Cara memfilter di Excel - contoh rumus

    Sekarang setelah Anda mengetahui cara kerja rumus filter Excel dasar, sekarang saatnya untuk mendapatkan beberapa wawasan tentang bagaimana rumus ini dapat diperluas untuk menyelesaikan tugas yang lebih kompleks.

    Menyaring dengan beberapa kriteria (logika AND)

    Untuk memfilter data dengan beberapa kriteria, Anda menyediakan dua atau lebih ekspresi logika untuk termasuk argumen:

    FILTER(array, ( range1 = kriteria1 ) * ( range2 = kriteria2 ), "Tidak ada hasil")

    Operasi perkalian memproses larik-larik dengan Logika AND memastikan bahwa hanya catatan yang memenuhi semua kriteria dikembalikan. Secara teknis, cara kerjanya seperti ini:

    Hasil dari setiap ekspresi logika adalah larik nilai Boolean, di mana TRUE setara dengan 1 dan FALSE dengan 0. Kemudian, elemen-elemen dari semua larik pada posisi yang sama dikalikan. Karena perkalian dengan nol selalu menghasilkan nol, hanya item-item yang semua kriterianya TRUE yang masuk ke dalam larik yang dihasilkan, dan akibatnya hanya item-item tersebut yang diekstraksi.

    Contoh-contoh di bawah ini menunjukkan formula generik ini dalam tindakan.

    Contoh 1. Filter beberapa kolom di Excel

    Memperluas rumus FILTER Excel dasar kita sedikit lebih jauh, mari kita memfilter data dengan dua kolom: Kelompok (kolom B) dan Menang (kolom C).

    Untuk ini, kami menyiapkan kriteria berikut ini: ketik nama kelompok target di F2 ( kriteria1 ) dan jumlah kemenangan minimum yang diperlukan dalam F3 ( kriteria2 ).

    Mengingat bahwa sumber data kami ada di A2:C13 ( array ), kelompok-kelompok berada di B2:B13 ( range1 ) dan kemenangan berada di C2:C13 ( range2 ), rumusnya mengambil bentuk ini:

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Tidak ada hasil")

    Hasilnya, Anda mendapatkan daftar pemain di grup A yang telah mengamankan 2 kemenangan atau lebih:

    Contoh 2. Filter data di antara tanggal

    Pertama-tama, perlu dicatat bahwa tidak mungkin membuat rumus umum untuk memfilter berdasarkan tanggal di Excel. Dalam situasi yang berbeda, Anda perlu membuat kriteria secara berbeda, tergantung pada apakah Anda ingin memfilter berdasarkan tanggal tertentu, berdasarkan bulan, atau tahun. Tujuan dari contoh ini adalah untuk mendemonstrasikan pendekatan umum.

    Untuk data sampel kami, kami menambahkan satu kolom lagi yang berisi tanggal kemenangan terakhir (kolom D). Dan sekarang, kami akan mengekstrak kemenangan yang terjadi dalam periode tertentu, katakanlah antara 17 Mei dan 31 Mei.

    Harap perhatikan bahwa dalam kasus ini, kedua kriteria berlaku untuk kisaran yang sama:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Tidak ada hasil")

    Di mana G2 dan G3 adalah tanggal untuk menyaring di antara keduanya.

    Menyaring dengan beberapa kriteria (logika OR)

    Untuk mengekstrak data berdasarkan beberapa kondisi OR, Anda juga menggunakan ekspresi logika seperti yang ditunjukkan pada contoh sebelumnya, tetapi alih-alih mengalikan, Anda menjumlahkannya. Ketika larik Boolean yang dikembalikan oleh ekspresi dijumlahkan, larik yang dihasilkan akan memiliki 0 untuk entri yang tidak memenuhi kriteria apa pun (yaitu semua kriteria adalah FALSE), dan entri semacam itu akan disaring. Entri yang disetidaknya satu kriteria adalah TRUE akan diekstraksi.

    Berikut rumus umum untuk memfilter kolom dengan logika OR:

    FILTER(array, ( range1 = kriteria1 ) + ( range2 = kriteria2 ), "Tidak ada hasil")

    Sebagai contoh, mari kita ekstrak daftar pemain yang memiliki ini atau itu jumlah kemenangan.

    Dengan asumsi sumber data ada di A2:C13, kemenangan ada di C2:C13, dan angka kemenangan yang diminati ada di F2 dan F3, rumusnya adalah sebagai berikut:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Tidak ada hasil")

    Sebagai hasilnya, Anda tahu pemain mana yang telah memenangkan semua permainan (4) dan mana yang tidak memenangkannya (0):

    Menyaring berdasarkan beberapa kriteria AND serta OR

    Dalam situasi ketika anda perlu menerapkan kedua jenis kriteria, ingatlah aturan sederhana ini: gabungkan kriteria AND dengan tanda bintang (*) dan kriteria OR dengan tanda plus (+).

    Misalnya, untuk mengembalikan daftar pemain yang memiliki jumlah kemenangan yang diberikan (F2) DAN termasuk dalam kelompok yang disebutkan dalam E2 ATAU E3, buatlah rantai ekspresi logika berikut ini:

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Tidak ada hasil")

    Dan Anda akan mendapatkan hasil berikut ini:

    Cara memfilter duplikat di Excel

    Ketika bekerja dengan lembar kerja yang sangat besar atau menggabungkan data dari sumber yang berbeda, sering kali ada kemungkinan bahwa beberapa duplikat akan menyelinap masuk.

    Jika Anda ingin menyaring duplikat dan mengekstrak item-item unik, kemudian gunakan fungsi UNIQUE seperti yang dijelaskan dalam tutorial terkait di atas.

    Jika tujuan Anda adalah untuk menyaring duplikat yaitu mengekstrak entri yang muncul lebih dari satu kali, kemudian gunakan fungsi FILTER bersama dengan COUNTIFS.

    Idenya adalah untuk mendapatkan jumlah kejadian untuk semua rekaman dan mengekstrak yang lebih besar dari 1. Untuk mendapatkan jumlah, Anda menyediakan rentang yang sama untuk setiap criteria_range / kriteria sepasang COUNTIFS seperti ini:

    FILTER ( array , COUNTIFS( kolom1 , kolom1, kolom2 , kolom2 )>1, "Tidak ada hasil")

    Misalnya, untuk memfilter baris duplikat dari data di A2: C20 berdasarkan nilai di ketiga kolom, berikut rumus yang digunakan:

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Tidak ada hasil")

    Tip. Untuk memfilter duplikat berdasarkan nilai di dalam kolom kunci , hanya menyertakan kolom-kolom tertentu dalam fungsi COUNTIFS.

    Cara memfilter kosong di Excel

    Rumus untuk memfilter sel kosong, pada kenyataannya, adalah variasi dari rumus FILTER Excel dengan beberapa kriteria AND. Dalam hal ini, kita memeriksa apakah semua (atau tertentu) kolom memiliki data di dalamnya dan mengecualikan baris di mana setidaknya satu sel kosong. Untuk mengidentifikasi sel yang tidak kosong, Anda menggunakan operator "tidak sama dengan" () bersama dengan string kosong ("") seperti ini:

    FILTER(array, ( kolom1 "") * ( kolom2 =""), "Tidak ada hasil")

    Dengan data sumber di A2: C12, untuk memfilter baris yang berisi satu atau lebih sel kosong, rumus berikut dimasukkan di E3:

    Menyaring sel yang berisi teks tertentu

    Untuk mengekstrak sel yang berisi teks tertentu, Anda dapat menggunakan fungsi FILTER bersama dengan rumus klasik Jika sel berisi:

    FILTER(array, ISNUMBER(PENCARIAN(" teks ", rentang )), "Tidak ada hasil")

    Begini cara kerjanya:

    • Fungsi SEARCH mencari string teks tertentu dalam rentang tertentu dan mengembalikan angka (posisi karakter pertama) atau #VALUE! kesalahan (teks tidak ditemukan).
    • Fungsi ISNUMBER mengonversi semua angka menjadi TRUE dan kesalahan menjadi FALSE dan meneruskan larik Boolean yang dihasilkan ke fungsi termasuk argumen dari fungsi FILTER.

    Untuk contoh ini, kita telah menambahkan Nama belakang pemain di B2: B13, ketikkan bagian nama yang ingin kita temukan di G2, lalu gunakan rumus berikut untuk memfilter data:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Tidak ada hasil")

    Sebagai hasilnya, rumus tersebut mengambil dua nama keluarga yang mengandung "han":

    Menyaring dan menghitung (Jumlah, Rata-rata, Min, Max, dll.)

    Hal yang keren tentang fungsi FILTER Excel adalah tidak hanya dapat mengekstrak nilai dengan kondisi, tetapi juga meringkas data yang difilter. Untuk ini, gabungkan FILTER dengan fungsi agregasi seperti SUM, AVERAGE, COUNT, MAX atau MIN.

    Misalnya, untuk mengagregasi data untuk grup tertentu di F1, gunakan rumus berikut ini:

    Total kemenangan:

    =SUM(FILTER(C2:C13, B2:B13=F1, 0))

    Rata-rata kemenangan:

    =RATA-RATA(FILTER(C2:C13, B2:B13=F1, 0))

    Kemenangan maksimum:

    =MAX(FILTER(C2:C13, B2:B13=F1, 0))

    Kemenangan minimum:

    =MIN(FILTER(C2:C13, B2:B13=F1, 0))

    Harap perhatikan bahwa, dalam semua rumus, kita menggunakan nol untuk if_empty argumen, sehingga rumus akan mengembalikan 0 jika tidak ada nilai yang memenuhi kriteria yang ditemukan. Memasok teks apa pun seperti "Tidak ada hasil" akan menghasilkan kesalahan #VALUE, yang jelas merupakan hal terakhir yang Anda inginkan :)

    Formula FILTER yang peka huruf besar-kecil

    Rumus FILTER Excel standar tidak peka huruf besar-kecil, artinya tidak membedakan antara karakter huruf kecil dan huruf besar. Untuk membedakan kasus teks, sarangkan fungsi EXACT dalam fungsi termasuk Ini akan memaksa FILTER untuk melakukan tes logika dengan cara yang peka huruf besar-kecil:

    FILTER(array, PERSIS( rentang , kriteria ), "Tidak ada hasil")

    Seandainya, Anda memiliki kedua kelompok A dan a dan ingin mengekstrak rekaman di mana grupnya adalah huruf kecil "a". Untuk menyelesaikannya, gunakan rumus berikut, di mana A2: C13 adalah data sumber dan B2: B13 adalah grup yang akan difilter:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "Tidak ada hasil")

    Seperti biasa, Anda bisa memasukkan kelompok target dalam sel yang sudah ditentukan sebelumnya, misalnya F1, dan menggunakan referensi sel tersebut sebagai ganti teks yang dikodekan:

    =FILTER(A2:C13, EXACT(B2:B13, F1), "Tidak ada hasil")

    Cara FILTER data dan mengembalikan hanya kolom tertentu

    Untuk sebagian besar, memfilter semua kolom dengan satu formula adalah apa yang diinginkan oleh pengguna Excel. Tetapi jika tabel sumber Anda berisi puluhan atau bahkan ratusan kolom, Anda mungkin ingin membatasi hasil ke beberapa kolom yang paling penting.

    Contoh 1. Menyaring beberapa kolom yang berdekatan

    Dalam situasi ketika Anda ingin beberapa kolom yang berdekatan muncul dalam hasil FILTER, hanya menyertakan kolom-kolom itu dalam array karena argumen inilah yang menentukan kolom mana yang akan dikembalikan.

    Dalam contoh rumus FILTER dasar, seandainya Anda ingin mengembalikan 2 kolom pertama ( Nama dan Kelompok ). Jadi, Anda menyediakan A2:B13 untuk array argumen:

    =FILTER(A2:B13, B2:B13=F1, "Tidak ada hasil")

    Hasilnya, kita mendapatkan daftar peserta dari kelompok target yang didefinisikan dalam F1:

    Contoh 2. Filter kolom yang tidak berdekatan

    Untuk menyebabkan fungsi FILTER mengembalikan kolom-kolom yang tidak bersebelahan, gunakan trik pintar ini:

    1. Buatlah rumus FILTER dengan kondisi yang diinginkan menggunakan seluruh tabel untuk array .
    2. Sarangkan rumus di atas di dalam fungsi FILTER lain. Untuk mengonfigurasi fungsi "wrapper", gunakan konstanta array nilai TRUE dan FALSE atau 1 dan 0 untuk fungsi termasuk argumen, di mana TRUE (1) menandai kolom yang akan disimpan dan FALSE (0) menandai kolom yang akan dikecualikan.

    Contohnya, untuk mengembalikan hanya Nama (kolom pertama) dan Menang (kolom ke-3), kita menggunakan {1,0,1} atau {TRUE,FALSE,TRUE} untuk termasuk argumen dari fungsi FILTER luar:

    =FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})

    Atau

    =FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})

    Cara membatasi jumlah baris yang dikembalikan oleh fungsi FILTER

    Jika rumus FILTER Anda menemukan cukup banyak hasil, tetapi lembar kerja Anda memiliki ruang terbatas dan Anda tidak dapat menghapus data di bawah ini, Anda dapat membatasi jumlah baris yang dikembalikan oleh fungsi FILTER.

    Mari kita lihat cara kerjanya pada contoh formula sederhana yang menarik pemain dari grup target di F1:

    =FILTER(A2:C13, B2:B13=F1)

    Rumus di atas mengeluarkan semua record yang ditemukannya, 4 baris dalam kasus kita. Tapi misalkan Anda hanya memiliki ruang untuk dua. Untuk mengeluarkan hanya 2 baris pertama yang ditemukan, inilah yang perlu Anda lakukan:

    • Tancapkan rumus FILTER ke dalam array argumen dari fungsi INDEX.
    • Untuk row_num argumen INDEX, gunakan konstanta larik vertikal seperti {1;2}. Ini menentukan berapa banyak baris yang akan dikembalikan (2 dalam kasus kita).
    • Untuk column_num gunakan konstanta larik horizontal seperti {1,2,3}. Ini menentukan kolom mana yang akan dikembalikan (3 kolom pertama dalam contoh ini).
    • Untuk menangani error yang mungkin terjadi ketika tidak ditemukan data yang cocok dengan kriteriamu, kamu bisa membungkus rumusmu dalam fungsi IFERROR.

    Rumus lengkapnya mengambil bentuk ini:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Tidak ada hasil")

    Ketika bekerja dengan tabel yang besar, menulis konstanta array secara manual mungkin cukup merepotkan. Tidak masalah, fungsi SEQUENCE dapat menghasilkan nomor urut untuk Anda secara otomatis:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13)))), "Tidak ada hasil")

    SEQUENCE pertama menghasilkan larik vertikal yang berisi angka berurutan sebanyak yang ditentukan dalam argumen pertama (dan satu-satunya). SEQUENCE kedua menggunakan fungsi COLUMNS untuk menghitung jumlah kolom dalam kumpulan data dan menghasilkan larik horizontal yang setara.

    Tip. Untuk mengembalikan data dari kolom tertentu , bukan semua kolom, dalam konstanta larik horizontal yang Anda gunakan untuk column_num argumen INDEX, hanya menyertakan angka-angka tertentu. Misalnya, untuk mengekstrak data dari kolom ke-1 dan ke-3, gunakan {1,3}.

    Fungsi FILTER Excel tidak berfungsi

    Dalam situasi ketika rumus FILTER Excelmu menghasilkan error, kemungkinan besar itu adalah salah satu dari yang berikut ini:

    #CALC! kesalahan

    Terjadi jika opsional if_empty dihilangkan, dan tidak ada hasil yang memenuhi kriteria yang ditemukan. Alasannya adalah bahwa saat ini Excel tidak mendukung array kosong. Untuk mencegah kesalahan seperti itu, pastikan untuk selalu mendefinisikan if_empty nilai dalam rumus Anda.

    #VALUE kesalahan

    Terjadi ketika array dan termasuk argumen memiliki dimensi yang tidak sesuai.

    #N/A, #VALUE, dll.

    Kesalahan yang berbeda bisa terjadi jika beberapa nilai dalam termasuk adalah kesalahan atau tidak dapat dikonversi ke nilai Boolean.

    #NAMA kesalahan

    Terjadi saat mencoba menggunakan FILTER di versi Excel yang lebih lama. Harap diingat bahwa ini adalah fungsi baru, yang hanya tersedia di Office 365 dan Excel 2021.

    Di Excel baru, kesalahan #NAME terjadi jika Anda secara tidak sengaja salah mengeja nama fungsi.

    Kesalahan #SPILL

    Paling sering, kesalahan ini terjadi jika satu atau lebih sel dalam rentang tumpahan tidak sepenuhnya kosong. Untuk memperbaikinya, cukup hapus atau hapus sel yang tidak kosong. Untuk menyelidiki dan menyelesaikan kasus lain, silakan lihat #SPILL! kesalahan di Excel: apa artinya dan bagaimana cara memperbaikinya.

    #REF! kesalahan

    Terjadi ketika rumus FILTER digunakan di antara buku kerja yang berbeda, dan buku kerja sumber ditutup.

    Demikianlah cara mengarsipkan data di Excel secara dinamis. Saya ucapkan terima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Unduh buku kerja latihan

    Filter di Excel dengan rumus (file .xlsx)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.