Používanie funkcií REPLACE a SUBSTITUTE aplikácie Excel - príklady vzorcov

  • Zdieľajte To
Michael Brown

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)

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.