Kazalo
V učbeniku sta razloženi funkciji REPLACE in SUBSTITUTE v Excelu s primeri uporabe. Oglejte si, kako uporabiti funkcijo REPLACE z besedilnimi nizi, številkami in datumi ter kako v eni formuli vgraditi več funkcij REPLACE ali SUBSTITUTE.
Prejšnji teden smo obravnavali različne načine uporabe funkcij FIND in SEARCH v delovnih listih Excel-a. Danes si bomo podrobneje ogledali dve drugi funkciji za zamenjavo besedila v celici glede na njegovo lokacijo ali zamenjavo enega besedilnega niza z drugim glede na vsebino. Kot ste morda uganili, govorim o funkcijah Excel REPLACE in SUBSTITUTE.
Excelova funkcija REPLACE
Funkcija REPLACE v Excelu omogoča zamenjavo enega ali več znakov v besedilnem nizu z drugim znakom ali nizom znakov.
REPLACE(staro_besedilo, začetna_številka, število_znakov, novo_besedilo)Kot vidite, ima Excelova funkcija REPLACE 4 argumente, ki so vsi obvezni.
- Old_text - izvirno besedilo (ali sklic na celico z izvirnim besedilom), v katerem želite zamenjati nekaj znakov.
- Start_num - položaj prvega znaka v besedilu old_text, ki ga želite zamenjati.
- Num_chars - število znakov, ki jih želite zamenjati.
- New_text - nadomestno besedilo.
Če želite na primer spremeniti besedo " sonce " v " sin ", lahko uporabite naslednjo formulo:
=REPLACE("sonce", 2, 1, "o")
Če prvotno besedo vstavite v neko celico, na primer A2, lahko v argumentu old_text navedete referenco na ustrezno celico:
=REPLACE(A2, 2, 1, "o")
Opomba: Če je argument start_num ali num_chars negativen ali neštevilčen, formula Excel Replace vrne napako #VALUE!.
Uporaba funkcije Excel REPLACE s številčnimi vrednostmi
Funkcija REPLACE v Excelu je zasnovana za delo z besedilnimi nizi. Seveda jo lahko uporabite tudi za zamenjavo številčnih znakov, ki so na primer del besedilnega niza:
=PREMESTITEV(A2, 7, 4, "2016")
Opazite, da je beseda "2016" v dvojnih narekovajih, kot to običajno počnete z besedilnimi vrednostmi.
Na podoben način lahko zamenjate eno ali več številk v številu. Na primer:
=PREDSTAVI(A4, 4, 4, 4, "6")
Tudi v tem primeru morate nadomestno vrednost zapreti v dvojne narekovaje ("6").
Opomba: Excelova formula REPLACE vedno vrne besedilni niz Na zgornji sliki zaslona opazujte levo poravnavo vrnjene besedilne vrednosti v B2 in jo primerjajte z desno poravnano prvotno številko v A2. Ker gre za besedilno vrednost, je ne boste mogli uporabiti v drugih izračunih, razen če jo pretvorite nazaj v številko, na primer z množenjem z 1 ali z uporabo katere koli druge metode, opisane v Kako pretvoriti besedilo v številko.
Uporaba funkcije Excel REPLACE z datumi
Kot ste pravkar videli, funkcija REPLACE dobro deluje s številkami, le da vrne besedilni niz :) Če se spomnite, da so v notranjem sistemu Excel datumi shranjeni kot številke, lahko poskusite uporabiti nekatere formule REPLACE za datume. Rezultati bi bili precej neprijetni.
Na primer, v A2 imate datum, na primer 1. oktober 2014, in želite spremeniti " Oktober " v " Nov ". Tako napišete formulo REPLACE(A2, 4, 3, "Nov"), ki Excelu pove, da nadomesti 3 znake v celicah A2, začenši s četrtim znakom... in dobite naslednji rezultat:
Zakaj? Ker je "01-Oktober-14" le vizualni prikaz osnovne serijske številke (41913), ki predstavlja datum. Zato naša formula Zamenjaj spremeni zadnje tri števke v zgornji serijski številki v " Nov " in vrne besedilni niz "419Nov".
Če želite, da Excelova funkcija REPLACE pravilno deluje z datumi, lahko datume najprej pretvorite v besedilne nize z uporabo funkcije TEXT ali katere koli druge tehnike, opisane v poglavju Kako pretvoriti datum v besedilo v Excelu. Lahko pa funkcijo TEXT vgradite neposredno v argument old_text funkcije REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Ne pozabite, da je rezultat zgornje formule besedilni niz Zato je ta rešitev uporabna le, če spremenjenih datumov ne nameravate uporabiti v nadaljnjih izračunih. Če namesto besedilnih nizov potrebujete datume, uporabite funkcijo DATEVALUE, da vrednosti, ki jih vrne Excelova funkcija REPLACE, spremenite nazaj v datume:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Vgnezdene funkcije REPLACE za več zamenjav v celici
Pogosto se zgodi, da boste morali v isti celici opraviti več kot eno zamenjavo. Seveda lahko opravite eno zamenjavo, vmesni rezultat izpišete v dodatni stolpec in nato znova uporabite funkcijo REPLACE. Vendar je boljši in bolj strokoven način uporaba vgnezdene funkcije REPLACE ki omogočajo izvedbo več nadomestitev z eno samo formulo. V tem kontekstu "gnezdenje" pomeni postavitev ene funkcije v drugo.
Predpostavimo, da imate v stolpcu A seznam telefonskih številk, oblikovan kot "123456789", in jih želite z dodajanjem pomišljajev narediti bolj podobne telefonskim številkam. Z drugimi besedami, vaš cilj je spremeniti "123456789" v "123-456-789".
Vstavljanje prvega pomišljaja je preprosto. Napišete običajno Excelovo formulo Zamenjaj, ki nadomesti nič znakov s pomišljajem, tj. doda pomišljaj na 4. mesto v celici:
=PREDSTAVI(A2,4,0,"-")
Rezultat zgornje formule za zamenjavo je naslednji:
Dobro, zdaj pa moramo vstaviti še en pomišljaj na 8. mesto. To storite tako, da zgornjo formulo vstavite v drugo Excelovo funkcijo REPLACE. Natančneje, vstavite jo v funkcijo old_text druge funkcije, tako da bo druga funkcija REPLACE obdelala vrednost, ki jo je vrnila prva funkcija REPLACE, in ne vrednosti v celici A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Tako dobite telefonske številke v želeni obliki:
Na podoben način lahko z vgnezdenimi funkcijami REPLACE besedilne nize spremenite v datume, tako da po potrebi dodate poševnico naprej (/):
=(ZAMENJAVA(ZAMENJAVA(A2,3,0,"/"),6,0,"/"))
Poleg tega lahko besedilne nize pretvorite v prave datume tako, da zgornjo formulo REPLACE ovijete s funkcijo DATEVALUE:
=DATOTEČNA VREDNOST(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Seveda niste omejeni pri številu funkcij, ki jih lahko vgnezdite v eno formulo (sodobne različice programov Excel 2010, 2013 in 2016 omogočajo do 8192 znakov in do 64 vgnezdenih funkcij v formuli).
Na primer, uporabite lahko 3 vgnezdene funkcije REPLACE, da se številka v A2 prikaže kot datum in čas:
=PREDSTAVI(ZAMENJAVA(ZAMENJAVA(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Zamenjava niza, ki je v vsaki celici na drugem mestu
Do zdaj smo v vseh primerih obravnavali podobne vrednosti in jih zamenjali na istem mestu v vsaki celici. Vendar so naloge v resničnem življenju pogosto bolj zapletene. V vaših delovnih listih znaki, ki jih je treba zamenjati, niso nujno na istem mestu v vsaki celici, zato boste morali poiščite položaj prvega znaka ki jih je treba zamenjati. Naslednji primer prikazuje, o čem govorim.
Recimo, da imate seznam e-poštnih naslovov v stolpcu A. Ime enega podjetja se je spremenilo iz "ABC" v, recimo, "BCA". Zato morate ustrezno posodobiti e-poštne naslove vseh strank.
Težava pa je v tem, da so imena strank različno dolga, zato ne morete natančno določiti, kje se začne ime podjetja. Z drugimi besedami, ne veste, katero vrednost morate navesti v argumentu start_num funkcije Excel REPLACE. Če želite to ugotoviti, uporabite funkcijo Excel FIND in določite položaj prvega znaka v nizu "@abc":
=FIND("@abc",A2)
Nato v argument start_num formule REPLACE vnesite zgornjo funkcijo FIND:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Nasvet: V formulo Excel Find and Replace (Poišči in zamenjaj) vključimo znak "@", da se izognemo naključnim zamenjavam v imenskem delu e-poštnih naslovov. Seveda obstaja zelo majhna možnost, da pride do takšnih ujemanj, a vseeno se želite zavarovati.
Kot vidite na naslednji sliki zaslona, formula brez težav najde in nadomesti staro besedilo z novim. Če pa besedilnega niza, ki ga je treba zamenjati, ne najde, formula vrne napako #VALUE!:
Želimo, da formula namesto napake vrne prvotni e-poštni naslov. Zato našo formulo FIND & REPLACE vključimo v funkcijo IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
In ta izboljšana formula deluje odlično, kajne?
Še ena praktična uporaba funkcije REPLACE je, da prvo črko v celici napišete z veliko začetnico. Kadar imate opravka s seznamom imen, izdelkov in podobno, lahko z zgoraj navedeno formulo spremenite prvo črko v UPPERCASE.
Nasvet. Če želite zamenjave opraviti v izvirnih podatkih, bi bilo lažje uporabiti pogovorno okno Excel FIND and REPLACE.
Excelova funkcija SUBSTITUTE
Funkcija SUBSTITUTE v Excelu nadomesti enega ali več primerov danega znaka ali besedilnega niza z določenim(-i) znakom(-i).
Sintaksa Excelove funkcije SUBSTITUTE je naslednja:
SUBSTITUTE(besedilo, staro_besedilo, novo_besedilo, [številka primera])Prvi trije argumenti so obvezni, zadnji pa je neobvezen.
- Besedilo - izvirno besedilo, v katerem želite zamenjati znake. Navedete ga lahko kot preskusni niz, sklic na celico ali rezultat druge formule.
- Old_text - znak(e), ki jih želite zamenjati.
- New_text - novi znak(-i), s katerim(-i) se nadomesti staro_besedilo.
- Instance_num - pojavitev starega_besedila, ki ga želite zamenjati. Če ga izpustite, se vsaka pojavitev starega besedila spremeni v novo besedilo.
Na primer, vse spodnje formule v celici A2 zamenjajo "1" z "2", vendar vrnejo različne rezultate, odvisno od tega, katero številko navedete v zadnjem argumentu:
=SUBSTITUTE(A2, "1", "2", 1)
- Prvo pojavitev "1" nadomesti z "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Drugo pojavitev "1" nadomesti z "2".
=SUBSTITUTE(A2, "1", "2")
- Vse pojavitve "1" nadomesti z "2".
V praksi se funkcija SUBSTITUTE uporablja tudi za odstranjevanje neželenih znakov iz celic. Za primere iz resničnega življenja glejte:
- Kako odstraniti znake ali besede iz niza
- Kako izbrisati neželene znake iz celic
Opomba: Funkcija SUBSTITUTE v Excelu je , ki upošteva velike in male črke. Naslednja formula na primer zamenja vse primere velike črke "X" z "Y" v celici A2, vendar ne zamenja nobenega primera male črke "x".
Nadomeščanje več vrednosti z eno samo formulo (vgnezdeno SUBSTITUTE)
Podobno kot pri Excelovi funkciji REPLACE lahko v eni formuli ugnezdite več funkcij SUBSTITUTE in tako izvedete več zamenjav naenkrat, tj. z eno samo formulo zamenjate več znakov ali podrejencev.
Predpostavimo, da imate besedilni niz, kot je " PR1, ML1, T1 " v celici A2, kjer "PR" pomeni "Projekt", "ML" pomeni "Mejnik" in "T" pomeni "Naloga". Želite zamenjati tri kode s polnimi imeni. To lahko dosežete tako, da napišete 3 različne formule SUBSTITUTE:
=SUBSTITUTE(A2, "PR", "Projekt ")
=SUBSTITUTE(A2, "ML", "mejnik ")
=SUBSTITUTE(A2, "T", "Naloga ")
In jih nato vgradite v gnezda drug drugega:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Mejnik "), "T", "Naloga ")
Opazite, da smo na koncu vsakega argumenta new_text zaradi boljše berljivosti dodali presledek.
Če želite izvedeti druge načine za zamenjavo več vrednosti hkrati, glejte Kako množično poiskati in zamenjati v Excelu.
Excel REPLACE proti Excel SUBSTITUTE
Excelovi funkciji REPLACE in SUBSTITUTE sta si zelo podobni, saj sta obe namenjeni zamenjavi besedilnih nizov. Razlike med obema funkcijama so naslednje:
- SUBSTITUTE nadomesti enega ali več primeri danega znaka ali besedilnega niza. Če torej poznate besedilo, ki ga želite nadomestiti, uporabite Excelovo funkcijo SUBSTITUTE.
- REPLACE spremeni znake v določenem položaj Če torej poznate položaj znakov, ki jih želite zamenjati, uporabite Excelovo funkcijo REPLACE.
- Funkcija SUBSTITUTE v Excelu omogoča dodajanje neobveznega parametra (številka_primera), ki določa, kateri pojavnost starega_besedila je treba spremeniti v novo_besedilo.
Tako uporabljate funkciji SUBSTITUTE in REPLACE v programu Excel. Upam, da vam bodo ti primeri koristili pri reševanju vaših nalog. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!
Prenesite delovni zvezek za prakso
Primeri formul REPLACE in SUBSTITUTE (.xlsx datoteka)