Sadržaj
Pokušavate sastaviti IF naredbu sa zamjenskim znakovnim tekstom, ali svaki put ne uspijeva? Problem nije u vašoj formuli nego u samoj funkciji - Excel IF ne podržava zamjenske znakove. Međutim, postoji način da ga natjerate da radi za djelomično podudaranje teksta, a ovaj vodič će vas naučiti kako.
Kad god želite izvesti djelomično ili nejasno podudaranje u Excelu, najočitije rješenje je koristiti zamjenske znakove. Ali što ako određena funkcija koju trebate koristiti ne podržava zamjenske znakove? Nažalost, Excel IF je jedna od takvih funkcija. Ovo je posebno razočaravajuće s obzirom da druge "uvjetne" funkcije kao što su COUNTIF, SUMIF i AVERAGEIFS savršeno dobro rade sa zamjenskim znakovima.
Srećom, to nije prepreka koja može zaustaviti kreativnog Excel korisnika :) Kombinacijom IF s drugim funkcijama, možete ga prisiliti da procijeni djelomično podudaranje i dobiti zgodnu alternativu formulu Excel IF zamjenskog znaka.
Zašto Excel IF funkcija sa zamjenskim znakom ne radi
U primjeru tablice u nastavku, pretpostavimo da želite provjeriti sadrže li ID-ovi u prvom stupcu slovo "A". Ako se pronađe - prikaži "Da" u stupcu B, ako ne - prikaži "Ne".
Čini se da bi uključivanje teksta zamjenskih znakova u logički test bilo jednostavno rješenje:
=IF(A2="*a*","Yes", "No")
Ali, nažalost, ne funkcionira. Formula vraća "Ne" za sve ćelije, čak i one koje sadrže "A":
Zaštonaredba zamjenskog znaka IF nije uspjela? Čini se da Excel ne prepoznaje zamjenske znakove koji se koriste uz znak jednakosti ili druge logičke operatore. Ako bolje pogledate popis funkcija koje podržavaju zamjenske znakove, primijetit ćete da njihova sintaksa pretpostavlja da se tekst zamjenskih znakova pojavljuje izravno u argumentu poput ovog:
=COUNTIF(A2:A10, "*a*")
Excel IF sadrži djelomični tekst
Sada kada znate razlog zašto formula sa zamjenskim znakom IF ne uspijeva, pokušajmo otkriti kako je natjerati da radi. Za ovo ćemo jednostavno ugraditi funkciju koja prihvaća zamjenske znakove u logički test IF, naime funkciju COUNTIF:
IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)S ovim pristupom, IF nema problema s razumijevanjem zamjenskih znakova i besprijekorno identificira ćelije koje sadrže "A" ili "a" (budući da COUNTIF ne razlikuje velika i mala slova):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Ova formula ide u B2 ili bilo koju drugu ćeliju u retku 2, a zatim je možete povući prema dolje do koliko god je potrebno ćelija:
Ovo se rješenje također može koristiti za lociranje nizova određenog uzorka . Pod pretpostavkom da su važeći samo ID-ovi koji se sastoje od 2 grupe od 2 znaka odvojena crticom, možete koristiti "??-??" niz zamjenskih znakova za njihovu identifikaciju:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Kako ova formula funkcionira:
Za logički test IF, koristimo funkciju COUNTIF koja broji broj ćelija koje odgovaraju navedenom zamjenskom znakuniz. Budući da je raspon kriterija jedna ćelija (A2), rezultat je uvijek 1 (podudaranje je pronađeno) ili 0 (podudaranje nije pronađeno). S obzirom na to da je 1 jednako TRUE, a 0 FALSE, formula vraća "Važeno" (value_if_true) kada je broj 1 i prazan niz (value_if_false) kada je broj 0.
IF ISBROJ formula PRETRAŽIVANJA za djelomično odgovara
Još jedan način da prisilite Excel IF da radi za djelomično podudaranje teksta je uključivanje funkcije FIND ili SEARCH u logički test. Razlika je u tome što je FIND osjetljiv na velika i mala slova dok SEARCH nije.
Dakle, ovisno o tome želite li mala i velika slova tretirati kao iste ili različite znakove, jedna od ovih formula će biti dobra:
Formula koja ne razlikuje velika i mala slova za djelomično podudaranje:
IF(ISNUMBER(SEARCH(" text", cell)), value_if_true, value_if_false )Formula osjetljiva na velika i mala slova za djelomično podudaranje:
IF(ISNUMBER(FIND(" text", cell)), value_if_true, value_if_false )Budući da su obje funkcije dizajnirane za izvođenje vrste podudaranja "ćelija sadrži", zamjenski znakovi zapravo nisu potrebni u ovom slučaju.
Na primjer, za otkrivanje ID-ova koji sadrže "A" ili "a" , formula je:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Da tražite samo veliko "A" i zanemarite "a", formula je:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
U B6 na snimci zaslona u nastavku možete vidjeti razliku u rezultatu:
Kako ova formula funkcionira:
Na srce odformule postoji kombinacija ISNUMBER i SEARCH (ili FIND):
ISNUMBER(SEARCH("A", A2))
Funkcija SEARCH traži navedeni tekst ("A" u ovom primjeru) i vraća njegovu poziciju unutar niz u A2. Ako tekst nije pronađen, vraća se pogreška #VALUE. Budući da su i SEARCH i FIND dizajnirani za izvođenje tipa podudaranja "ćelija sadrži", zamjenski znakovi zapravo nisu potrebni u ovom slučaju.
Funkcija ISNUMBER pretvara broj u TRUE i bilo koju drugu vrijednost uključujući pogrešku u FALSE . Logička vrijednost ide izravno u logički test IF. U našem slučaju, A2 sadrži "A", tako da ISNUMBER vraća TRUE:
IF(TRUE, "Yes", "No")
Kao rezultat, IF vraća vrijednost postavljenu za argument value_if_true , što je "Da".
Excel IF OR izjava sa zamjenskim znakovima
Trebate identificirati ćelije koje sadrže jedan od tekstualnih nizova zamjenskih znakova? U ovom slučaju možete kombinirati klasičnu izjavu IF OR s formulom PRETRAŽIVANJA COUNTIF ili ISNUMBER o kojoj smo govorili gore.
Na primjer, za traženje "aa" ILI "bb" u A2 zanemarujući velika slova i vraćajući " Da" ako se pronađe bilo koja, upotrijebite jednu od ovih formula:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
ili
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Zbrajanje dviju funkcija COUNTIF također će funkcionirati. U ovom slučaju, znak plus funkcionira kao operator OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Umjesto da kodirate nizove zamjenskih znakova u formuli, možete ih unijeti u zasebne ćelije, recimo D2 i F2, kao što je prikazano na slici ispod. Imajte na umu da overeference ćelija zaključane su znakom $ tako da se formula ispravno kopira u donje ćelije:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Gore formule dobro funkcioniraju za 2 djelomična podudaranja , ali ako tražite 3 ili više, postali bi predugi. U ovom slučaju, logično je pristupiti zadatku na drugačiji način:
Dodajte više podnizova funkciji SEARCH u konstanti polja, prebrojite vraćene brojeve i provjerite je li rezultat veći od nule (što bi značilo da barem jedan od podnizova ako je pronađen):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
Na ovaj način ćete dobiti potpuno isti rezultat sa kompaktnijom formulom:
Excel IF AND formula sa zamjenskim znakovima
Kada želite provjeriti sadrži li ćelija dva ili više različitih podnizova, najlakši je način koristiti funkciju COUNTIFS sa zamjenskim znakovima za logički test.
Pretpostavimo da želite locirati ćelije u stupcu A koje sadrže i "b" I "2". Da biste to učinili, koristite "*b*" i "*2*" za kriterije COUNTIFS-a i A2 za raspon kriterija:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Drugi način je da zajedno koristite formulu IF I s PRETRAŽIVANJEM ISBROJEVA:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Iako u ovu formulu ne uključujemo zamjenske znakove, ona funkcionira kao traženje dva niza zamjenskih znakova ("*b*" i "*2*" ) u istoj ćeliji.
Naravno, ništa vas ne sprječava da unesete vrijednosti pretraživanja u unaprijed definirane ćelije, D2 i F2 u našem slučaju, i datećelija upućuje na formulu:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Ako više volite koristiti kompaktnije formule gdje god je to moguće, možda bi vam se više svidio pristup konstante polja. Formula IF COUNT SEARCH vrlo je slična prethodnom primjeru, ali budući da se ovaj put oba podniza moraju pojaviti u A2, provjeravamo je li broj jednak 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Ovo su glavne metode korištenja zamjenskog znaka u izjavi IF u Excelu. Ako znate neka druga rješenja, drugi će korisnici sigurno cijeniti ako svoje iskustvo podijelite u komentarima. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!
Radna bilježnica za vježbu za preuzimanje
Excel IF primjeri formula sa zamjenskim znakovima (.xlsx datoteka)