Pernyataan IF Excel untuk pencocokan teks parsial (wildcard)

  • Bagikan Ini
Michael Brown

Mencoba membuat pernyataan IF dengan teks wildcard, tapi selalu gagal? Masalahnya bukan pada rumusmu, tapi pada fungsi itu sendiri - IF Excel tidak mendukung karakter wildcard. Namun, ada cara untuk membuatnya bekerja untuk pencocokan teks parsial, dan tutorial ini akan mengajarkanmu caranya.

Kapanpun kamu ingin melakukan pencocokan parsial atau fuzzy di Excel, solusi yang paling jelas adalah dengan menggunakan wildcard. Namun bagaimana jika fungsi tertentu yang perlu kamu gunakan tidak mendukung karakter wildcard? Sayangnya, Excel IF adalah salah satu fungsi tersebut. Hal ini sangat mengecewakan mengingat fungsi "conditional" lainnya seperti COUNTIF, SUMIF, dan AVERAGEIFS bekerja dengan wildcard dengan sangat baik.

Untungnya, ini bukan hambatan yang dapat menghentikan pengguna Excel yang kreatif :) Dengan menggabungkan IF dengan fungsi lain, Anda dapat memaksanya untuk mengevaluasi kecocokan parsial dan mendapatkan alternatif yang bagus untuk rumus wildcard IF Excel.

    Mengapa fungsi IF Excel dengan wildcard tidak berfungsi

    Pada contoh tabel di bawah ini, seandainya Anda ingin memeriksa apakah ID pada kolom pertama mengandung huruf "A". Jika ditemukan - tampilkan "Yes" pada kolom B, jika tidak - tampilkan "No".

    Sepertinya menyertakan teks wildcard dalam tes logika akan menjadi solusi yang mudah:

    =IF(A2="*a*", "Ya", "Tidak")

    Tapi sayangnya itu tidak berhasil. Rumus mengembalikan "Tidak" untuk semua sel, bahkan yang berisi "A":

    Mengapa pernyataan IF wildcard gagal? Dari semua tampilan, Excel tidak mengenali wildcard yang digunakan dengan tanda sama dengan atau operator logika lainnya. Melihat lebih dekat pada daftar fungsi yang mendukung wildcard, Anda akan melihat bahwa sintaksnya mengasumsikan teks wildcard muncul langsung dalam argumen seperti ini:

    =COUNTIF(A2:A10, "*a*")

    Excel IF berisi teks parsial

    Sekarang setelah kamu mengetahui alasan kenapa rumus IF wildcard gagal, mari kita coba mencari tahu bagaimana cara membuatnya bekerja. Untuk itu, kita akan menyematkan fungsi yang menerima wildcard dalam uji logika IF, yaitu fungsi COUNTIF:

    JIKA (COUNTIF( sel , "* teks *"), nilai_jika_benar, nilai_jika_salah)

    Dengan pendekatan ini, IF tidak memiliki masalah dalam memahami wildcard dan dengan sempurna mengidentifikasi cell-cell yang mengandung "A" atau "a" (karena COUNTIF tidak case-sensitive):

    =IF(COUNTIF(A2, "*a*"), "Ya", "Tidak")

    Rumus ini masuk ke B2, atau sel lain di baris 2, lalu Anda bisa menyeretnya ke bawah ke sel sebanyak yang diperlukan:

    Solusi ini juga bisa digunakan untuk menemukan string dari pola tertentu Dengan asumsi hanya ID yang terdiri dari 2 kelompok yang terdiri dari 2 karakter yang dipisahkan dengan tanda hubung yang valid, Anda bisa menggunakan string wildcard "???-???" untuk mengidentifikasinya:

    =IF(COUNTIF(A2, "??-??"), "Valid", "")

    Bagaimana formula ini bekerja:

    Untuk uji logika IF, kami menggunakan fungsi COUNTIF yang menghitung jumlah sel yang cocok dengan string wildcard yang ditentukan. Karena rentang kriteria adalah sel tunggal (A2), hasilnya selalu 1 (kecocokan ditemukan) atau 0 (kecocokan tidak ditemukan). Mengingat bahwa 1 sama dengan TRUE dan 0 ke FALSE, rumus mengembalikan "Valid" (value_if_true) ketika hitungannya 1 dan string kosong (value_if_false) ketikahitungannya adalah 0.

    IF ISNUMBER rumus PENCARIAN untuk kecocokan parsial

    Cara lain untuk memaksa Excel IF bekerja untuk pencocokan teks parsial adalah dengan menyertakan fungsi FIND atau SEARCH dalam tes logika. Perbedaannya adalah FIND peka huruf besar-kecil sementara SEARCH tidak.

    Jadi, tergantung pada apakah Anda ingin memperlakukan huruf kecil dan huruf besar sebagai karakter yang sama atau berbeda, salah satu rumus ini akan bekerja dengan baik:

    Tidak peka huruf besar-kecil formula untuk kecocokan parsial:

    IF(ISNUMBER(PENCARIAN(" teks ", sel )), nilai_jika_benar, nilai_jika_salah)

    Peka huruf besar-kecil formula untuk kecocokan parsial:

    IF(ISNUMBER(FIND(" teks ", sel )), nilai_jika_benar, nilai_jika_salah)

    Karena kedua fungsi tersebut didesain untuk melakukan pencocokan jenis "cell contains", wildcard tidak benar-benar diperlukan dalam kasus ini.

    Misalnya, untuk mendeteksi ID yang mengandung "A" atau "a", rumusnya adalah:

    =IF(ISNUMBER(SEARCH("A", A2)), "Ya", "Tidak")

    Untuk hanya mencari huruf besar "A" dan mengabaikan "a", rumusnya adalah:

    =IF(ISNUMBER(FIND("A", A2)), "Ya", "Tidak")

    Pada B6 dalam tangkapan layar di bawah ini, Anda bisa mengamati perbedaan hasilnya:

    Bagaimana formula ini bekerja:

    Di jantung rumus, terdapat kombinasi ISNUMBER dan SEARCH (atau FIND):

    ISNUMBER(PENCARIAN("A", A2))

    Fungsi SEARCH mencari teks yang ditentukan ("A" dalam contoh ini) dan mengembalikan posisinya dalam string di A2. Jika teks tidak ditemukan, kesalahan #VALUE dikembalikan. Karena SEARCH dan FIND dirancang untuk melakukan pencocokan jenis "cell contains", wildcard tidak benar-benar diperlukan dalam kasus ini.

    Fungsi ISNUMBER mengubah angka menjadi TRUE dan nilai lainnya termasuk kesalahan menjadi FALSE. Nilai logika langsung menuju ke tes logika IF. Dalam kasus kami, A2 berisi "A", jadi ISNUMBER mengembalikan TRUE:

    JIKA(TRUE, "Ya", "Tidak")

    Sebagai hasilnya, IF mengembalikan nilai yang ditetapkan untuk value_if_true argumen, yaitu "Ya".

    Pernyataan IF OR Excel dengan wildcard

    Perlu mengidentifikasi sel yang berisi salah satu string teks wildcard? Dalam kasus ini, Anda dapat menggabungkan pernyataan IF OR klasik dengan rumus COUNTIF atau ISNUMBER SEARCH yang dibahas di atas.

    Misalnya, untuk mencari "aa" ATAU "bb" di A2 dengan mengabaikan huruf besar dan mengembalikan "Yes" jika salah satunya ditemukan, gunakan salah satu rumus ini:

    =IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Ya", "")

    atau

    =IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Ya", "")

    Menjumlahkan dua fungsi COUNTIF juga akan bekerja. Dalam hal ini, tanda plus bekerja seperti operator OR:

    =IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Ya", "")

    Alih-alih melakukan hardcoding string wildcard dalam rumusnya, kamu bisa memasukkannya dalam cell-cell terpisah, katakanlah D2 dan F2, seperti yang ditunjukkan pada screenshot di bawah ini. Perhatikan bahwa referensi cell ini dikunci dengan tanda $ agar rumusnya tersalin dengan benar ke cell-cell di bawahnya:

    =IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Ya", "")

    Rumus-rumus di atas bekerja dengan baik untuk 2 kecocokan parsial, tetapi jika Anda mencari 3 atau lebih, rumus-rumus ini akan menjadi terlalu panjang. Dalam hal ini, masuk akal untuk mendekati tugas secara berbeda:

    Berikan beberapa substring ke fungsi SEARCH dalam konstanta array, hitung angka yang dikembalikan, dan periksa apakah hasilnya lebih besar dari nol (yang berarti bahwa setidaknya salah satu substring jika ditemukan):

    =IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Ya", "")

    Dengan cara ini, Anda akan mendapatkan hasil yang persis sama dengan formula yang lebih ringkas:

    Rumus IF AND Excel dengan wildcard

    Saat Anda ingin memeriksa apakah sel berisi dua atau lebih substring yang berbeda, cara termudah adalah dengan menggunakan fungsi COUNTIFS dengan wildcard untuk pengujian logis.

    Misalkan Anda ingin mencari sel di kolom A yang berisi "b" DAN "2". Untuk menyelesaikannya, gunakan "*b*" dan "*2*" untuk kriteria COUNTIFS dan A2 untuk rentang kriteria:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Ya", "")

    Cara lainnya adalah dengan menggunakan rumus IF AND bersama dengan ISNUMBER SEARCH:

    =IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Ya", "")

    Meskipun kita tidak menyertakan karakter wildcard apa pun dalam rumus ini, ini berfungsi seperti mencari dua string wildcard ("*b*" dan "*2*") dalam sel yang sama.

    Tentu saja, tidak ada yang menghalangi Anda untuk memasukkan nilai pencarian di sel yang telah ditentukan sebelumnya, D2 dan F2 dalam kasus kami, dan memberikan referensi sel ke rumus:

    =IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")

    Jika Anda lebih suka menggunakan rumus yang lebih ringkas sebisa mungkin, maka Anda mungkin lebih menyukai pendekatan konstanta array. Rumus IF COUNT SEARCH sangat mirip dengan contoh sebelumnya, tetapi karena kali ini kedua substring harus muncul di A2, kita memeriksa apakah hitungannya sama dengan 2:

    =IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Ya", "")

    Ini adalah metode utama menggunakan wildcard dalam pernyataan IF di Excel. Jika Anda mengetahui solusi lain, pengguna lain pasti akan sangat menghargai jika Anda membagikan pengalaman Anda dalam komentar. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Buku kerja latihan untuk diunduh

    Excel Jika contoh rumus wildcard IF (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.