Excel: Ha a cella képletpéldákat tartalmaz

  • Ossza Meg Ezt
Michael Brown

A bemutató számos "Excel if contains" képlet példát tartalmaz, amelyek megmutatják, hogyan lehet valamit visszaadni egy másik oszlopban, ha egy célcella tartalmaz egy szükséges értéket, hogyan lehet részleges egyezéssel keresni és több kritériumot tesztelni VAGY és ÉS logikával.

Az Excel egyik leggyakoribb feladata annak ellenőrzése, hogy egy cella tartalmaz-e egy érdekes értéket. Milyen érték lehet ez? Bármilyen szöveg vagy szám, meghatározott szöveg vagy bármilyen érték (nem üres cella).

Az Excelben az "If cell contains" képletnek több változata létezik, attól függően, hogy pontosan milyen értékeket szeretne megtalálni. Általában az IF függvényt logikai teszt elvégzésére használja, és egy értéket ad vissza, ha a feltétel teljesül (a cella tartalmazza) és/vagy egy másik értéket, ha a feltétel nem teljesül (a cella nem tartalmazza). Az alábbi példák a leggyakoribb forgatókönyvekre vonatkoznak.

    Ha a cella bármilyen értéket tartalmaz, akkor

    Kezdetnek nézzük meg, hogyan találjuk meg azokat a cellákat, amelyek bármit tartalmaznak: bármilyen szöveget, számot vagy dátumot. Ehhez egy egyszerű IF képletet fogunk használni, amely a nem üres cellákat ellenőrzi.

    IF( sejt "", value_to_return , "")

    Ha például a B oszlopban a "Nem üres" értéket szeretné visszaadni, ha az A oszlop ugyanabban a sorban lévő cellája bármilyen értéket tartalmaz, adja meg a következő képletet a B2 oszlopban, majd kattintson duplán a jobb alsó sarokban lévő kis zöld négyzetre a képletnek az oszlopba történő másolásához:

    =IF(A2"", "Nem üres", "")

    Az eredmény ehhez hasonlóan fog kinézni:

    Ha a cella szöveget tartalmaz, akkor

    Ha csak a szöveges értékeket tartalmazó cellákat szeretné megtalálni, a számokat és dátumokat figyelmen kívül hagyva, akkor használja az IF-et az ISTEXT függvénnyel kombinálva. Íme az általános képlet, amely egy másik cellában lévő értéket ad vissza, ha a célcella a következőket tartalmazza bármilyen szöveg :

    IF(ISTEXT( sejt ), value_to_return , "")

    Tegyük fel, hogy a B oszlopba az "igen" szót szeretnénk beilleszteni, ha az A oszlop egyik cellája szöveget tartalmaz. Ehhez a következő képletet kell beírni a B2 oszlopba:

    =IF(ISTEXT(A2), "Igen", "")

    Ha a cella számot tartalmaz, akkor

    Hasonló módon azonosíthatja a numerikus értékeket (számokat és dátumokat) tartalmazó cellákat is. Ehhez használja az IF függvényt az ISNUMBER funkcióval együtt:

    IF(ISNUMBER( sejt ), value_to_return , "")

    A következő képlet a B oszlopban akkor adja vissza az "igen" értéket, ha az A oszlop megfelelő cellája bármilyen számot tartalmaz:

    =IF(ISNUMBER(A2), "Igen", "")

    Ha a cella meghatározott szöveget tartalmaz

    Bizonyos szöveget (vagy számokat vagy dátumokat) tartalmazó cellák keresése egyszerű. Írunk egy szabályos IF képletet, amely ellenőrzi, hogy a célcella tartalmazza-e a kívánt szöveget, és beírjuk a visszaadandó szöveget a következő cellába. value_if_true érv.

    IF( sejt =" szöveg ", value_to_return , "")

    Ha például azt szeretné megtudni, hogy az A2 cella tartalmazza-e az "alma" szót, használja ezt a képletet:

    =IF(A2="alma", "Igen", "")

    Ha a cella nem tartalmaz meghatározott szöveget

    Ha az ellenkező eredményt keresi, azaz valamilyen értéket szeretne visszaadni egy másik oszlopba, ha a célcella nem tartalmazza a megadott szöveget ("alma"), akkor tegye a következők egyikét.

    Adjon meg egy üres karakterláncot ("") a value_if_true argumentumot, és a visszatérítendő szöveget a value_if_false érv:

    =IF(A2="alma", "", "Nem alma")

    Vagy tegyük a "nem egyenlő" operátort a logikai_teszt és a visszatérő szöveget a value_if_true:

    =IF(A2 "alma", "Nem alma", "")

    A képlet mindkét esetben ezt az eredményt adja:

    Ha a cella szöveget tartalmaz: nagy- és kisbetű-érzékeny formula

    Ha arra szeretné kényszeríteni a képletet, hogy különbséget tegyen a kis- és nagybetűs karakterek között, használja az EXACT függvényt, amely ellenőrzi, hogy két szöveges karakterlánc pontosan megegyezik-e, beleértve a betűk nagybetűit is:

    =IF(EXACT(A2, "APPLES"), "Igen", "")

    A modell szöveges karakterláncát beírhatja valamelyik cellába (mondjuk a C1-be), a cellahivatkozást rögzítheti a $ jellel ($C$1), és összehasonlíthatja a célcellát ezzel a cellával:

    =IF(EXACT(A2,$C$1), "Igen", "")

    Ha a cella tartalmaz egy adott szöveges karakterláncot (részleges egyezés)

    Befejeztük a triviális feladatokat, és áttérünk a nagyobb kihívást jelentő és érdekesebb feladatokra :) Ebben a példában három különböző függvényre van szükség ahhoz, hogy kiderítsük, hogy egy adott karakter vagy részlánc része-e a cella tartalmának:

    IF(ISNUMBER(SEARCH(" szöveg" , sejt )), value_to_return ,"")

    A képlet belülről kifelé haladva a következőket teszi:

    • A SEARCH függvény egy szöveges karakterláncot keres, és ha a karakterláncot megtalálja, akkor az első karakter pozícióját adja vissza, ellenkező esetben a #VALUE! hibát.
    • Az ISNUMBER függvény ellenőrzi, hogy a SEARCH sikeres vagy sikertelen volt-e. Ha a SEARCH bármilyen számot visszaadott, az ISNUMBER TRUE-t ad vissza. Ha a SEARCH hibát eredményez, az ISNUMBER FALSE-t ad vissza.
    • Végül az IF függvény a megadott értéket adja vissza azon cellák esetében, amelyeknél a logikai tesztben TRUE értéket kapunk, egyébként pedig egy üres karakterláncot ("").

    És most nézzük meg, hogyan működik ez az általános formula a valós munkalapokon.

    Ha a cella tartalmaz egy bizonyos szöveget, tegyen egy értéket egy másik cellába.

    Tegyük fel, hogy az A oszlopban van egy lista a megrendelésekről, és meg akarjuk találni azokat a megrendeléseket, amelyeknek egy bizonyos azonosítója van, mondjuk "A-". A feladatot ezzel a képlettel lehet megoldani:

    =IF(ISNUMBER(SEARCH("A-",A2)), "Valid","")

    Ahelyett, hogy a karakterláncot a képletbe kódolná, beírhatja egy különálló cellába (E1), és a képletben hivatkozhat erre a cellára:

    =IF(ISNUMBER(SEARCH($E$1,A2)), "Valid","")

    Ahhoz, hogy a képlet helyesen működjön, győződjön meg róla, hogy a karakterláncot tartalmazó cella címét $ jellel (abszolút cellahivatkozás) rögzíti.

    Ha a cella egy adott szöveget tartalmaz, másolja át egy másik oszlopba.

    Ha az érvényes cellák tartalmát máshova szeretné másolni, egyszerűen adja meg az értékelt cella (A2) címét a value_if_true érv:

    =IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")

    Az alábbi képernyőkép mutatja az eredményeket:

    Ha a cella meghatározott szöveget tartalmaz: nagy- és kisbetű-érzékeny formula

    Mindkét fenti példában a képletek nem érzékenyek a nagy- és kisbetűkre. Azokban a helyzetekben, amikor nagy- és kisbetű érzékeny adatokkal dolgozik, a karakterek esetének megkülönböztetéséhez a SEARCH helyett a FIND funkciót használja.

    Például a következő képlet csak a nagybetűs "A-" rendeléseket azonosítja, figyelmen kívül hagyva a kisbetűs "a-" betűket.

    =IF(ISNUMBER(FIND("A-",A2)), "Valid","")

    Ha a cella a sok szöveges karakterlánc egyikét tartalmazza (VAGY logika)

    A keresett dolgok közül legalább egyet tartalmazó cellák azonosításához használja a következő képletek egyikét.

    IF OR ISNUMBER SEARCH formula

    A legkézenfekvőbb megközelítés az lenne, ha minden egyes részláncot külön-külön vizsgálnánk, és a VAGY függvény az IF formula logikai tesztjében TRUE-t adna vissza, ha legalább egy részláncot találunk:

    IF(OR(ISNUMBER(SEARCH(" string1 ", sejt )), ISNUMBER(SEARCH(" string2 ", sejt ))), value_to_return , "")

    Tegyük fel, hogy az A oszlopban van egy SKU-listája, és meg akarja találni azokat, amelyekben szerepel a "ruha" vagy a "szoknya". Ezt a következő képlet segítségével teheti meg:

    =IF(OR(ISNUMBER(SEARCH("ruha",A2)),ISNUMBER(SEARCH("szoknya",A2))), "Érvényes ","")

    A képlet néhány elem esetében elég jól működik, de biztosan nem ez a megfelelő megoldás, ha sok mindent szeretne ellenőrizni. Ebben az esetben jobb megközelítés lenne a SUMPRODUCT függvény használata, ahogy a következő példában látható.

    SUMPRODUCT ISNUMBER SEARCH formula

    Ha több szöveges karakterlánccal van dolgunk, akkor az egyes karakterláncok külön-külön történő keresése túl hosszúvá és nehezen olvashatóvá tenné a képletet. Elegánsabb megoldás lenne az ISNUMBER SEARCH kombináció beágyazása a SUMPRODUCT függvénybe, és megnézni, hogy az eredmény nagyobb-e nullánál:

    SUMPRODUCT(--ISNUMBER(SEARCH( stringek , sejt )))>0

    Ha például azt szeretné megtudni, hogy az A2 tartalmazza-e a D2:D4 cellákba beírt szavak bármelyikét, használja ezt a képletet:

    =SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0

    Alternatívaként létrehozhat egy névvel ellátott tartományt, amely tartalmazza a keresendő karakterláncokat, vagy közvetlenül a képletben adhatja meg a szavakat:

    =SUMPRODUCT(--ISNUMBER(SEARCH({"ruha", "szoknya", "farmer"},A2)))>0

    Az eredmény mindkét esetben ehhez hasonló lesz:

    A kimenet felhasználóbarátabbá tétele érdekében a fenti képletet beágyazhatja az IF függvénybe, és a TRUE/FALSE értékek helyett a saját szövegét adhatja vissza:

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")

    Hogyan működik ez a képlet

    A lényeg az ISNUMBER és a SEARCH együttes használata az előző példában leírtak szerint. Ebben az esetben a keresési eredmények egy olyan tömb formájában jelennek meg, mint {TRUE;FALSE;FALSE}. Ha egy cella tartalmazza a megadott részsorok közül legalább egyet, akkor a tömbben TRUE lesz. A kettős egyértékű operátor (--) a TRUE / FALSE értékeket 1-re, illetve 0-ra kényszeríti, és egy olyan tömböt ad, mint a következő{1;0;0}. Végül a SUMPRODUCT függvény összeadja a számokat, és kivesszük azokat a cellákat, ahol az eredmény nagyobb, mint nulla.

    Ha a cella több karakterláncot tartalmaz (AND logika)

    Azokban az esetekben, amikor a megadott szöveges karakterláncok mindegyikét tartalmazó cellákat szeretné megtalálni, használja a már ismert ISNUMBER SEARCH kombinációt az IF AND kombinációval együtt:

    IF(AND(ISNUMBER(SEARCH(" string1 ", sejt )), ISNUMBER(SEARCH(" string2 ", sejt ))), value_to_return ,"")

    Például ezzel a képlettel megtalálhatja a "ruha" és a "kék" szót is tartalmazó SKU-kat:

    =IF(AND(ISNUMBER(SEARCH("ruha",A2)),ISNUMBER(SEARCH("kék",A2))), "Valid ","")

    A karakterláncokat külön cellákba is beírhatja, és a képletben hivatkozhat ezekre a cellákra:

    =IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))), "Valid ","")

    Alternatív megoldásként megszámolhatja az egyes karakterláncok előfordulásait, és ellenőrizheti, hogy mindegyik szám nagyobb-e nullánál:

    =IF(AND(COUNTIF(A2, "*ruha*")>0,COUNTIF(A2, "*kék*")>0), "Valid","")

    Az eredmény pontosan olyan lesz, mint a fenti képernyőképen látható.

    Hogyan adjunk vissza különböző eredményeket a cella értéke alapján

    Ha a céloszlop minden egyes celláját egy másik elemlistával szeretné összehasonlítani, és minden egyes egyezés esetén más értéket szeretne visszaadni, használja a következő módszerek egyikét.

    Beágyazott IF-ek

    Az egymásba ágyazott IF-képlet logikája a következő: az egyes feltételek tesztelésére külön IF-függvényt használ, és a tesztek eredményétől függően különböző értékeket ad vissza.

    IF( sejt =" lookup_text1 ", " return _ text1 ", IF( sejt =" lookup_text2 ", " return _ text2 ", IF( sejt =" lookup_text3 ", " return _ text3 ", "")))

    Tegyük fel, hogy az A oszlopban van egy lista az elemekről, és a rövidítéseiket a B oszlopban szeretné feltüntetni:

    =IF(A2="alma", "Ap", IF(A2="avokádó", "Av", IF(A2="banán", "B", IF(A2="citrom", "L", "" ))))

    Az egymásba ágyazott IF szintaxisának és logikájának teljes leírását lásd: Excel beágyazott IF - több feltétel egyetlen képletben.

    Keresési képlet

    Ha tömörebb és jobban érthető képletet keres, használja a LOOKUP függvényt, amelynek keresési és visszatérési értékeit függőleges tömbi konstansokként adja meg:

    LOOKUP( sejt , {" lookup_text1 ";" lookup_text2 ";" lookup_text3 ";...}, {" return _ text1 ";" return _ text2 ";" return _ text3 ";...})

    A pontos eredmények érdekében ügyeljen arra, hogy a keresési értékeket a következő listában tüntesse fel betűrendben A-tól Z-ig.

    =LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})

    Az egymásba ágyazott IF-ekkel szemben a Lookup-képletnek van még egy előnye - megérti a helyettesítő karakterek és ezért képes azonosítani a részleges egyezéseket.

    Ha például az A oszlopban többféle banán van, akkor a "*banán*" kifejezésre kereshetünk rá, és minden ilyen cellára ugyanazt a rövidítést ("B") kapjuk vissza:

    =LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})

    További információért lásd a Lookup formula mint a beágyazott IF-ek alternatívája című részt.

    Vlookup formula

    Ha változó adatkészlettel dolgozik, kényelmesebb lehet, ha a találatok listáját külön cellákba írja be, és azokat egy Vlookup-képlet segítségével hívja le, pl.:

    =VLOOKUP(A2, $D$2:$E$5, 2,FALSE )

    További információért lásd az Excel VLOOKUP bemutatót kezdőknek.

    Így ellenőrizheti, hogy egy cella tartalmaz-e valamilyen értéket vagy konkrét szöveget az Excelben. A jövő héten folytatjuk az Excel Ha a cella tartalmaz képletek vizsgálatát, és megtanuljuk, hogyan lehet megszámolni vagy összegezni a releváns cellákat, másolni vagy eltávolítani a cellákat tartalmazó teljes sorokat, és így tovább. Kérjük, maradjon velünk!

    Gyakorló munkafüzet

    Excel If Cell Contains - képlet példák (.xlsx fájl)

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.