Excelin FIND- ja SEARCH-toiminnot kaavaesimerkkien kanssa

  • Jaa Tämä
Michael Brown

Ohjeessa selitetään Excelin FIND- ja SEARCH-funktioiden syntaksi ja annetaan kaavaesimerkkejä edistyneistä, ei-triviaaleista käyttötarkoituksista.

Edellisessä artikkelissa käsiteltiin Excelin Etsi ja korvaa -valintaikkunan perusteita. Monissa tilanteissa saatat kuitenkin haluta, että Excel etsii ja poimii tietoja muista soluista automaattisesti kriteerien perusteella. Katsotaan siis tarkemmin, mitä Excelin hakutoiminnoilla on tarjota.

    Excelin FIND-toiminto

    Excelin FIND-toimintoa käytetään palauttamaan tietyn merkin tai osajonon sijainti merkkijonossa.

    Excelin Etsi-toiminnon syntaksi on seuraava:

    FIND(find_text, within_text, [start_num])

    Kaksi ensimmäistä argumenttia vaaditaan, viimeinen on valinnainen.

    • Etsi_teksti - merkki tai osajono, jonka haluat löytää.
    • Within_text - tekstijono, jonka sisältä haetaan. Yleensä se annetaan soluviitteenä, mutta voit myös kirjoittaa merkkijonon suoraan kaavaan.
    • Start_num - valinnainen argumentti, joka määrittää, mistä merkistä haku aloitetaan. Jos se jätetään pois, haku aloitetaan within_text-merkkijonon ensimmäisestä merkistä.

    Jos FIND-funktio ei löydä find_text-merkkiä (-merkkejä), palautetaan virhe #VALUE!.

    Esimerkiksi kaava =FIND("d", "find") palauttaa 4, koska "d" on sanan "" 4. kirjain. löytää ". Kaava =FIND("a", "find") palauttaa virheilmoituksen, koska "a"-merkkiä ei ole kohdassa " löytää ".

    Excelin FIND-toiminto - muistettavia asioita!

    Jos haluat käyttää FIND-kaavaa oikein Excelissä, pidä mielessä seuraavat yksinkertaiset seikat:

    1. FIND-toiminto on isojen ja pienten kirjainten erittely Jos etsit isojen ja pienten kirjainten välistä vastaavuutta, käytä SEARCH-toimintoa.
    2. Excelin FIND-toiminto ei salli seuraavien toimintojen käyttöä jokerimerkit .
    3. Jos find_text-argumentti sisältää useita merkkejä, FIND-funktio palauttaa kohdan ensimmäinen merkki Esimerkiksi kaava FIND("ap", "happy") palauttaa 2, koska "a" on sanan "happy" toinen kirjain.
    4. Jos within_text sisältää useita esiintymiä Esimerkiksi FIND("l", "hello") palauttaa arvon 3, joka on ensimmäisen "l"-merkin sijainti sanassa "hello".
    5. Jos find_text on tyhjä merkkijono "", Excelin FIND-kaava palauttaa hakujonon ensimmäisen merkin.
    6. Excelin FIND-toiminto palauttaa #VALUE! virhe jos jokin seuraavista tapahtuu:
      • Find_text ei ole olemassa within_textissä.
      • Start_num sisältää enemmän merkkejä kuin within_text.
      • Start_num on 0 (nolla) tai negatiivinen luku.

    Excelin SEARCH-toiminto

    Excelin SEARCH-funktio on hyvin samankaltainen kuin FIND, sillä se palauttaa myös merkkijonon osajonon sijainnin. Sen syntaksi ja argumentit ovat samankaltaiset kuin FIND:n:

    SEARCH(find_text, within_text, [start_num])

    Toisin kuin FIND, SEARCH toiminto on case-insensitive ja se sallii jokerimerkkien käytön, kuten seuraavassa esimerkissä osoitetaan.

    Ja tässä on muutama Excelin SEARCH-peruskaava:

    =SEARCH("market", "supermarket") palauttaa 6, koska merkkijono "market" alkaa sanan "supermarket" kuudennesta merkistä.

    =SEARCH("e", "Excel") palauttaa arvon 1, koska "e" on sanan "Excel" ensimmäinen merkki, eikä isoja ja pieniä kirjaimia oteta huomioon.

    Kuten FIND, Excelin SEARCH-toiminto palauttaa #VALUE! -virheen, jos:

    • Argumentin find_text arvoa ei löydy.
    • Argumentti start_num on suurempi kuin within_textin pituus.
    • Start_num on yhtä suuri tai pienempi kuin nolla.

    Jatkossa tässä oppaassa on muutamia mielekkäämpiä kaavaesimerkkejä, jotka osoittavat, miten SEARCH-funktiota käytetään Excel-taulukoissa.

    Kuten jo mainittiin, Excelin FIND- ja SEARCH-toiminnot ovat syntaksiltaan ja käyttötavoiltaan hyvin samankaltaisia. Niillä on kuitenkin pari eroa.

    1. Suuraakkoset huomioiva FIND vs. suuraakkoset huomioimaton SEARCH (haku)

    Oleellisin ero Excelin SEARCH- ja FIND-toimintojen välillä on se, että SEARCH ei erota isoja ja pieniä kirjaimia, kun taas FIND erottaa isoja ja pieniä kirjaimia.

    Esimerkiksi SEARCH("e", "Excel") palauttaa arvon 1, koska se ei huomioi "E":n isoa ja pientä kirjainta, kun taas FIND("e", "Excel") palauttaa arvon 4, koska se huomioi ison ja pienen kirjaimen.

    2. Haku jokerimerkkien avulla

    Toisin kuin FIND, Excelin SEARCH-toiminto hyväksyy jokerimerkit find_text-argumentissa:

    • Kysymysmerkki (?) vastaa yhtä merkkiä, ja
    • Tähti (*) vastaa mitä tahansa merkkisarjaa.

    Seuraavassa esimerkissä näet, miten se toimii todellisissa tiedoissa:

    Kuten yllä olevasta kuvakaappauksesta näet, kaava SEARCH("function*2013", A2) palauttaa merkkijonon ensimmäisen merkin ("f") sijainnin, jos within_text-argumentissa tarkoitettu merkkijono sisältää sekä "function" että "2013", riippumatta siitä, kuinka monta muuta merkkiä välissä on.

    Vihje. Jos haluat löytää varsinaisen kysymysmerkin (?) tai tähtiäänen (*), kirjoita tilde (~) ennen vastaavaa merkkiä.

    Excelin FIND- ja SEARCH-kaavojen esimerkit

    Käytännössä Excelin FIND- ja SEARCH-funktioita käytetään harvoin yksinään, vaan niitä käytetään yleensä yhdessä muiden funktioiden, kuten MID-, LEFT- tai RIGHT-funktioiden, kanssa, ja seuraavat kaavaesimerkit osoittavat joitakin todellisia käyttötapoja.

    Esimerkki 1. Etsi merkkijono, joka edeltää tai seuraa tiettyä merkkiä.

    Tässä esimerkissä näytetään, miten voit etsiä ja poimia kaikki merkkijonon merkit tietyn merkin vasemmalta tai oikealta puolelta. Jotta asia olisi helpompi ymmärtää, tarkastellaan seuraavaa esimerkkiä.

    Oletetaan, että sinulla on nimisarake (sarake A) ja haluat vetää etunimen ja sukunimen erillisiin sarakkeisiin.

    Voit saada etunimen käyttämällä FIND (tai SEARCH) yhdessä LEFT-toiminnon kanssa:

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

    tai

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

    Kuten luultavasti tiedät, Excelin LEFT-funktio palauttaa merkkijonon vasemmanpuoleisimpien merkkien määrän. FIND-funktiolla määritetään välilyönnin (" ") sijainti, jotta LEFT-funktio tietäisi, kuinka monta merkkiä on poimittava. Tällöin välilyönnin sijainnista vähennetään 1, koska palautettuun arvoon ei saa sisältyä välilyöntiä.

    Voit poimia sukunimen käyttämällä RIGHT-, FIND / SEARCH- ja LEN-funktioiden yhdistelmää. LEN-funktiota tarvitaan merkkijonon merkkien kokonaismäärän saamiseksi, josta vähennetään välilyönnin sijainti:

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

    tai

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

    Seuraava kuvakaappaus havainnollistaa tuloksen:

    Monimutkaisempia skenaarioita, kuten keskimmäisen nimen poimimista tai nimien jakamista päätteillä, käsitellään kohdassa Solujen jakaminen Excelissä kaavojen avulla.

    Esimerkki 2. Tietyn merkin N:nnen esiintymän etsiminen merkkijonosta.

    Oletetaan, että sinulla on sarakkeessa A joitakin merkkijonoja, vaikkapa SKU-luettelo, ja haluat löytää sarakkeen SKU sijainnin. 2. Seuraava kaava toimii mainiosti:

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

    Kaksi ensimmäistä argumenttia on helppo tulkita: etsi viiva ("-") solusta A2. Kolmannessa argumentissa (start_num) upotat toisen FIND-funktion, joka käskee Exceliä aloittamaan haun heti viivan ensimmäisen esiintymän jälkeen tulevasta merkistä (FIND("-",A2)+1).

    Palauta sijainti 3. tapahtuma , upotat yllä olevan kaavan toisen FIND-funktion start_num-argumenttiin ja lisäät 2 palautettuun arvoon:

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

    Toinen ja luultavasti yksinkertaisempi tapa löytää tietyn merkin N:s esiintymä on käyttää Excelin FIND-toimintoa yhdessä CHAR- ja SUBSTITUTE-toimintojen kanssa:

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

    Jossa "-" on kyseinen merkki ja "3" on N:s esiintymä, joka halutaan löytää.

    Yllä olevassa kaavassa SUBSTITUTE-funktio korvaa viivan ("-") kolmannen esiintymän CHAR(1):llä, joka on ASCII-järjestelmässä painamaton "otsikon alku"-merkki. CHAR(1):n sijasta voit käyttää mitä tahansa muuta painamatonta merkkiä välillä 1-31. Tämän jälkeen FIND-funktio palauttaa kyseisen merkin sijainnin merkkijonossa. Yleinen kaava on siis seuraava:

    FIND(CHAR(1),SUBSTITUTE( solu , merkki ,CHAR(1), N:s esiintymä ))

    Ensisilmäyksellä saattaa vaikuttaa siltä, että edellä esitetyillä kaavoilla ei ole juurikaan käytännön arvoa, mutta seuraava esimerkki osoittaa, kuinka hyödyllisiä ne ovat todellisten tehtävien ratkaisemisessa.

    Huomautus: Muista, että Excelin FIND-toiminto erottaa suur- ja pienaakkoset toisistaan. Esimerkissämme tällä ei ole merkitystä, mutta jos työskentelet kirjainten kanssa ja haluat etsiä case-insensitive vastaa, käytä SEARCH-toimintoa FIND-toiminnon sijasta.

    Esimerkki 3. Poimi N merkkiä tietyn merkin jälkeen.

    Jos haluat etsiä tietyn pituisen osajonon mistä tahansa merkkijonosta, käytä Excel FIND- tai Excel SEARCH -ohjelmaa yhdessä MID-funktion kanssa. Seuraava esimerkki osoittaa, miten voit käyttää tällaisia kaavoja käytännössä.

    Oletetaan, että haluat löytää SKU-luettelostamme kolme ensimmäistä merkkiä ensimmäisen viivan jälkeen ja vetää ne toiseen sarakkeeseen.

    Jos ensimmäistä katkoviivaa edeltävässä merkkiryhmässä on aina sama määrä merkkejä (esim. 2 merkkiä), tämä olisi triviaali tehtävä. MID-funktiota voisi käyttää palauttamaan merkkijonosta 3 merkkiä alkaen paikasta 4 (ohittaen 2 ensimmäistä merkkiä ja katkoviivan):

    =MID(A2, 4, 3)

    Englanniksi käännettynä kaava sanoo: "Etsi solu A2, aloita poiminta merkistä 4 ja palauta 3 merkkiä".

    Todellisissa työarkkeissa poimittava merkkijono voi kuitenkin alkaa mistä tahansa tekstijonon sisältä. Esimerkissämme et ehkä tiedä, kuinka monta merkkiä edeltää ensimmäistä viiva-merkkiä. Tämän haasteen ratkaisemiseksi voit käyttää FIND-toimintoa sen merkkijonon alkupisteen määrittämiseen, jonka haluat hakea.

    FIND-kaava 1. viivan sijainnin palauttamiseksi on seuraava:

    =FIND("-",A2)

    Koska haluat aloittaa viivan jälkeisestä merkistä, lisää 1 palautettuun arvoon ja upota yllä oleva funktio MID-funktion toiseen argumenttiin (start_num):

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

    Tässä tilanteessa Excelin SEARCH-toiminto toimii yhtä hyvin:

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

    Se on hieno, mutta entä jos ensimmäisen viivan jälkeinen merkkiryhmä sisältää eri määrän merkkejä? Hmm... tämä voi olla ongelma:

    Kuten yllä olevasta kuvakaappauksesta näet, kaava toimii täydellisesti riveillä 1 ja 2. Riveillä 4 ja 5 toinen ryhmä sisältää neljä merkkiä, mutta vain kolme ensimmäistä merkkiä palautetaan. Riveillä 6 ja 7 toisessa ryhmässä on vain kaksi merkkiä, joten Excel-hakukaavamme palauttaa niiden jälkeen viivan.

    Jos haluaisit palata kaikki 1. ja 2. esiintymän välissä olevat merkit. tietystä merkistä (tässä esimerkissä viiva), miten etenisit? Tässä on vastaus:

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

    Tämän MID-kaavan paremman ymmärtämisen vuoksi tarkastellaan sen argumentteja yksi kerrallaan:

    • 1. argumentti (teksti). Se on merkkijono, joka sisältää haluamasi merkit, tässä esimerkissä solu A2.
    • 2. argumentti (start_position). Määrittää sen ensimmäisen merkin sijainnin, jonka haluat poimia. FIND-funktiolla etsit merkkijonon ensimmäisen viivan ja lisäät arvoon 1, koska haluat aloittaa viivan jälkeisestä merkistä: FIND("-",A2)+1.
    • 3. argumentti (num_chars). Määrittää palautettavien merkkien määrän. Kaavassamme tämä on hankalin osa. Käytät kahta FIND (tai SEARCH) -funktiota, joista toinen määrittää ensimmäisen viivan sijainnin: FIND("-",A2). Ja toinen palauttaa toisen viivan sijainnin: FIND("-", A2, FIND("-",A2)+1). Sitten vähennät edellisen jälkimmäisestä ja sitten vähennät 1:n, koska et halua, ettäsisällyttääksesi kumman tahansa katkoviivan. Tuloksena saat 1. ja 2. katkoviivan väliin jäävien merkkien lukumäärän, joka on juuri se, mitä etsimme. Syötät siis tämän arvon MID-funktion num_chars-argumenttiin.

    Samalla tavalla voit palauttaa 3 merkkiä 2. viivan jälkeen:

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

    Tai poimi kaikki merkit 2. ja 3. viivan väliltä:

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

    Esimerkki 4. Etsi tekstiä sulkujen välistä

    Oletetaan, että sarakkeessa A on jokin pitkä tekstijono, ja haluat etsiä ja poimia vain (sulkeissa) olevan tekstin.

    Tätä varten tarvitset MID-funktion palauttamaan merkkijonon halutun merkkimäärän ja joko Excelin FIND- tai SEARCH-funktion määrittämään, mistä aloitetaan ja kuinka monta merkkiä poimitaan.

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

    Tämän kaavan logiikka on samankaltainen kuin edellisessä esimerkissä käsiteltyjen. Ja jälleen kerran monimutkaisin osa on viimeinen argumentti, joka kertoo kaavalle, kuinka monta merkkiä palautetaan. Tuo melko pitkä lauseke num_chars-argumentissa tekee seuraavaa:

    • Ensin etsitään sulkevan sulkeuman sijainti: SEARCH(")",A2)
    • Sen jälkeen etsit avaavan sulkeuman paikan: SEARCH("(",A2)
    • Sitten lasketaan sulkevan ja avaavan sulkeen sijainnin erotus ja vähennetään tästä luvusta 1, koska et halua kumpaakaan sulkea tulokseen: SEARCH(")",A2)-SEARCH("("(",A2))-1

    Mikään ei tietenkään estä sinua käyttämästä Excelin FIND-toimintoa SEARCH-toiminnon sijasta, koska suur- ja pienaakkosherkkyydellä ei ole merkitystä tässä esimerkissä.

    Toivottavasti tämä opetusohjelma on valottanut hieman SEARCH- ja FIND-funktioiden käyttöä Excelissä. Seuraavassa opetusohjelmassa tarkastelemme lähemmin REPLACE-funktiota, joten pysykää kuulolla. Kiitos lukemisesta!

    Lataa harjoituskirja

    Esimerkkejä FIND- ja SEARCH-kaavoista

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.