Sisällysluettelo
Ohjeessa selitetään Excelin REPLACE- ja SUBSTITUTE-funktiot esimerkkien avulla. Näet, miten REPLACE-funktiota käytetään tekstijonojen, numeroiden ja päivämäärien kanssa ja miten useita REPLACE- tai SUBSTITUTE-funktioita voidaan sijoittaa yhteen kaavaan.
Viime viikolla keskustelimme erilaisista tavoista käyttää FIND- ja SEARCH-funktioita Excel-taulukoissa. Tänään tarkastelemme syvällisemmin kahta muuta funktiota, joiden avulla voit korvata solussa olevan tekstin sen sijainnin perusteella tai korvata yhden merkkijonon toisella tekstillä sisällön perusteella. Kuten olet ehkä arvannut, puhun Excelin REPLACE- ja SUBSTITUTE-funktioista.
Excelin REPLACE-toiminto
Excelin REPLACE-toiminnon avulla voit vaihtaa yhden tai useamman merkin tekstijonossa toiseen merkkiin tai merkkijonoon.
REPLACE(vanha_teksti, alku_luku, num_chars, uusi_teksti)Kuten näet, Excelin REPLACE-funktiolla on neljä argumenttia, jotka kaikki ovat pakollisia.
- Vanha_teksti - alkuperäinen teksti (tai viittaus soluun, jossa on alkuperäinen teksti), jossa haluat korvata joitakin merkkejä.
- Start_num - sen ensimmäisen merkin sijainti old_textissä, jonka haluat korvata.
- Num_chars - korvattavien merkkien määrä.
- Uusi_teksti - korvaava teksti.
Jos haluat esimerkiksi muuttaa sanan " aurinko " - " poika ", voit käyttää seuraavaa kaavaa:
=REPLACE("sun", 2, 1, "o")
Ja jos laitat alkuperäisen sanan johonkin soluun, esimerkiksi A2:een, voit antaa vastaavan soluviitteen old_text-argumentissa:
=REPLACE(A2, 2, 1, "o")
Huomautus: Jos start_num- tai num_chars-argumentti on negatiivinen tai ei-numeerinen, Excelin Korvaa-kaava palauttaa #VALUE! -virheen.
Excelin REPLACE-toiminnon käyttäminen numeeristen arvojen kanssa
Excelin REPLACE-toiminto on suunniteltu toimimaan tekstijonojen kanssa. Voit toki käyttää sitä esimerkiksi tekstijonon sisältämien numeeristen merkkien korvaamiseen:
=REPLACE(A2, 7, 4, "2016")
Huomaa, että "2016" suljetaan kaksinkertaisiin lainausmerkkeihin, kuten tekstiarvojen kanssa yleensä tehdään.
Samalla tavalla voit korvata yhden tai useamman numeron numeron sisällä. Esimerkiksi:
=REPLACE(A4, 4, 4, "6")
Jälleen kerran korvaava arvo on suljettava kaksinkertaisiin lainausmerkkeihin ("6").
Huomautus: Excelin REPLACE-kaava palauttaa aina arvon teksti merkkijono Yllä olevassa kuvakaappauksessa huomaa palautetun tekstiarvon vasemmanpuoleinen rivitys kohdassa B2 ja vertaa sitä oikealle rivitettyyn alkuperäiseen numeroon kohdassa A2. Koska kyseessä on tekstiarvo, et voi käyttää sitä muissa laskutoimituksissa, ellet muunna sitä takaisin numeroksi esimerkiksi kertomalla se 1:llä tai käyttämällä mitä tahansa muuta menetelmää, joka on kuvattu kohdassa Tekstin muuntaminen numeroksi.
Excelin REPLACE-toiminnon käyttäminen päivämäärien kanssa
Kuten olet juuri nähnyt, REPLACE-funktio toimii hyvin numeroiden kanssa, paitsi että se palauttaa tekstijonon :) Kun muistat, että Excelin sisäisessä järjestelmässä päivämäärät tallennetaan numeroina, voit yrittää käyttää joitakin Replace-kaavoja päivämäärille. Tulokset olisivat melko noloja.
Sinulla on esimerkiksi päivämäärä A2:ssa, vaikkapa 1.10.14, ja haluat vaihtaa" Lokakuu " - " Marraskuu ". Kirjoitat siis kaavan REPLACE(A2, 4, 3, "Nov"), joka käskee Exceliä korvaamaan 3 merkkiä soluissa A2 alkaen 4. merkistä... ja saat seuraavan tuloksen:
Miksi? Koska "01-Oct-14" on vain visuaalinen esitys taustalla olevasta sarjanumerosta (41913), joka edustaa päivämäärää. Korvauskaavamme muuttaa siis edellä mainitun sarjanumeron kolme viimeistä numeroa muotoon "". Marraskuu " ja palauttaa merkkijonon "419Nov".
Jotta Excelin REPLACE-funktio toimisi oikein päivämäärien kanssa, voit muuntaa päivämäärät ensin tekstisarjoiksi käyttämällä TEXT-funktiota tai muuta tekniikkaa, joka on esitetty kohdassa Päivämäärän muuntaminen tekstiksi Excelissä. Vaihtoehtoisesti voit upottaa TEXT-funktion suoraan REPLACE-funktion old_text-argumenttiin:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Muistathan, että edellä olevan kaavan tulos on muotoa teksti merkkijono , ja siksi tämä ratkaisu toimii vain, jos et aio käyttää muutettuja päivämääriä myöhemmissä laskutoimituksissa. Jos tarvitset päivämääriä tekstijonojen sijasta, käytä DATEVALUE-funktiota muuttaaksesi Excelin REPLACE-funktion palauttamat arvot takaisin päivämääriksi:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Sisäkkäiset REPLACE-funktiot useiden korvausten tekemiseen solussa.
Usein saatat joutua tekemään useamman kuin yhden korvauksen samassa solussa. Voit tietysti tehdä yhden korvauksen, tulostaa välituloksen toiseen sarakkeeseen ja käyttää sitten REPLACE-funktiota uudelleen. Parempi ja ammattimaisempi tapa on kuitenkin käyttää funktiota sisäkkäiset REPLACE-funktiot joiden avulla voit suorittaa useita korvauksia yhdellä kaavalla. Tässä yhteydessä "sisäkkäisyys" tarkoittaa yhden funktion sijoittamista toisen sisään.
Seuraava esimerkki: Oletetaan, että sarakkeessa A on luettelo puhelinnumeroista, jotka on muotoiltu muotoon "123456789", ja haluat saada ne näyttämään enemmän puhelinnumeroilta lisäämällä väliviivoja. Toisin sanoen tavoitteenasi on muuttaa "123456789" muotoon "123-456-789".
Ensimmäisen väliviivan lisääminen on helppoa. Kirjoitat tavallisen Excelin Korvaa-kaavan, joka korvaa seuraavat tiedot nolla merkkiä yhdysmerkillä, eli lisää solun 4. kohtaan yhdysmerkin:
=REPLACE(A2,4,0,"-")
Edellä esitetyn korvaavan kaavan tulos on seuraava:
Okei, ja nyt meidän on lisättävä vielä yksi väliviiva kohtaan 8. Tätä varten asetat yllä olevan kaavan toiseen Excelin REPLACE-funktioon. Tarkemmin sanottuna upotat sen funktioon old_text argumentti, jotta toinen REPLACE-funktio käsittelee ensimmäisen REPLACE-funktion palauttamaa arvoa eikä solun A2 arvoa:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Tuloksena saat puhelinnumerot haluamassasi muodossa:
Vastaavalla tavalla voit käyttää sisäkkäisiä REPLACE-funktioita saadaksesi merkkijonot näyttämään päivämääriltä lisäämällä tarvittaessa vinoviivan (/):
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/")))
Lisäksi voit muuntaa tekstijonoja todellisiksi päivämääriksi kietomalla yllä olevan REPLACE-kaavan DATEVALUE-funktiolla:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/")))
Etkä tietenkään ole rajoitettu niiden funktioiden määrässä, jotka voit sijoittaa yhteen kaavaan (Excelin nykyaikaiset versiot 2010, 2013 ja 2016 sallivat enintään 8192 merkkiä ja enintään 64 sisäkkäistä funktiota yhdessä kaavassa).
Voit esimerkiksi käyttää kolmea sisäkkäistä REPLACE-funktiota saadaksesi numeron A2:ssa näkymään päivämäärän ja kellonajan tavoin:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Jokaisessa solussa eri kohdassa esiintyvän merkkijonon korvaaminen
Tähän mennessä kaikissa esimerkeissä olemme käsitelleet samankaltaisia arvoja ja tehneet korvaukset samaan paikkaan kussakin solussa. Todellisen elämän tehtävät ovat kuitenkin usein monimutkaisempia. Korvattavat merkit eivät välttämättä ole työarkissasi samassa paikassa kussakin solussa, ja siksi sinun on tehtävä löytää ensimmäisen merkin sijainnin Seuraava esimerkki osoittaa, mistä puhun.
Oletetaan, että sinulla on sarakkeessa A luettelo sähköpostiosoitteista. Yhden yrityksen nimi on muuttunut ABC:stä esimerkiksi BCA:ksi. Sinun on siis päivitettävä kaikkien asiakkaiden sähköpostiosoitteet vastaavasti.
Ongelmana on kuitenkin se, että asiakasnimet ovat eripituisia, ja siksi et voi määrittää tarkalleen, mistä yrityksen nimi alkaa. Toisin sanoen et tiedä, mikä arvo on annettava Excelin REPLACE-funktion start_num-argumentissa. Voit selvittää sen käyttämällä Excelin FIND-funktiota määrittääksesi merkkijonon "@abc" ensimmäisen merkin sijainnin:
=FIND("@abc",A2)
Toimita sitten edellä mainittu FIND-funktio REPLACE-kaavasi start_num-argumenttiin:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Vihje. Sisällytämme "@" -merkin Excelin Etsi ja korvaa -kaavaan, jotta vältämme vahingossa tapahtuvat korvaukset sähköpostiosoitteiden nimiosassa. On tietenkin hyvin pieni mahdollisuus, että tällaiset osumat tapahtuvat, mutta silti haluat ehkä olla varmuuden vuoksi varuillasi.
Kuten seuraavasta kuvakaappauksesta näkyy, kaava löytää ongelmitta vanhan tekstin ja korvaa sen uudella. Jos korvattavaa merkkijonoa ei kuitenkaan löydy, kaava palauttaa #VALUE! -virheen:
Ja haluamme, että kaava palauttaa alkuperäisen sähköpostiosoitteen virheen sijasta. Liitä siis FIND & REPLACE-kaavamme IFERROR-funktioon:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
Ja tämä parannettu kaava toimii täydellisesti, eikö totta?
Toinen REPLACE-toiminnon käytännöllinen sovellus on solun ensimmäisen kirjaimen muuttaminen isolla alkukirjaimella. Kun käsittelet nimi-, tuote- ja muita luetteloita, voit käyttää edellä mainittua kaavaa muuttaaksesi ensimmäisen kirjaimen isolla alkukirjaimeksi.
Vihje. Jos haluat tehdä korvaukset alkuperäisiin tietoihin, helpompi tapa on käyttää Excelin FIND and REPLACE -valintaikkunaa.
Excel SUBSTITUTE-toiminto
Excelin SUBSTITUTE-toiminto korvaa yhden tai useamman tietyn merkin tai merkkijonon määritetyllä merkillä tai merkkeillä.
Excelin SUBSTITUTE-toiminnon syntaksi on seuraava:
SUBSTITUTE(text, vanha_teksti, uusi_teksti, [instance_num])Kolme ensimmäistä argumenttia ovat pakollisia ja viimeinen on valinnainen.
- Teksti - Alkuperäinen teksti, johon haluat korvata merkkejä. Voidaan syöttää testijonona, soluviitteenä tai toisen kaavan tuloksena.
- Vanha_teksti - merkki(t), jonka haluat korvata.
- Uusi_teksti - uusi(t) merkki(t), jolla (joilla) vanha_teksti korvataan.
- Instance_num - vanhan_tekstin esiintymä, jonka haluat korvata. Jos se jätetään pois, kaikki vanhan tekstin esiintymät vaihdetaan uuteen tekstiin.
Esimerkiksi kaikki alla olevat kaavat korvaavat solussa A2 olevan luvun "1" luvulla "2", mutta palauttavat eri tulokset riippuen siitä, minkä luvun annat viimeisenä argumenttina:
=SUBSTITUTE(A2, "1", "2", 1)
- Korvaa ensimmäisen kerran esiintyvän arvon "1" arvolla "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Korvaa merkin "1" toisen esiintymän merkillä "2".
=SUBSTITUTE(A2, "1", "2")
- Korvaa kaikki "1" -merkin esiintymät merkillä "2".
Käytännössä SUBSTITUTE-toimintoa käytetään myös ei-toivottujen merkkien poistamiseen soluista. Todellisia esimerkkejä löydät osoitteesta:
- Kuinka poistaa merkkejä tai sanoja merkkijonosta
- Miten poistaa ei-toivottuja merkkejä soluista
Huomautus: Excelin SUBSTITUTE-toiminto on seuraava. case-sensitive Esimerkiksi seuraava kaava korvaa kaikki isot kirjaimet "X" solussa A2 kirjaimella "Y", mutta se ei korvaa yhtään pientä kirjainta "x".
Useiden arvojen korvaaminen yhdellä kaavalla (sisäkkäiset SUBSTITUTE)
Kuten Excelin REPLACE-funktion tapauksessa, voit sijoittaa useita SUBSTITUTE-funktioita yhden kaavan sisälle, jolloin voit tehdä useita korvauksia kerrallaan, eli korvata useita merkkejä tai merkkijonoja yhdellä kaavalla.
Oletetaan, että sinulla on merkkijono kuten " PR1, ML1, T1 " solussa A2, jossa "PR" tarkoittaa "Project" (projekti), "ML" tarkoittaa "Milestone" (välitavoite) ja "T" tarkoittaa "Task" (tehtävä). Haluat korvata nämä kolme koodia täydellisillä nimillä. Tämän saavuttamiseksi voit kirjoittaa kolme erilaista SUBSTITUTE-kaavaa:
=SUBSTITUTE(A2, "PR", "Hanke ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Tehtävä ")
Ja sitten pesäyttää ne toisiinsa:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekti "), "ML", "Välitavoite "), "T", "Tehtävä ")
Huomaa, että olemme lisänneet välilyönnin jokaisen new_text-argumentin loppuun luettavuuden parantamiseksi.
Jos haluat oppia muita tapoja korvata useita arvoja kerrallaan, katso Miten Excelissä tehdään massahaku ja -korvaus.
Excel REPLACE vs. Excel SUBSTITUTE (Korvaa ja korvaa)
Excelin REPLACE- ja SUBSTITUTE-toiminnot ovat hyvin samankaltaisia keskenään, sillä molemmat on suunniteltu vaihtamaan merkkijonoja. Näiden kahden toiminnon erot ovat seuraavat:
- SUBSTITUTE korvaa yhden tai useamman instanssit Jos siis tiedät korvattavan tekstin, käytä Excelin SUBSTITUTE-toimintoa.
- REPLACE muuttaa merkkejä määritetyssä asema Jos siis tiedät korvattavan merkin tai korvattavien merkkien sijainnin, käytä Excelin REPLACE-toimintoa.
- Excelin SUBSTITUTE-toiminto mahdollistaa valinnaisen parametrin (instance_num) lisäämisen, joka määrittää, mikä esiintyminen vanhan_tekstin teksti olisi muutettava uudeksi_tekstiksi.
Näin käytät SUBSTITUTE- ja REPLACE-funktioita Excelissä. Toivottavasti näistä esimerkeistä on hyötyä tehtävien ratkaisemisessa. Kiitos lukemisesta ja toivottavasti näemme blogissamme ensi viikolla!
Lataa harjoituskirja
Esimerkkejä REPLACE- ja SUBSTITUTE-kaavoista (.xlsx-tiedosto)