Excel FIND és SEARCH funkciók képletpéldákkal

  • Ossza Meg Ezt
Michael Brown

Az oktatóanyag elmagyarázza az Excel FIND és SEARCH függvények szintaxisát, és képletpéldákat mutat be a nem triviális felhasználási módokra.

A legutóbbi cikkben az Excel Keresés és csere párbeszédpanelének alapjaival foglalkoztunk. Sok helyzetben azonban előfordulhat, hogy szeretné, ha az Excel automatikusan megkeresné és kivenné az adatokat más cellákból a megadott kritériumok alapján. Nézzük meg tehát közelebbről, mit kínálnak az Excel keresési funkciói.

    Excel FIND funkció

    Az Excelben a FIND funkció egy adott karakter vagy részlánc pozíciójának visszaadására szolgál egy szöveges karakterláncon belül.

    Az Excel Find funkció szintaxisa a következő:

    FIND(find_text, within_text, [start_num])

    Az első 2 argumentum kötelező, az utolsó opcionális.

    • Find_text - a keresett karakter vagy részlánc.
    • Within_text - a keresendő szöveges karakterlánc. Általában cellahivatkozásként adjuk meg, de a karakterláncot közvetlenül a képletbe is beírhatjuk.
    • Start_num - opcionális argumentum, amely megadja, hogy a keresés melyik karaktertől kezdődjön. Ha elhagyja, a keresés a within_text karakterlánc 1. karakterétől kezdődik.

    Ha a FIND függvény nem találja meg a find_text karakter(eke)t, akkor egy #VALUE! hibaüzenet érkezik vissza.

    Például a képlet =FIND("d", "find") 4-et ad vissza, mert a "d" a 4. betű a szó " találja meg a ". A képlet =FIND("a", "find") hibát ad vissza, mert nincs "a" a " találja meg a ".

    Excel FIND funkció - dolgok, amiket érdemes megjegyezni!

    A FIND-képlet helyes használatához az Excelben tartsa szem előtt a következő egyszerű tényeket:

    1. A FIND funkció a következő nagy- és kisbetű érzékeny Ha nagy- és kisbetűket nem figyelembe vevő egyezést keres, használja a KERESÉS funkciót.
    2. Az Excelben a FIND funkció nem teszi lehetővé a helyettesítő karakterek .
    3. Ha a find_text argumentum több karaktert tartalmaz, akkor a FIND függvény visszaadja a keresett karakter pozícióját. első karakter Például a FIND("ap", "happy") formula 2-t ad vissza, mivel az "a" a "happy" szó 2. betűje.
    4. Ha a within_text tartalmazza többször előfordult Például a FIND("l", "hello") 3-t ad vissza, ami az első "l" karakter pozíciója a "hello" szóban.
    5. Ha a find_text egy üres karakterlánc "", az Excel FIND képlete a keresési karakterlánc első karakterét adja vissza.
    6. Az Excel FIND funkciója a #VALUE! hiba ha a következők bármelyike bekövetkezik:
      • A Find_text nem létezik a within_textben.
      • A start_num több karaktert tartalmaz, mint a within_text.
      • A Start_num 0 (nulla) vagy negatív szám.

    Excel SEARCH funkció

    Az Excel SEARCH funkciója nagyon hasonlít a FIND funkcióhoz, mivel ez is egy részlánc helyét adja vissza egy szöveges karakterláncban. Szintaxisa és argumentumai hasonlóak a FIND-hez:

    SEARCH(find_text, within_text, [start_num])

    A FIND funkcióval ellentétben a SEARCH funkció a case-insensitive és lehetővé teszi a helyettesítő karakterek használatát, amint azt a következő példa mutatja.

    És itt van néhány alapvető Excel SEARCH képlet:

    =SEARCH("piac", "szupermarket") 6-ot ad vissza, mert a "market" részlánc a "supermarket" szó 6. karakterével kezdődik.

    =SEARCH("e", "Excel") 1-et ad vissza, mert az "e" az első karakter az "Excel" szóban, figyelmen kívül hagyva a nagy- és kisbetűket.

    A FIND funkcióhoz hasonlóan az Excel SEARCH funkciója is a #VALUE! hibát adja vissza, ha:

    • A find_text argumentum értéke nem található.
    • A start_num argumentum nagyobb, mint a within_text hossza.
    • Start_num egyenlő vagy kisebb, mint nulla.

    A bemutató további részében talál néhány értelmes képletpéldát, amelyek bemutatják, hogyan kell használni a SEARCH funkciót az Excel munkalapokon.

    Mint már említettük, a FIND és a SEARCH funkciók az Excelben nagyon hasonlítanak egymásra a szintaxis és a felhasználás szempontjából. Van azonban néhány különbség.

    A legfontosabb különbség az Excel SEARCH és FIND funkciói között az, hogy a SEARCH nem érzékeny a nagy- és kisbetűkre, míg a FIND érzékeny a kis- és nagybetűkre.

    Például a SEARCH("e", "Excel") 1-et ad vissza, mert figyelmen kívül hagyja az "E" nagybetűjét, míg a FIND("e", "Excel") 4-et ad vissza, mert figyelembe veszi a nagybetűt.

    2. Keresés helyettesítő karakterekkel

    A FIND funkcióval ellentétben az Excel SEARCH funkció elfogadja a kereső karaktereket a find_text argumentumban:

    • A kérdőjel (?) egy karakterre illik, és a
    • A csillag (*) bármely karaktersorozatra illik.

    Hogy lássa, hogyan működik ez a valós adatokon, tekintse meg a következő példát:

    Amint a fenti képernyőképen látható, a SEARCH("function*2013", A2) formula a részlánc első karakterének ("f") pozícióját adja vissza, ha a within_text argumentumban hivatkozott szöveges karakterlánc tartalmazza a "function" és a "2013" szót is, függetlenül attól, hogy hány karakter van még a kettő között.

    Tipp: Ha tényleges kérdőjelet (?) vagy csillagot (*) szeretne találni, írjon be egy tilde-et (~) a megfelelő karakter elé.

    Excel FIND és SEARCH képlet példák

    A gyakorlatban az Excel FIND és SEARCH funkciókat ritkán használják önmagukban. Általában más funkciókkal, például a MID, LEFT vagy RIGHT függvényekkel kombinálva használjuk őket, és az alábbi képletpéldák néhány valós felhasználási módot mutatnak be.

    Példa 1. Egy adott karaktert megelőző vagy követő karakterlánc keresése

    Ez a példa azt mutatja be, hogyan kereshetjük meg és vonhatjuk ki egy szöveges karakterláncban egy adott karaktertől balra vagy jobbra lévő összes karaktert. A könnyebb megértés érdekében tekintsük a következő példát.

    Tegyük fel, hogy van egy névoszlopunk (A oszlop), és a keresztnevet és a vezetéknevet külön oszlopokba szeretnénk húzni.

    A keresztnév megadásához használhatja a FIND (vagy SEARCH) funkciót a LEFT funkcióval együtt:

    =LEFT(A2, FIND(" ", A2)-1)

    vagy

    =LEFT(A2, SEARCH(" ", A2)-1)

    Mint valószínűleg tudod, az Excel LEFT függvénye a karakterlánc bal szélső karaktereinek meghatározott számát adja vissza. A FIND függvényt pedig arra használod, hogy meghatározd a szóköz (" ") pozícióját, hogy a LEFT függvény tudja, hány karaktert kell kivenni. Ekkor a szóköz pozíciójából levonsz 1-et, mert nem akarod, hogy a visszaadott érték tartalmazza a szóközt.

    A vezetéknév kivonásához használja a RIGHT, a FIND / SEARCH és a LEN függvények kombinációját. A LEN függvényre azért van szükség, hogy megkapja a karakterláncban lévő összes karakter számát, amelyből kivonja a szóköz pozícióját:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    vagy

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

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

    Az összetettebb forgatókönyvek, például a középső név kivonása vagy a nevek utótagokkal történő felosztása esetén lásd a Hogyan osszuk fel a cellákat az Excelben képletekkel?

    Példa 2. Egy adott karakter N-edik előfordulásának keresése egy szöveges karakterláncban

    Tegyük fel, hogy az A oszlopban van néhány szöveges karakterlánc, mondjuk egy SKU lista, és meg akarjuk találni a 2. A következő képlet remekül működik:

    =FIND("-", A2, FIND("-",A2)+1)

    Az első két argumentum könnyen értelmezhető: keressen egy kötőjelet ("-") az A2 cellában. A harmadik argumentumba (start_num) egy másik FIND függvényt ágyaz be, amely azt mondja az Excelnek, hogy a keresést a kötőjel első előfordulása után következő karakterrel kezdje (FIND("-",A2)+1).

    A pozíció visszaállításához a 3. előfordulás , a fenti képletet egy másik FIND függvény start_num argumentumába ágyazza, és a visszaadott értékhez 2-t ad hozzá:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    Egy másik és valószínűleg egyszerűbb módja egy adott karakter N-edik előfordulásának megtalálására az Excel FIND funkciójának használata a CHAR és SUBSTITUTE funkcióval kombinálva:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    Ahol a "-" a kérdéses karakter, a "3" pedig a keresett N-edik előfordulás.

    A fenti képletben a SUBSTITUTE függvény a kötőjel ("-") 3. előfordulását CHAR(1) karakterrel helyettesíti, amely az ASCII rendszerben a "címsor kezdete" nem nyomtatható karakter. A CHAR(1) helyett bármilyen más nem nyomtatható karaktert használhat 1-től 31-ig. Ezután a FIND függvény visszaadja a karakter pozícióját a szöveges karakterláncban. Az általános képlet tehát a következő:

    FIND(CHAR(1),SUBSTITUTE( sejt , karakter ,CHAR(1), N-edik előfordulás ))

    Első pillantásra úgy tűnhet, hogy a fenti képleteknek kevés gyakorlati értéke van, de a következő példa megmutatja, hogy mennyire hasznosak a valós feladatok megoldásában.

    Megjegyzés: Ne feledje, hogy az Excel FIND funkciója a nagy- és kisbetűket megkülönbözteti. A mi példánkban ez nem jelent különbséget, de ha betűkkel dolgozik, és egy case-insensitive egyezés, a FIND helyett használja a SEARCH funkciót.

    Példa 3. Egy adott karaktert követő N karakter kivonása

    Ha egy adott hosszúságú részláncot szeretne megkeresni bármely szöveges karakterláncon belül, használja az Excel FIND vagy az Excel SEARCH funkciót a MID funkcióval kombinálva. Az alábbi példa azt mutatja be, hogyan használhatja ezeket a képleteket a gyakorlatban.

    Tegyük fel, hogy a SKU-k listájában az első kötőjelet követő első 3 karaktert szeretnénk megtalálni, és egy másik oszlopba húzni.

    Ha az első kötőjelet megelőző karaktercsoport mindig ugyanannyi elemet tartalmaz (pl. 2 karaktert), akkor ez triviális feladat. A MID függvényt használhatja a karakterláncból 3 karakter visszaadására, a 4. pozíciótól kezdve (az első 2 karakter és a kötőjel kihagyásával):

    =MID(A2, 4, 3)

    Magyarra lefordítva a képlet így szól: "Nézd meg az A2 cellát, kezdd el a kivonatolást a 4. karaktertől, és adj vissza 3 karaktert".

    A valós munkalapokon azonban a kivonandó részlánc bárhol kezdődhet a szöveges karakterláncban. A példánkban nem biztos, hogy tudja, hány karakterrel előzi meg az első kötőjelet. Ennek a kihívásnak a megoldására használja a FIND függvényt a kivonandó részlánc kezdőpontjának meghatározására.

    A FIND képlet az 1. kötőjel pozíciójának visszaadásához a következő:

    =FIND("-",A2)

    Mivel a kötőjelet követő karakterrel akarjuk kezdeni, adjunk hozzá 1-et a visszaadott értékhez, és ágyazzuk be a fenti függvényt a MID függvény második argumentumába (start_num):

    =MID(A2, FIND("-",A2)+1, 3)

    Ebben a forgatókönyvben az Excel SEARCH funkciója ugyanolyan jól működik:

    =MID(A2, SEARCH("-",A2)+1, 3)

    Ez nagyszerű, de mi van akkor, ha az első kötőjel utáni karaktercsoport más karakterszámot tartalmaz? Hmm... ez problémát jelenthet:

    Amint a fenti képernyőképen látható, a képlet tökéletesen működik az 1. és 2. sorban. A 4. és 5. sorban a második csoport 4 karaktert tartalmaz, de csak az első 3 karaktert adja vissza. A 6. és 7. sorban csak 2 karakter van a második csoportban, ezért az Excel keresési képletünk egy kötőjelet ad vissza utánuk.

    Ha vissza akarnál térni minden karakter az 1. és 2. előfordulás között egy bizonyos karakter (ebben a példában kötőjel), hogyan járna el? Íme a válasz:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    A MID-képlet jobb megértéséhez vizsgáljuk meg egyesével az érveit:

    • 1. argumentum (text): A kivonandó karaktereket tartalmazó szöveges karakterlánc, ebben a példában az A2-es cella.
    • 2. argumentum (start_position). Megadja az első karakter pozícióját, amelyet ki akarunk vonni. A FIND függvénnyel megkeresi a karakterlánc első kötőjelét, és ehhez az értékhez hozzáad 1-et, mert a kötőjelet követő karakterrel akarjuk kezdeni: FIND("-",A2)+1.
    • 3. argumentum (num_chars). Megadja a visszaadandó karakterek számát. A mi képletünkben ez a legtrükkösebb rész. Két FIND (vagy SEARCH) függvényt használsz, az egyik az első kötőjel pozícióját határozza meg: FIND("-",A2). A másik pedig a második kötőjel pozícióját adja vissza: FIND("-", A2, FIND("-",A2)+1). Ezután kivonod az elsőt az utóbbiból, majd kivonsz 1-et, mert nem akarod, hogyAz eredmény az 1. és 2. kötőjel közötti karakterek száma lesz, ami pontosan az, amit keresünk. Tehát ezt az értéket tápláljuk be a MID függvény num_chars argumentumába.

    Hasonló módon a 2. kötőjel után 3 karaktert is visszaadhat:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    Vagy vegye ki az összes karaktert a 2. és 3. kötőjel között:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1)+2) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    Példa 4. Szöveg keresése zárójelek között

    Tegyük fel, hogy az A oszlopban van egy hosszú szöveges karakterlánc, és csak a (zárójelbe zárt) szöveget szeretné megtalálni és kivenni.

    Ehhez szükség van a MID függvényre, amely visszaadja a kívánt karakterek számát egy karakterláncból, és az Excel FIND vagy SEARCH függvényére, amely meghatározza, hogy hol kezdje és hány karaktert kell kivenni.

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("("(",A2)-1)

    Ennek a képletnek a logikája hasonló az előző példában tárgyaltakhoz. És ismét a legbonyolultabb rész az utolsó argumentum, amely megmondja a képletnek, hogy hány karaktert adjon vissza. A num_chars argumentumban lévő elég hosszú kifejezés a következőket teszi:

    • Először is meg kell találni a záró zárójel pozícióját: SEARCH(")",A2)
    • Ezután keresse meg a nyitó zárójel helyét: SEARCH("(",A2)
    • Ezután kiszámítja a záró és a nyitó zárójel pozíciójának különbségét, és ebből a számból kivon 1-et, mert egyik zárójelet sem akarja az eredményben látni: SEARCH(")",A2)-SEARCH("("(",A2))-1

    Természetesen semmi sem akadályozza meg abban, hogy a SEARCH helyett az Excel FIND funkcióját használja, mivel a nagy- és kisbetű érzékenység ebben a példában nem jelent különbséget.

    Remélhetőleg ez a bemutató rávilágított arra, hogyan használjuk a SEARCH és FIND funkciókat az Excelben. A következő bemutatóban a REPLACE funkciót fogjuk alaposan megvizsgálni, ezért kérjük, maradjanak velünk. Köszönjük, hogy elolvasták!

    Gyakorlati munkafüzet letöltése

    FIND és SEARCH formula példák

    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.