Kazalo
V učbeniku so na voljo številni primeri formul "Excel if contains", ki prikazujejo, kako vrniti nekaj v drugem stolpcu, če ciljna celica vsebuje zahtevano vrednost, kako iskati z delnim ujemanjem in preizkusiti več meril z logiko OR in AND.
Eno najpogostejših opravil v Excelu je preverjanje, ali celica vsebuje vrednost, ki vas zanima. Kakšna vrednost je to lahko? Samo katero koli besedilo ali številka, določeno besedilo ali kakršna koli vrednost (ne prazna celica).
V Excelu obstaja več različic formule "Če celica vsebuje", odvisno od tega, katere vrednosti želite poiskati. Na splošno boste funkcijo IF uporabili za izvedbo logičnega preizkusa in vrnili eno vrednost, če je pogoj izpolnjen (celica vsebuje), in/ali drugo vrednost, če pogoj ni izpolnjen (celica ne vsebuje). Spodnji primeri zajemajo najpogostejše scenarije.
Če celica vsebuje katero koli vrednost, potem
Za začetek poglejmo, kako poiskati celice, ki vsebujejo kar koli: besedilo, številko ali datum. Za to bomo uporabili preprosto formulo IF, ki preverja celice, ki niso prazne.
IF( celica "", value_to_return , "")Če želite na primer v stolpec B vrniti "Ni prazno", če celica stolpca A v isti vrstici vsebuje katero koli vrednost, vnesite naslednjo formulo v B2 in nato dvakrat kliknite majhen zelen kvadrat v spodnjem desnem kotu, da kopirate formulo navzdol po stolpcu:
=IF(A2"", "Ni prazno", "")
Rezultat bo podoben temu:
Če celica vsebuje besedilo, potem
Če želite poiskati samo celice z besedilnimi vrednostmi brez številk in datumov, uporabite IF v kombinaciji s funkcijo ISTEXT. Tukaj je splošna formula za vrnitev neke vrednosti v drugi celici, če ciljna celica vsebuje poljubno besedilo :
IF(ISTEXT( celica ), value_to_return , "")Recimo, da želite v stolpec B vstaviti besedo "da", če celica v stolpcu A vsebuje besedilo. To lahko storite tako, da v B2 vstavite naslednjo formulo:
=IF(ISTEXT(A2), "Da", "")
Če celica vsebuje številko, potem
Na podoben način lahko prepoznate celice s številčnimi vrednostmi (številke in datumi). Za to uporabite funkcijo IF skupaj s funkcijo ISNUMBER:
IF(ISNUMBER( celica ), value_to_return , "")Naslednja formula vrne "da" v stolpec B, če ustrezna celica v stolpcu A vsebuje katero koli število:
=IF(ISNUMBER(A2), "Da", "")
Če celica vsebuje določeno besedilo
Iskanje celic, ki vsebujejo določeno besedilo (ali številke ali datume), je enostavno. Napišete običajno formulo IF, ki preveri, ali ciljna celica vsebuje želeno besedilo, in vnesete besedilo, ki ga želite vrniti v polje value_if_true argument.
IF( celica =" besedilo ", value_to_return , "")Če želite na primer ugotoviti, ali celica A2 vsebuje "jabolka", uporabite to formulo:
=IF(A2="jabolka", "Da", "")
Če celica ne vsebuje določenega besedila
Če želite doseči nasprotni rezultat, tj. vrniti določeno vrednost v drug stolpec, če ciljna celica ne vsebuje določenega besedila ("jabolka"), potem naredite eno od naslednjih dejanj.
V vnosu praznega niza ("") v polju value_if_true in besedilo, ki se vrne v value_if_false argument:
=IF(A2="jabolka", "", "Ne jabolka")
Ali pa vnesite operator "ni enako" v logični_test in besedilo, ki se vrne v value_if_true:
=IF(A2 "jabolka", "Ne jabolka", "")
V vsakem primeru bo formula dala ta rezultat:
Če celica vsebuje besedilo: formula, občutljiva na velikost črk
Če želite, da formula razlikuje med velikimi in malimi črkami, uporabite funkcijo EXACT, ki preveri, ali sta dva besedilna niza popolnoma enaka, vključno z velikostjo črk:
=IF(EXACT(A2, "APPLES"), "Yes", "")
Besedilni niz modela lahko vnesete tudi v neko celico (na primer v C1), določite sklic na celico z znakom $ ($C$1) in primerjate ciljno celico s to celico:
=IF(EXACT(A2,$C$1), "Da", "")
Če celica vsebuje določen besedilni niz (delno ujemanje)
Končali smo s trivialnimi nalogami in prešli na bolj zahtevne in zanimive :) V tem primeru potrebujemo tri različne funkcije, da ugotovimo, ali je določen znak ali podreženj del vsebine celice:
IF(ISNUMBER(SEARCH(" besedilo" , celica )), value_to_return ,"")Formula deluje od znotraj navzven, zato je opisano, kaj počne:
- Funkcija SEARCH poišče besedilni niz in če ga najde, vrne položaj prvega znaka, v nasprotnem primeru pa napako #VALUE!.
- Funkcija ISNUMBER preveri, ali je iskanje SEARCH uspelo ali ne. Če je iskanje SEARCH vrnilo katero koli število, funkcija ISNUMBER vrne TRUE. Če je rezultat iskanja SEARCH napaka, funkcija ISNUMBER vrne FALSE.
- Nazadnje funkcija IF vrne določeno vrednost za celice, ki imajo v logičnem testu vrednost TRUE, v nasprotnem primeru pa prazen niz ("").
Zdaj pa si poglejmo, kako ta splošna formula deluje v resničnih delovnih listih.
Če celica vsebuje določeno besedilo, postavite vrednost v drugo celico
Recimo, da imate seznam naročil v stolpcu A in želite poiskati naročila z določenim identifikatorjem, na primer "A-". To nalogo lahko opravite s to formulo:
=IF(ISNUMBER(SEARCH("A-",A2)), "Velja","")
Namesto da bi niz trdno kodirali v formuli, ga lahko vnesete v ločeno celico (E1) in se nanjo sklicujete v formuli:
=IF(ISNUMBER(SEARCH($E$1,A2)), "Velja","")
Za pravilno delovanje formule ne pozabite zakleniti naslova celice, ki vsebuje niz, z znakom $ (absolutni sklic na celico).
Če celica vsebuje določeno besedilo, ga kopirajte v drug stolpec
Če želite vsebino veljavnih celic kopirati kam drugam, preprosto navedite naslov ocenjene celice (A2) v ukazu value_if_true argument:
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")
Spodnja slika zaslona prikazuje rezultate:
Če celica vsebuje določeno besedilo: formula, občutljiva na velikost črk
V obeh zgornjih primerih formule niso občutljive na velike in male črke. Kadar delate s podatki, ki so občutljivi na velike in male črke, namesto funkcije SEARCH uporabite funkcijo FIND, da razlikujete velikost znakov.
Naslednja formula bo na primer prepoznala samo naročila z veliko začetnico "A-", ki ne upošteva malih črk "a-".
=IF(ISNUMBER(FIND("A-",A2)), "Velja","")
Če celica vsebuje enega od več besedilnih nizov (logika OR)
Če želite prepoznati celice, ki vsebujejo vsaj eno od številnih iskanih stvari, uporabite eno od naslednjih formul.
IF ALI ISNUMBER SEARCH formula
Najočitnejši pristop bi bil, da bi preverili vsak podrejeni niz posebej in da bi funkcija OR v logičnem preizkusu formule IF vrnila TRUE, če je najden vsaj en podrejeni niz:
IF(OR(ISNUMBER(SEARCH(" niz1 ", celica )), ISNUMBER(ISKANJE(" niz2 ", celica ))), value_to_return , "")Recimo, da imate v stolpcu A seznam kosov SKU in želite poiskati tiste, ki vključujejo "obleka" ali "krilo". To lahko storite z uporabo te formule:
=IF(OR(ISNUMBER(SEARCH("obleka",A2)),ISNUMBER(SEARCH("krilo",A2))), "Velja ","")
Ta formula deluje precej dobro za nekaj elementov, vendar ni pravi način, če želite preveriti več stvari. V tem primeru bi bilo bolje uporabiti funkcijo SUMPRODUCT, kot je prikazano v naslednjem primeru.
Formula SUMPRODUCT ISNUMBER SEARCH
Če imate opravka z več besedilnimi nizi, bi bilo iskanje vsakega niza posebej predolgo in otežilo branje formule. Elegantnejša rešitev bi bila vgradnja kombinacije ISNUMBER SEARCH v funkcijo SUMPRODUCT in preverjanje, ali je rezultat večji od nič:
SUMPRODUCT(--ISNUMBER(SEARCH( vrstice , celica )))>0Če želite na primer ugotoviti, ali A2 vsebuje katero od besed, vnesenih v celice D2:D4, uporabite to formulo:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
Ustvarite lahko tudi poimenovano območje, ki vsebuje iskane nize, ali pa besede navedete neposredno v formuli:
=SUMPRODUCT(--ISNUMBER(SEARCH({"obleka", "krilo", "kavbojke"},A2)))>0
V vsakem primeru bo rezultat podoben temu:
Če želite, da je izpis uporabniku prijaznejši, lahko zgornjo formulo vstavite v funkcijo IF in namesto vrednosti TRUE/FALSE vrnete lastno besedilo:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Velja", "")
Kako deluje ta formula
V jedru uporabljate ISNUMBER skupaj s SEARCH, kot je razloženo v prejšnjem primeru. V tem primeru so rezultati iskanja predstavljeni v obliki polja, kot je {TRUE;FALSE;FALSE}. Če celica vsebuje vsaj enega od navedenih podrezi, bo v polju TRUE. Dvojni enojni operator (--) spremeni vrednosti TRUE / FALSE v 1 oziroma 0 in dobi polje, kot je{1;0;0}. Na koncu funkcija SUMPRODUCT sešteje številke in izbere celice, v katerih je rezultat večji od nič.
Če celica vsebuje več nizov (logika AND)
Kadar želite poiskati celice, ki vsebujejo vse navedene besedilne nize, uporabite že znano kombinacijo ISNUMBER SEARCH skupaj z IF AND:
IF(AND(ISNUMBER(SEARCH(" niz1 ", celica )), ISNUMBER(ISKANJE(" niz2 ", celica ))), value_to_return ,"")S to formulo lahko na primer poiščete SKU, ki vsebujeta besedi "obleka" in "modra":
=IF(AND(ISNUMBER(SEARCH("obleka",A2)),ISNUMBER(SEARCH("modra",A2))), "Velja ","")
Lahko pa vnesete nize v ločene celice in se nanje sklicujete v formuli:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2)), "Velja ","")
Druga možnost je, da preštejete pojavitve vsakega niza in preverite, ali je vsako število večje od nič:
=IF(AND(COUNTIF(A2, "*dress*")>0,COUNTIF(A2, "*blue*")>0), "Valid","")
Rezultat bo natanko takšen, kot je prikazan na zgornji sliki zaslona.
Kako vrniti različne rezultate glede na vrednost celice
Če želite vsako celico v ciljnem stolpcu primerjati z drugim seznamom elementov in za vsako ujemanje vrniti drugačno vrednost, uporabite enega od naslednjih pristopov.
Vgnezdeni IF-i
Logika vgnezdene formule IF je preprosta: za preverjanje vsakega pogoja uporabite ločeno funkcijo IF in glede na rezultate teh testov vrnete različne vrednosti.
IF( celica =" lookup_text1 ", " vrniti _ besedilo1 ", IF( celica =" lookup_text2 ", " vrniti _ besedilo2 ", IF( celica =" lookup_text3 ", " vrniti _ besedilo3 ", "")))Recimo, da imate seznam predmetov v stolpcu A in želite, da so njihove kratice v stolpcu B. Za to uporabite naslednjo formulo:
=IF(A2="jabolko", "Ap", IF(A2="avokado", "Av", IF(A2="banana", "B", IF(A2="limona", "L", ""))))
Za vse podrobnosti o sintaksi in logiki gnezdenega IF glejte Excelov gnezdeni IF - več pogojev v eni formuli.
Formula za iskanje
Če iščete bolj kompaktno in razumljivo formulo, uporabite funkcijo LOOKUP, pri kateri so vrednosti iskanja in vračanja podane kot navpične konstante polja:
LOOKUP( celica , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" vrniti _ besedilo1 ";" vrniti _ besedilo2 ";" vrniti _ besedilo3 ";...})Za natančne rezultate se prepričajte, da so vrednosti iskanja navedene v po abecednem vrstnem redu , od A do Ž.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
Formula Lookup ima v primerjavi z vgnezdenimi IF-ji še eno prednost - razume nadomestni znaki zato lahko prepozna delna ujemanja.
Če na primer stolpec A vsebuje nekaj vrst banan, lahko poiščete "*banana*" in za vse take celice dobite enako kratico ("B"):
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
Več informacij najdete v poglavju Formula za iskanje kot alternativa vgnezdenim IF-om.
Formula Vlookup
Pri delu s spremenljivim naborom podatkov je morda bolj priročno vnesti seznam zadetkov v ločene celice in jih pridobiti s formulo Vlookup, npr:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
Za več informacij si oglejte Excelovo vadnico VLOOKUP za začetnike.
Tako v Excelu preverite, ali celica vsebuje katero koli vrednost ali določeno besedilo. Naslednji teden bomo nadaljevali s pregledom Excelovih formul Če celica vsebuje in se naučili, kako prešteti ali sešteti ustrezne celice, kopirati ali odstraniti celotne vrstice, ki vsebujejo te celice, in še več. Ostani z nami!
Delovni zvezek za prakso
Excel Če celica vsebuje - primeri formul (.xlsx datoteka)