Exceli funktsioonide REPLACE ja SUBSTITUTE kasutamine - valemite näited

  • Jaga Seda
Michael Brown

Õpik selgitab Exceli funktsioone REPLACE ja SUBSTITUTE koos kasutusnäidetega. Näete, kuidas kasutada funktsiooni REPLACE tekstisõnade, numbrite ja kuupäevadega ning kuidas pesitseda mitu funktsiooni REPLACE või SUBSTITUTE ühe valemi sisse.

Eelmisel nädalal arutasime erinevaid võimalusi, kuidas kasutada oma Exceli töölehtedel funktsioone FIND ja SEARCH. Täna vaatleme põhjalikumalt veel kahte funktsiooni, mille abil saab lahtris olevat teksti asendada selle asukoha alusel või asendada üks tekstijada teise tekstijaga sisu alusel. Nagu te ehk juba arvasite, räägin ma Exceli funktsioonidest REPLACE ja SUBSTITUTE.

    Exceli funktsioon REPLACE

    Exceli funktsioon REPLACE võimaldab vahetada ühe või mitu märki tekstisõnas teise tähemärgi või tähemärkide kogumiga.

    REPLACE(old_text, start_num, num_chars, new_text)

    Nagu näete, on Exceli funktsioonil REPLACE 4 argumenti, mis kõik on vajalikud.

    • Vana_tekst - originaaltekst (või viide lahtrisse, kus on originaaltekst), milles soovite asendada mõned tähemärgid.
    • Start_num - vana_teksti esimese tähemärgi positsioon, mida soovite asendada.
    • Num_chars - asendatavate tähemärkide arv.
    • Uus_tekst - asendustekst.

    Näiteks, et muuta sõna " päike " kuni " poeg ", võite kasutada järgmist valemit:

    =REPLACE("sun", 2, 1, "o")

    Ja kui paned algse sõna mõnda lahtrisse, näiteks A2, saad anda vastava lahtri viite argumendis old_text:

    =REPLACE(A2, 2, 1, "o")

    Märkus. Kui argument start_num või num_chars on negatiivne või mittenumbriline, tagastab Exceli asendusvalem #VALUE! vea.

    Exceli funktsiooni REPLACE kasutamine numbriliste väärtustega

    Exceli funktsioon REPLACE on mõeldud töötamiseks tekstisõnadega. Loomulikult saate seda kasutada näiteks tekstisõnas olevate numbrimärkide asendamiseks:

    =REPLACE(A2, 7, 4, "2016")

    Pange tähele, et me paneme "2016" topeltlauseisse, nagu te tavaliselt teete tekstiväärtuste puhul.

    Samamoodi saate asendada ühe või mitu numbri sees olevat numbrit. Näiteks:

    =REPLACE(A4, 4, 4, "6")

    Ja jälle tuleb asendusväärtus sulgeda kahekordsete jutumärkide sisse ("6").

    Märkus. Exceli valem REPLACE annab alati tagasi tekstistring , mitte number. Ülaltoodud ekraanipildil märkige tagastatud tekstiväärtuse vasakpoolset joondust B2 ja võrrelge seda paremale joondatud algse numbriga A2. Ja kuna tegemist on tekstiväärtusega, ei saa te seda kasutada teistes arvutustes, kui te ei muuda seda tagasi numbriks, näiteks korrutades seda 1ga või kasutades mõnda muud meetodit, mida on kirjeldatud peatükis Kuidas teisendada teksti numbriks.

    Exceli funktsiooni REPLACE kasutamine kuupäevadega

    Nagu sa just nägid, toimib funktsioon REPLACE numbritega hästi, ainult et see tagastab tekstistringi :) Tuletades meelde, et Exceli sisemises süsteemis salvestatakse kuupäevad numbritena, võid proovida kasutada kuupäevade puhul mõnda Replace valemit. Tulemused oleksid üsna piinlikud.

    Näiteks on teil A2-s kuupäev, näiteks 1-Oct-14, ja te soovite muuta " Oktoober " kuni " Nov ". Seega kirjutate valemi REPLACE(A2, 4, 3, "Nov"), mis ütleb Excelile, et asendada 3 märki lahtris A2 alates 4. tähest... ja saate järgmise tulemuse:

    Miks? Sest "01-Oct-14" on ainult visuaalne kujutis aluseks olevast seerianumbrist (41913), mis tähistab kuupäeva. Seega muudab meie asendusvalem ülaltoodud seerianumbri 3 viimast numbrit " Nov " ja tagastab teksti "419Nov".

    Selleks, et Exceli funktsioon REPLACE töötaks korrektselt kuupäevadega, saate kuupäevad kõigepealt konverteerida tekstisalmideks, kasutades selleks funktsiooni TEXT või mõnda muud tehnikat, mida on näidatud peatükis Kuidas konverteerida kuupäeva tekstiks Excelis. Teise võimalusena saate funktsiooni TEXT otse funktsiooni REPLACE argumendi old_text sisse põimida:

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Pidage meeles, et ülaltoodud valemi tulemus on tekstistring ja seetõttu toimib see lahendus ainult siis, kui te ei kavatse muudetud kuupäevi edasistes arvutustes kasutada. Kui teil on vaja kuupäevi, mitte tekstisõnu, siis kasutage funktsiooni DATEVALUE, et muuta Exceli funktsiooni REPLACE abil tagastatud väärtused tagasi kuupäevadeks:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))

    Sisestatud REPLACE funktsioonid mitme asenduse tegemiseks lahtris

    Üsna sageli võib olla vaja teha rohkem kui üks asendus samas lahtris. Loomulikult võiksite teha ühe asenduse, väljastada vahetulemuse täiendavasse veergu ja seejärel kasutada uuesti funktsiooni REPLACE. Parem ja professionaalsem viis on siiski kasutada funktsiooni sisseehitatud REPLACE-funktsioonid mis võimaldavad teil ühe valemiga teostada mitu asendust. Selles kontekstis tähendab "nesting" ühe funktsiooni paigutamist teise funktsiooni sisse.

    Vaadake järgmist näidet. Oletame, et teil on veerus A nimekiri telefoninumbritest, mis on vormindatud kujul "123456789", ja te soovite muuta need rohkem telefoninumbriteks, lisades sidekriipsu. Teisisõnu, teie eesmärk on muuta "123456789" kujul "123-456-789".

    Esimese sidekriipsu sisestamine on lihtne. Kirjutate tavalise Exceli asendusvalemi, mis asendab null tähemärki sidekriipsuga, st lisab sidekriipsu lahtri 4. positsiooni:

    =REPLACE(A2,4,0,"-")

    Ülaltoodud asendusvalemi tulemus on järgmine:

    Okei, ja nüüd on meil vaja lisada veel üks sidekriips 8. positsioonile. Selleks paigutate ülaltoodud valemi teise Exceli funktsiooni REPLACE sisse. Täpsemalt põimite selle sisse funktsiooni old_text teise funktsiooni argumenti, nii et teine funktsioon REPLACE töötleb esimese REPLACE'i poolt tagastatud väärtust, mitte lahtris A2 olevat väärtust:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    Tulemusena saate telefoninumbrid soovitud vormingus:

    Samamoodi saate kasutada sisseehitatud REPLACE-funktsioone, et muuta tekstisõnu kuupäevadeks, lisades vajaduse korral kaldkriipsu (/):

    =(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Lisaks saate teisendada tekstisõnu reaalseteks kuupäevadeks, kui pakendate ülaltoodud REPLACE valemi DATEVALUE funktsiooniga:

    =DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Ja loomulikult ei ole teil piiratud funktsioonide arv, mida saate ühe valemi sees pesitseda (Exceli moodsad versioonid 2010, 2013 ja 2016 lubavad kuni 8192 tähemärki ja kuni 64 pesitsetud funktsiooni ühes valemis).

    Näiteks saate kasutada 3 sisseehitatud REPLACE-funktsiooni, et number A2 ilmuks nagu kuupäev ja kellaaeg:

    =REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")

    Igas lahtris erinevas positsioonis esineva stringi asendamine

    Siiani oleme kõigis näidetes tegelenud sarnaste väärtustega ja teinud asendused igas lahtris samasse kohta. Kuid tegeliku elu ülesanded on sageli keerulisemad. Teie töölehtedel ei pruugi asendatavad märgid olla igas lahtris samas kohas ja seetõttu tuleb teil leida esimese tähemärgi asukoht mis tuleks asendada. Järgnev näide näitab, millest ma räägin.

    Oletame, et teil on e-posti aadresside nimekiri veerus A. Ja ühe ettevõtte nimi on muutunud "ABC" asemel näiteks "BCA". Seega peate kõigi klientide e-posti aadressid vastavalt ajakohastama.

    Probleem on aga selles, et kliendinimed on erineva pikkusega ja seetõttu ei saa te täpselt määrata, kust ettevõtte nimi algab. Teisisõnu, te ei tea, millist väärtust tuleb esitada Exceli funktsiooni REPLACE argumendis start_num. Selle väljaselgitamiseks kasutage Exceli funktsiooni FIND, et määrata esimese tähe positsioon stringis "@abc":

    =FIND("@abc",A2)

    Ja seejärel esitage ülaltoodud funktsioon FIND oma REPLACE-valemi argumenti start_num:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Vihje. Me lisame "@" meie Exceli Find and Replace valemisse, et vältida juhuslikke asendusi e-posti aadresside nimeosas. Muidugi on väga väike võimalus, et sellised kokkulangevused tekivad, ja siiski võite olla kindel.

    Nagu näete järgmisel ekraanipildil, ei ole valemil probleemi vana teksti leidmisega ja selle asendamisega uue tekstiga. Kui aga asendatavat tekstijada ei leita, annab valem tagasi vea #VALUE!:

    Ja me tahame, et valem tagastaks algse e-posti aadressi, mitte vea. Niisiis, lisame oma FIND & REPLACE valemiga IFERROR funktsiooni:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    Ja see täiustatud valem töötab suurepäraselt, eks ole?

    Teine REPLACE-funktsiooni praktiline rakendus on lahtri esimese tähe suurtähe muutmine. Kui te tegelete nimede, toodete jms loeteluga, võite kasutada ülaltoodud seotud valemit, et muuta esimene täht suurtäheks (UPPERCASE).

    Vihje. Kui soovite teha asendusi algandmetes, oleks lihtsam viis kasutada Exceli FIND ja REPLACE dialoogiakent.

    Exceli SUBSTITUTE funktsioon

    Exceli funktsioon SUBSTITUTE asendab ühe või mitu antud tähemärgi või tekstijada kindlaksmääratud tähemärgi(te)ga.

    Exceli SUBSTITUTE funktsiooni süntaks on järgmine:

    SUBSTITUTE(text, vana_tekst, uus_tekst, [instance_num])

    Esimesed kolm argumenti on kohustuslikud ja viimane on vabatahtlik.

    • Tekst - originaaltekst, mille tähemärke soovite asendada. Võib esitada testriba, lahtriviite või mõne teise valemi tulemuse kujul.
    • Vana_tekst - märk(id), mida soovite asendada.
    • Uus_tekst - uus(ad) märk(id), millega asendada vana_tekst.
    • Instance_num - vana_teksti esinemine, mille soovite asendada. Kui see jäetakse välja, muudetakse iga vana teksti esinemine uueks tekstiks.

    Näiteks kõik allpool esitatud valemid asendavad lahtris A2 "1" arvuga "2", kuid annavad erinevaid tulemusi sõltuvalt sellest, millist arvu te viimaseks argumendiks esitate:

    =SUBSTITUTE(A2, "1", "2", 1) - Asendab sõna "1" esimesel korral sõnaga "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Asendab sõna "1" teise esinemise sõnaga "2".

    =SUBSTITUTE(A2, "1", "2") - Asendab kõik sõnad "1" sõnadega "2".

    Praktikas kasutatakse funktsiooni SUBSTITUTE ka soovimatute tähemärkide eemaldamiseks lahtritest. Reaalsete näidete kohta vt:

    • Kuidas eemaldada tähemärke või sõnu stringist
    • Kuidas kustutada soovimatuid märke lahtritest

    Märkus. Funktsioon SUBSTITUTE Excelis on suur- ja väiketähelepanu Näiteks järgmine valem asendab lahtris A2 kõik suurtähtede "X" esinemised "Y"-ga, kuid see ei asenda ühtegi väiketähtede "x" esinemist.

    Mitme väärtuse asendamine ühe valemiga (nested SUBSTITUTE)

    Sarnaselt Exceli funktsiooniga REPLACE saate ühe valemi sees pesitseda mitu SUBSTITUTE-funktsiooni, et teha mitu asendust korraga, st asendada ühe valemiga mitu märki või alamtähte.

    Oletame, et teil on tekstistring nagu " PR1, ML1, T1 " lahtrisse A2, kus "PR" tähistab "Project", "ML" tähistab "Milestone" ja "T" tähendab "Task". Mida te soovite, on asendada need kolm koodi täisnimedega. Selle saavutamiseks saate kirjutada 3 erinevat SUBSTITUTE valemit:

    =SUBSTITUTE(A2, "PR", "Projekt ")

    =SUBSTITUTE(A2, "ML", "Milestone ")

    =SUBSTITUTE(A2, "T", "Ülesanne ")

    Ja siis pesitsege need üksteise sisse:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Milestone "), "T", "Task ")

    Pange tähele, et oleme lisanud iga new_text argumendi lõppu tühiku, et see oleks paremini loetav.

    Muude võimaluste tundmaõppimiseks mitme väärtuse korraga asendamiseks vt Kuidas teha massilist otsingut ja asendamist Excelis.

    Excel REPLACE vs. Excel SUBSTITUTE

    Exceli funktsioonid REPLACE ja SUBSTITUTE on üksteisega väga sarnased, sest mõlemad on mõeldud tekstisõnade vahetamiseks. Nende kahe funktsiooni erinevused on järgmised:

    • SUBSTITUTE asendab ühe või mitu juhtumid antud tähemärgi või tekstijada. Niisiis, kui te teate asendatavat teksti, kasutage Exceli funktsiooni SUBSTITUTE.
    • REPLACE muudab tähemärke määratud positsioon teksti stringi. Seega, kui te teate asendatava(te) tähemärgi(de) asukohta, kasutage Exceli funktsiooni REPLACE.
    • Funktsioon SUBSTITUTE Excelis võimaldab lisada valikulise parameetri (instance_num), mis määrab kindlaks, millised esinemine vana_teksti tuleks muuta uueks_tekstiks.

    Nii kasutate Excelis funktsioone SUBSTITUTE ja REPLACE. Loodetavasti osutuvad need näited teie ülesannete lahendamisel kasulikuks. Tänan teid lugemise eest ja loodan, et näeme järgmisel nädalal meie blogis!

    Lae alla praktiline töövihik

    REPLACE ja SUBSTITUTE valemite näited (.xlsx fail)

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.