Obsah
Učebnica vysvetľuje funkcie REPLACE a SUBSTITUTE programu Excel s príkladmi použitia. Pozrite si, ako používať funkciu REPLACE s textovými reťazcami, číslami a dátumami a ako vložiť niekoľko funkcií REPLACE alebo SUBSTITUTE do jedného vzorca.
Minulý týždeň sme sa venovali rôznym spôsobom používania funkcií FIND a SEARCH v rámci pracovných hárkov programu Excel. Dnes sa podrobnejšie pozrieme na ďalšie dve funkcie, ktoré umožňujú nahradiť text v bunke na základe jeho umiestnenia alebo nahradiť jeden textový reťazec iným na základe obsahu. Ako ste už možno uhádli, hovorím o funkciách REPLACE a SUBSTITUTE programu Excel.
Funkcia REPLACE aplikácie Excel
Funkcia REPLACE v programe Excel umožňuje vymeniť jeden alebo niekoľko znakov v textovom reťazci za iný znak alebo sadu znakov.
REPLACE(starý_text, start_num, num_chars, nový_text)Ako vidíte, funkcia Excel REPLACE má 4 argumenty, z ktorých všetky sú povinné.
- Old_text - pôvodný text (alebo odkaz na bunku s pôvodným textom), v ktorom chcete nahradiť niektoré znaky.
- Start_num - pozíciu prvého znaku v rámci old_text, ktorý chcete nahradiť.
- Num_chars - počet znakov, ktoré chcete nahradiť.
- New_text - náhradný text.
Ak chcete napríklad zmeniť slovo " slnko " na " syn ", môžete použiť nasledujúci vzorec:
=REPLACE("sun", 2, 1, "o")
A ak pôvodné slovo vložíte do niektorej bunky, napríklad A2, môžete v argumente old_text uviesť odkaz na príslušnú bunku:
=REPLACE(A2, 2, 1, "o")
Poznámka: Ak je argument start_num alebo num_chars záporný alebo nečíselný, vzorec Excel Replace vráti chybu #VALUE!.
Používanie funkcie REPLACE programu Excel s číselnými hodnotami
Funkcia REPLACE v programe Excel je určená na prácu s textovými reťazcami. Samozrejme, môžete ju použiť napríklad na nahradenie číselných znakov, ktoré sú súčasťou textového reťazca:
=REPLACE(A2, 7, 4, "2016")
Všimnite si, že slovo "2016" uzatvárame do dvojitých úvodzoviek, ako sa to zvyčajne robí pri textových hodnotách.
Podobným spôsobom môžete nahradiť jednu alebo viac číslic v rámci čísla. Napríklad:
=REPLACE(A4, 4, 4, "6")
A opäť musíte náhradnú hodnotu uzavrieť do dvojitých úvodzoviek ("6").
Poznámka: Vzorec Excel REPLACE vždy vráti textový reťazec , nie číslo. Na obrázku vyššie si všimnite zarovnanie vrátenej textovej hodnoty v B2 doľava a porovnajte ju s pôvodným číslom zarovnaným doprava v A2. A keďže ide o textovú hodnotu, nebudete ju môcť použiť v ďalších výpočtoch, pokiaľ ju neprevediete späť na číslo, napríklad vynásobením 1 alebo použitím inej metódy opísanej v časti Ako previesť text na číslo.
Používanie funkcie REPLACE programu Excel s dátumami
Ako ste práve videli, funkcia REPLACE funguje dobre s číslami, lenže vracia textový reťazec :) Nezabudnite, že v internom systéme Excelu sú dátumy uložené ako čísla, môžete skúsiť použiť niektoré vzorce Replace na dátumy. Výsledky by boli dosť rozpačité.
Napríklad máte dátum v A2, napríklad 1.10.14, a chcete zmeniť " Október " na " Nov ". Takže napíšete vzorec REPLACE(A2, 4, 3, "Nov"), ktorý Excelu povie, aby nahradil 3 znaky v bunkách A2 počnúc 4. znakom... a dostanete nasledujúci výsledok:
Prečo? Pretože "01-Oct-14" je len vizuálne zobrazenie základného sériového čísla (41913), ktoré predstavuje dátum. Takže náš vzorec Replace zmení posledné 3 číslice vyššie uvedeného sériového čísla na " Nov " a vráti textový reťazec "419Nov".
Ak chcete, aby funkcia Excel REPLACE správne pracovala s dátumami, môžete najprv previesť dátumy na textové reťazce pomocou funkcie TEXT alebo inej techniky uvedenej v časti Ako previesť dátum na text v programe Excel. Prípadne môžete funkciu TEXT vložiť priamo do argumentu old_text funkcie REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-r"), 4, 3, "Nov")
Nezabudnite, že výsledkom vyššie uvedeného vzorca je textový reťazec , a preto toto riešenie funguje len vtedy, ak neplánujete použiť upravené dátumy v ďalších výpočtoch. Ak potrebujete dátumy namiesto textových reťazcov, použite funkciu DATEVALUE na premenu hodnôt vrátených funkciou Excel REPLACE späť na dátumy:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Vnorené funkcie REPLACE na viacnásobné nahradenie v bunke
Často sa môže stať, že budete potrebovať vykonať viac ako jednu výmenu v tej istej bunke. Samozrejme, mohli by ste vykonať jednu výmenu, vypísať medzivýsledok do ďalšieho stĺpca a potom znovu použiť funkciu REPLACE. Lepší a profesionálnejší spôsob je však použiť vnorené funkcie REPLACE ktoré umožňujú vykonať niekoľko nahradení pomocou jedného vzorca. V tomto kontexte "vnorenie" znamená umiestnenie jednej funkcie do druhej.
Predpokladajme, že máte zoznam telefónnych čísel v stĺpci A naformátovaný ako "123456789" a chcete, aby vyzerali viac ako telefónne čísla pridaním pomlčiek. Inými slovami, vaším cieľom je zmeniť "123456789" na "123-456-789".
Vloženie prvej pomlčky je jednoduché. Napíšete bežný vzorec programu Excel Nahradiť, ktorý nahradí nula znakov s pomlčkou, t. j. pridá pomlčku na 4. pozíciu v bunke:
=REPLACE(A2,4,0,"-")
Výsledok vyššie uvedeného vzorca Replace je nasledovný:
Dobre, a teraz potrebujeme vložiť ešte jednu pomlčku na 8. pozíciu. Aby ste to urobili, umiestnite vyššie uvedený vzorec do ďalšej funkcie Excel REPLACE. Presnejšie, vložíte ho do old_text argument druhej funkcie, takže druhá funkcia REPLACE bude spracovávať hodnotu vrátenú prvou funkciou REPLACE, a nie hodnotu v bunke A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Výsledkom je získanie telefónnych čísel v požadovanom formátovaní:
Podobným spôsobom môžete použiť vnorené funkcie REPLACE, aby textové reťazce vyzerali ako dátumy pridaním lomítka (/) tam, kde je to vhodné:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Okrem toho môžete textové reťazce konvertovať na skutočné dátumy tak, že vyššie uvedený vzorec REPLACE obklopíte funkciou DATEVALUE:
=DATOVÁ HODNOTA(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/")
Prirodzene, počet funkcií, ktoré môžete vložiť do jedného vzorca, nie je obmedzený (moderné verzie aplikácie Excel 2010, 2013 a 2016 umožňujú až 8192 znakov a až 64 vnorených funkcií vo vzorci).
Napríklad môžete použiť 3 vnorené funkcie REPLACE, aby sa číslo v A2 zobrazilo ako dátum a čas:
=REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Nahradenie reťazca, ktorý sa v každej bunke nachádza na inej pozícii
Doteraz sme sa vo všetkých príkladoch zaoberali hodnotami podobného charakteru a vykonávali sme náhrady na rovnakom mieste v každej bunke. Úlohy v reálnom živote sú však často zložitejšie. Vo vašich pracovných listoch sa znaky, ktoré sa majú nahradiť, nemusia nevyhnutne vyskytovať na rovnakom mieste v každej bunke, a preto budete musieť nájsť pozíciu prvého znaku Na nasledujúcom príklade si ukážeme, o čom hovorím.
Predpokladajme, že máte zoznam e-mailových adries v stĺpci A. A názov jednej spoločnosti sa zmenil z "ABC" na, povedzme, "BCA". Takže musíte zodpovedajúcim spôsobom aktualizovať e-mailové adresy všetkých klientov.
Problém však spočíva v tom, že názvy klientov majú rôznu dĺžku, a preto nemôžete presne určiť, kde začína názov spoločnosti. Inými slovami, neviete, akú hodnotu máte zadať do argumentu start_num funkcie Excel REPLACE. Ak to chcete zistiť, použite funkciu Excel FIND na určenie pozície prvého znaku v reťazci "@abc":
=FIND("@abc",A2)
A potom zadajte vyššie uvedenú funkciu FIND do argumentu start_num vzorca REPLACE:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Tip: Do vzorca programu Excel na vyhľadávanie a nahrádzanie zahŕňame znak "@", aby sme zabránili náhodným zámenám v časti mena e-mailových adries. Samozrejme, je veľmi malá pravdepodobnosť, že sa takéto zhody vyskytnú, a napriek tomu sa môžete chcieť poistiť.
Ako vidíte na nasledujúcom obrázku, vzorec nemá problém s nájdením a nahradením starého textu novým. Ak sa však textový reťazec, ktorý sa má nahradiť, nenájde, vzorec vráti chybu #VALUE!:
A chceme, aby vzorec vrátil pôvodnú e-mailovú adresu namiesto chyby. Takže uzavrime náš vzorec FIND & REPLACE do funkcie IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
A tento vylepšený vzorec funguje dokonale, však?
Ďalším praktickým využitím funkcie REPLACE je zmena prvého písmena v bunke na veľké. Vždy, keď pracujete so zoznamom názvov, produktov a podobne, môžete použiť vyššie uvedený vzorec na zmenu prvého písmena na veľké.
Tip. Ak chcete vykonať výmeny v pôvodných údajoch, jednoduchším spôsobom je použitie dialógového okna Excel FIND and REPLACE.
Funkcia SUBSTITUTE aplikácie Excel
Funkcia SUBSTITUTE v programe Excel nahradí jeden alebo viacero výskytov daného znaku alebo textového reťazca zadaným znakom (znakmi).
Syntax funkcie SUBSTITUTE programu Excel je nasledujúca:
SUBSTITUTE(text, old_text, new_text, [instance_num])Prvé tri argumenty sú povinné a posledný je nepovinný.
- Text - pôvodný text, v ktorom chcete nahradiť znaky. Môže byť zadaný ako testovací reťazec, odkaz na bunku alebo výsledok iného vzorca.
- Old_text - znak(y), ktoré chcete nahradiť.
- New_text - nový znak(-y), ktorým(-i) sa má nahradiť starý_text.
- Instance_num - výskyt old_text, ktorý chcete nahradiť. Ak sa vynechá, každý výskyt starého textu sa zmení na nový text.
Napríklad všetky nižšie uvedené vzorce nahradia číslo "1" číslom "2" v bunke A2, ale vrátia rôzne výsledky v závislosti od toho, ktoré číslo zadáte ako posledný argument:
=SUBSTITUTE(A2, "1", "2", 1)
- Nahradí prvý výskyt čísla "1" číslom "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Nahradí druhý výskyt čísla "1" číslom "2".
=SUBSTITUTE(A2, "1", "2")
- Nahradí všetky výskyty čísla "1" číslom "2".
V praxi sa funkcia SUBSTITUTE používa aj na odstraňovanie nežiaducich znakov z buniek. Príklady z praxe nájdete na stránke:
- Ako odstrániť znaky alebo slová z reťazca
- Ako odstrániť nežiaduce znaky z buniek
Poznámka: Funkcia SUBSTITUTE v programe Excel je rozlišovanie veľkých a malých písmen Napríklad nasledujúci vzorec nahradí všetky prípady veľkých písmen "X" písmenom "Y" v bunke A2, ale nenahradí žiadne prípady malých písmen "x".
Nahradenie viacerých hodnôt jedným vzorcom (vnorené SUBSTITUTE)
Podobne ako v prípade funkcie REPLACE programu Excel môžete do jedného vzorca vložiť niekoľko funkcií SUBSTITUTE a vykonať tak niekoľko zámen naraz, t. j. nahradiť niekoľko znakov alebo podreťazcov jedným vzorcom.
Predpokladajme, že máte textový reťazec ako " PR1, ML1, T1 " v bunke A2, kde "PR" znamená "Project" (projekt), "ML" znamená "Milestone" (míľnik) a "T" znamená "Task" (úloha). To, čo chcete, je nahradiť tieto tri kódy plnými názvami. Aby ste to dosiahli, môžete napísať 3 rôzne vzorce SUBSTITUTE:
=SUBSTITUTE(A2, "PR", "Projekt ")
=SUBSTITUTE(A2, "ML", "Míľnik ")
=SUBSTITUTE(A2, "T", "Úloha ")
A potom ich do seba zahniezdite:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")
Všimnite si, že sme na koniec každého argumentu new_text pridali medzeru pre lepšiu čitateľnosť.
Ďalšie spôsoby nahradenia viacerých hodnôt naraz nájdete v časti Ako hromadne nájsť a nahradiť v programe Excel.
Excel REPLACE vs. Excel SUBSTITUTE
Funkcie REPLACE a SUBSTITUTE v programe Excel sú si veľmi podobné v tom, že obe sú určené na výmenu textových reťazcov. Rozdiely medzi týmito dvoma funkciami sú nasledovné:
- SUBSTITUTE nahrádza jeden alebo viac inštancie daného znaku alebo textového reťazca. Ak teda poznáte text, ktorý sa má nahradiť, použite funkciu Excel SUBSTITUTE.
- REPLACE mení znaky v zadanom pozícia textového reťazca. Ak teda poznáte pozíciu znakov, ktoré sa majú nahradiť, použite funkciu Excel REPLACE.
- Funkcia SUBSTITUTE v programe Excel umožňuje pridať nepovinný parameter (číslo_inštancie), ktorý určuje, ktoré výskyt starého_textu by sa mal zmeniť na nový_text.
Takto sa používajú funkcie SUBSTITUTE a REPLACE v programe Excel. Dúfam, že tieto príklady budú užitočné pri riešení vašich úloh. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!
Stiahnite si cvičebnicu
Príklady vzorcov REPLACE a SUBSTITUTE (.xlsx súbor)