Sadržaj
Pokušavate da napravite IF izraz sa džoker tekstom, ali svaki put ne uspe? Problem nije u vašoj formuli već 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 izvršiti djelomično ili nejasno podudaranje u Excelu, najočitije rješenje je da koristite 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 korisnika Excela :) Kombinacijom IF s drugim funkcijama, možete ga prisiliti da procijeni djelomično podudaranje i dobije lijepu alternativu Excel formuli zamjenskog znaka IF.
Zašto Excel IF funkcija sa zamjenskim znakom ne radi
U donjoj tabeli uzorka, pretpostavimo da želite provjeriti da li ID-ovi u prvoj koloni sadrže slovo "A". Ako se pronađe - prikaži "Da" u koloni B, ako ne - prikaži "Ne".
Čini se da bi uključivanje zamjenskog teksta u logički test bilo jednostavno rješenje:
=IF(A2="*a*","Yes", "No")
Ali nažalost ne radi. Formula vraća "Ne" za sve ćelije, čak i one koje sadrže "A":
Zaštozamjenski znak IF nije uspio? Po svemu sudeći, Excel ne prepoznaje zamjenske znakove koji se koriste sa znakom jednakosti ili druge logičke operatore. Ako pažljivije pogledate listu funkcija koje podržavaju zamjenske znakove, primijetit ćete da njihova sintaksa pretpostavlja da se zamjenski tekst pojavljuje direktno u argumentu poput ovog:
=COUNTIF(A2:A10, "*a*")
Excel IF sadrži djelomični tekst
Sada kada znate razlog zašto formula IF sa zamjenskim znakom ne uspijeva, pokušajmo shvatiti kako da je natjeramo da radi. Za ovo ćemo jednostavno ugraditi funkciju koja prihvata zamjenske znakove u logički test IF, odnosno funkciju COUNTIF:
IF( cell, "* text* "), value_if_true, value_if_false)Sa ovim pristupom, IF nema problema s razumijevanjem zamjenskih znakova i besprijekorno identificira ćelije koje sadrže ili "A" ili "a" (pošto COUNTIF nije osjetljiv na velika i mala slova):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Ova formula ide na B2, ili bilo koju drugu ćeliju u redu 2, a zatim je možete povući dolje na onoliko ćelija koliko je potrebno:
Ovo rješenje se također može koristiti za lociranje stringova određenog uzorka . Pod pretpostavkom da su važeći samo ID-ovi koji se sastoje od 2 grupe po 2 znaka odvojena crticom, možete koristiti "??-??" džoker niz 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 džokerustring. 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 da je 1 jednako TRUE, a 0 FALSE, formula vraća "Valid" (value_if_true) kada je broj 1 i prazan niz (value_if_false) kada je broj 0.
IF ISNUMBER SEARCH formulu za djelomični matches
Drugi 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 tretirati mala i velika slova kao iste ili različite znakove, jedna od ovih formula će raditi kao poslastica:
Formula bez obzira na velika i mala slova za djelomično podudaranje:
IF(ISNUMBER(SEARCH(" tekst", ćelija)), value_if_true, value_if_false )Formula osjetljiva na velika i mala slova za djelomično podudaranje:
IF(ISNUMBER(FIND(" tekst", ćelija)), value_if_true, value_if_false )Kako su obje funkcije dizajnirane da izvode podudaranje tipa "ćelija sadrži", zamjenski znakovi u ovom slučaju nisu potrebni.
Na primjer, za otkrivanje ID-ova koji sadrže "A" ili "a" , formula je:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Da biste tražili samo veliko "A" i zanemarili "a", formula je:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
U B6 na slici ispod, možete uočiti razliku u rezultatu:
Kako ova formula funkcionira:
Na heart offormula, 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 greška #VALUE. Kako su i SEARCH i FIND dizajnirani da izvode podudaranje tipa "ćelija sadrži", zamjenski znakovi u ovom slučaju zapravo nisu potrebni.
Funkcija ISNUMBER pretvara broj u TRUE i bilo koju drugu vrijednost uključujući grešku u FALSE . Logička vrijednost ide direktno 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 value_if_true argument, koji je "Da".
Excel IF OR izraz sa zamjenskim znakovima
Trebate identificirati ćelije koje sadrže jedan od tekstualnih nizova zamjenskih znakova? U ovom slučaju, možete kombinirati klasičnu IF OR naredbu sa formulom COUNTIF ili ISNUMBER SEARCH o kojoj smo gore raspravljali.
Na primjer, da biste tražili "aa" ILI "bb" u A2 zanemarujući velika i mala slova i vratite " Da" ako je bilo koja pronađena, koristite 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 dvije funkcije COUNTIF će također raditi. U ovom slučaju, znak plus radi kao operator OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Umjesto čvrstog kodiranja nizova zamjenskih znakova u formuli, možete ih unijeti u zasebne ćelije, recimo D2 i F2, kao što je prikazano na snimku ekrana ispod. Obratite pažnju da ovireference ćelija su zaključane znakom $ tako da se formula ispravno kopira u donje ćelije:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Gore formule dobro rade za 2 djelomična podudaranja , ali ako tražite 3 ili više, oni bi postali predugački. U ovom slučaju, razumno je pristupiti zadatku na drugačiji način:
Nabavite više podnizova funkciji SEARCH u konstanti niza, 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 I formula sa zamjenskim znakovima
Kada želite provjeriti sadrži li ćelija dva ili više različitih podniza, najlakši način je da koristite funkciju COUNTIFS sa zamjenskim znakovima za logički test.
Pretpostavimo da želite da locirate ćelije u koloni A koje sadrže i "b" I "2". Da biste to učinili, koristite "*b*" i "*2*" za COUNTIFS-ove kriterije 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 ne uključujemo nikakve zamjenske znakove u ovu formulu, ona funkcionira kao traženje dva zamjenska niza ("*b*" i "*2*" ) u istoj ćeliji.
Naravno, ništa vas ne sprječava da unesete vrijednosti za pretragu u unaprijed definirane ćelije, u našem slučaju D2 i F2, i unesetećelija upućuje na formulu:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Ako više volite da koristite kompaktnije formule gdje god je to moguće, možda će vam se više svidjeti pristup konstanti niza. Formula IF COUNT SEARCH je vrlo slična u prethodnom primjeru, ali pošto se ovaj put oba podniza moraju pojaviti u A2, provjeravamo da li je broj jednak 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Ovo su glavne metode korištenja zamjenskih znakova u IF naredbi u Excelu. Ako znate neka druga rješenja, drugi korisnici će sigurno cijeniti ako u komentarima podijelite svoje iskustvo. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!
Vježbanje za preuzimanje
Primjeri formule za zamjenske znakove u Excelu (.xlsx datoteka)