Kısmi metin eşleşmesi için Excel IF deyimi (joker karakter)

  • Bunu Paylaş
Michael Brown

Joker karakterli metin içeren bir EĞER ifadesi oluşturmaya çalışıyorsunuz, ancak her seferinde başarısız mı oluyor? Sorun formülünüzde değil, işlevin kendisindedir - Excel EĞER joker karakterleri desteklemez. Ancak, kısmi metin eşleşmesi için çalışmasını sağlamanın bir yolu vardır ve bu eğitim size nasıl yapılacağını öğretecektir.

Excel'de kısmi veya bulanık eşleştirme yapmak istediğinizde, en belirgin çözüm joker karakterleri kullanmaktır. Peki ya kullanmanız gereken belirli bir işlev joker karakterleri desteklemiyorsa? Ne yazık ki, Excel IF bu tür işlevlerden biridir. COUNTIF, SUMIF ve AVERAGEIFS gibi diğer "koşullu" işlevlerin joker karakterlerle mükemmel bir şekilde çalıştığı düşünüldüğünde, bu özellikle hayal kırıklığı yaratmaktadır.

Neyse ki, yaratıcı bir Excel kullanıcısını durdurabilecek bir engel değildir :) IF'yi diğer işlevlerle birleştirerek, kısmi bir eşleşmeyi değerlendirmeye zorlayabilir ve Excel IF joker karakter formülüne güzel bir alternatif elde edebilirsiniz.

    Joker karakterli Excel EĞER işlevi neden çalışmıyor?

    Aşağıdaki örnek tabloda, ilk sütundaki ID'lerin "A" harfini içerip içermediğini kontrol etmek istediğinizi varsayalım. Eğer bulunursa - B sütununda "Evet" görüntülenir, bulunmazsa - "Hayır" görüntülenir.

    Mantıksal teste joker metin eklemek kolay bir çözüm gibi görünüyor:

    =IF(A2="*a*", "Evet", "Hayır")

    Ancak ne yazık ki işe yaramıyor. Formül, "A" içerenler de dahil olmak üzere tüm hücreler için "Hayır" sonucunu döndürüyor:

    Joker karakterli bir EĞER ifadesi neden başarısız olur? Görünüşe göre, Excel eşittir işareti veya diğer mantıksal işleçlerle kullanılan joker karakterleri tanımıyor. Joker karakterleri destekleyen işlevlerin listesine daha yakından baktığınızda, sözdizimlerinin bir joker karakter metninin doğrudan aşağıdaki gibi bir bağımsız değişkende göründüğünü varsaydığını fark edeceksiniz:

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

    Excel IF kısmi metin içeriyor

    Artık joker karakterli bir EĞER formülünün neden başarısız olduğunu bildiğinize göre, bunu nasıl çalıştıracağımızı bulmaya çalışalım. Bunun için, EĞER'in mantıksal testine joker karakterleri kabul eden bir işlev, yani COUNTIF işlevini yerleştireceğiz:

    IF(COUNTIF( hücre , "* Metin *"), value_if_true, value_if_false)

    Bu yaklaşımla, IF joker karakterleri anlamakta sorun yaşamaz ve "A" veya "a" içeren hücreleri kusursuz bir şekilde tanımlar (COUNTIF büyük/küçük harfe duyarlı olmadığı için):

    =IF(COUNTIF(A2, "*a*"), "Evet", "Hayır")

    Bu formül B2'ye veya satır 2'deki herhangi bir hücreye gider ve daha sonra istediğiniz kadar hücreye sürükleyebilirsiniz:

    Bu çözüm ayrıca aşağıdakileri bulmak için de kullanılabilir belirli bir desenin dizeleri Sadece tire ile ayrılmış 2 karakterlik 2 gruptan oluşan kimliklerin geçerli olduğunu varsayarsak, bunları tanımlamak için "??-??" joker karakter dizesini kullanabilirsiniz:

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

    Bu formül nasıl çalışır?

    EĞER'in mantıksal testi için, belirtilen joker karakter dizesiyle eşleşen hücre sayısını sayan EĞERSAY işlevini kullanırız. Ölçüt aralığı tek bir hücre (A2) olduğundan, sonuç her zaman 1 (eşleşme bulundu) veya 0'dır (eşleşme bulunamadı). 1'in DOĞRU'ya ve 0'ın YANLIŞ'a eşit olduğu göz önüne alındığında, formül, sayı 1 olduğunda "Geçerli" (value_if_true) vesayım 0'dır.

    IF ISNUMBER Kısmi eşleşmeler için ARAMA formülü

    Excel IF'yi kısmi metin eşleşmesi için çalışmaya zorlamanın bir başka yolu da mantıksal teste FIND veya SEARCH işlevini dahil etmektir. Aradaki fark, FIND büyük/küçük harfe duyarlı iken SEARCH'ın duyarlı olmamasıdır.

    Dolayısıyla, küçük ve büyük harfleri aynı veya farklı karakterler olarak ele almak isteyip istemediğinize bağlı olarak, bu formüllerden biri işe yarayacaktır:

    Harf büyüklüğüne duyarsız kısmi eşleşme için formül:

    IF(ISNUMBER(SEARCH(" Metin ", hücre )), value_if_true, value_if_false)

    Harfe duyarlı kısmi eşleşme için formül:

    IF(ISNUMBER(FIND(" Metin ", hücre )), value_if_true, value_if_false)

    Her iki işlev de "hücre içerir" türünde bir eşleşme gerçekleştirmek üzere tasarlandığından, bu durumda joker karakterlere gerçekten gerek yoktur.

    Örneğin, "A" veya "a" içeren kimlikleri tespit etmek için formül şöyledir:

    =IF(ISNUMBER(SEARCH("A", A2)), "Evet", "Hayır")

    Yalnızca büyük "A" harfini aramak ve "a" harfini yok saymak için formül şu şekildedir:

    =IF(ISNUMBER(FIND("A", A2)), "Evet", "Hayır")

    Aşağıdaki ekran görüntüsünde B6'da sonuçtaki farkı gözlemleyebilirsiniz:

    Bu formül nasıl çalışır?

    Formülün merkezinde ISNUMBER ve SEARCH (veya FIND) kombinasyonu yer alır:

    ISNUMBER(SEARCH("A", A2))

    SEARCH işlevi belirtilen metni (bu örnekte "A") arar ve A2'deki bir dize içindeki konumunu döndürür. Metin bulunamazsa, #VALUE hatası döndürülür. Hem SEARCH hem de FIND "hücre içeriyor" türünde bir eşleşme gerçekleştirmek üzere tasarlandığından, bu durumda joker karakterlere gerçekten gerek yoktur.

    ISNUMBER fonksiyonu bir sayıyı DOĞRU'ya ve hata dahil diğer tüm değerleri YANLIŞ'a dönüştürür. Mantıksal değer doğrudan IF'nin mantıksal testine gider. Bizim durumumuzda, A2 "A" içerir, bu nedenle ISNUMBER DOĞRU döndürür:

    IF(TRUE, "Evet", "Hayır")

    Sonuç olarak, IF, aşağıdakiler için ayarlanan değeri döndürür value_if_true argümanı, ki bu "Evet "tir.

    Joker karakterli Excel EĞER VEYA deyimi

    Joker metin dizelerinden birini içeren hücreleri tanımlamanız mı gerekiyor? Bu durumda, klasik EĞER VEYA deyimini yukarıda tartışılan EĞERSAY veya SAYI ARAMA formülüyle birleştirebilirsiniz.

    Örneğin, A2'de harf büyüklüğünü göz ardı ederek "aa" VEYA "bb" aramak ve her ikisi de bulunursa "Evet" döndürmek için aşağıdaki formüllerden birini kullanın:

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

    veya

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

    İki COUNTIF fonksiyonunu toplamak da işe yarayacaktır. Bu durumda, artı işareti OR operatörü gibi çalışır:

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

    Formülde joker karakter dizelerini sabit kodlamak yerine, aşağıdaki ekran görüntüsünde gösterildiği gibi bunları ayrı hücrelere, örneğin D2 ve F2'ye girebilirsiniz. Formülün aşağıdaki hücrelere doğru şekilde kopyalanması için lütfen bu hücre referanslarının $ işaretiyle kilitlendiğine dikkat edin:

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

    Yukarıdaki formüller 2 kısmi eşleşme için iyi çalışır, ancak 3 veya daha fazlasını arıyorsanız, çok uzun olurlar. Bu durumda, göreve farklı bir şekilde yaklaşmak mantıklıdır:

    SEARCH fonksiyonuna bir dizi sabiti içinde birden fazla alt dize verin, dönen sayıları sayın ve sonucun sıfırdan büyük olup olmadığını kontrol edin (bu, alt dizelerden en az birinin bulunduğu anlamına gelir):

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

    Bu şekilde, daha kompakt bir formülle tam olarak aynı sonucu elde edersiniz:

    Joker karakterli Excel EĞER VE formülü

    Bir hücrenin iki veya daha fazla farklı alt dizge içerip içermediğini kontrol etmek istediğinizde, en kolay yol mantıksal test için joker karakterlerle birlikte COUNTIFS işlevini kullanmaktır.

    A sütununda hem "b" hem de "2" içeren hücreleri bulmak istediğinizi varsayalım. Bunu yapmak için, COUNTIFS ölçütü için "*b*" ve "*2*" ve ölçüt aralığı için A2 kullanın:

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

    Başka bir yol da EĞER VE formülünü ISNUMBER ARAMA ile birlikte kullanmaktır:

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

    Bu formüle herhangi bir joker karakter eklemesek de, aynı hücrede iki joker karakter dizisini ("*b*" ve "*2*") aramak gibi çalışır.

    Elbette, arama değerlerini önceden tanımlanmış hücrelere (bizim durumumuzda D2 ve F2) girmenizi ve hücre referanslarını formüle sağlamanızı engelleyen hiçbir şey yoktur:

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

    Mümkün olan her yerde daha kompakt formüller kullanmayı tercih ediyorsanız, dizi sabiti yaklaşımını daha çok sevebilirsiniz. IF COUNT SEARCH formülü önceki örneğe çok benzer, ancak bu kez her iki alt dizenin de A2'de görünmesi gerektiğinden, sayının 2'ye eşit olup olmadığını kontrol ederiz:

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

    Bunlar Excel'de IF deyiminde joker karakter kullanmanın ana yöntemleridir. Bildiğiniz başka çözümler varsa, deneyimlerinizi yorumlarda paylaşırsanız diğer kullanıcılar kesinlikle memnun olacaktır. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmek dileğiyle!

    İndirmek için pratik çalışma kitabı

    Excel EĞER joker karakter formülü örnekleri (.xlsx dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.