Tartalomjegyzék
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:
- 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.
- Az Excelben a FIND funkció nem teszi lehetővé a helyettesítő karakterek .
- 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.
- 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.
- Ha a find_text egy üres karakterlánc "", az Excel FIND képlete a keresési karakterlánc első karakterét adja vissza.
- 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.
Excel FIND vs. Excel SEARCH
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.
1. Nagy- és kisbetű-érzékeny FIND vs. nagy- és kisbetű-érzéketlen SEARCH
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