Použití funkcí REPLACE a SUBSTITUTE aplikace Excel - příklady vzorců

  • Sdílet Toto
Michael Brown

Výukový program vysvětluje funkce REPLACE a SUBSTITUTE aplikace Excel s příklady použití. Podívejte se, jak používat funkci REPLACE s textovými řetězci, čísly a daty a jak vnořit několik funkcí REPLACE nebo SUBSTITUTE do jednoho vzorce.

Minulý týden jsme se zabývali různými způsoby použití funkcí FIND a SEARCH v rámci pracovních listů aplikace Excel. Dnes se podrobněji podíváme na další dvě funkce, které umožňují nahradit text v buňce na základě jeho umístění nebo nahradit jeden textový řetězec jiným na základě obsahu. Jak jste možná uhodli, mluvím o funkcích REPLACE a SUBSTITUTE aplikace Excel.

    Funkce REPLACE aplikace Excel

    Funkce REPLACE v aplikaci Excel umožňuje zaměnit jeden nebo několik znaků v textovém řetězci za jiný znak nebo sadu znaků.

    REPLACE(starý_text, start_číslo, počet_znaků, nový_text)

    Jak vidíte, funkce REPLACE aplikace Excel má 4 argumenty, z nichž všechny jsou povinné.

    • Old_text - původní text (nebo odkaz na buňku s původním textem), ve kterém chcete nahradit některé znaky.
    • Start_num - pozice prvního znaku v old_text, který chcete nahradit.
    • Num_chars - počet znaků, které chcete nahradit.
    • New_text - náhradní text.

    Chcete-li například změnit slovo " slunce " na " syn ", můžete použít následující vzorec:

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

    A pokud původní slovo vložíte do nějaké buňky, například A2, můžete v argumentu old_text zadat odkaz na příslušnou buňku:

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

    Poznámka: Pokud je argument start_num nebo num_chars záporný nebo nečíselný, vzorec Excel Replace vrátí chybu #VALUE!.

    Použití funkce REPLACE aplikace Excel s číselnými hodnotami

    Funkce REPLACE v aplikaci Excel je určena pro práci s textovými řetězci. Samozřejmě ji můžete použít například k nahrazení číselných znaků, které jsou součástí textového řetězce:

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

    Všimněte si, že slovo "2016" uzavíráme do dvojitých uvozovek, jak se to obvykle dělá u textových hodnot.

    Podobným způsobem můžete nahradit jednu nebo více číslic v rámci čísla. Například:

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

    A opět je nutné uzavřít náhradní hodnotu do dvojitých uvozovek ("6").

    Poznámka: Vzorec REPLACE aplikace Excel vždy vrací hodnotu textový řetězec , nikoliv číslo. Na výše uvedeném obrázku si všimněte zarovnání vrácené textové hodnoty v B2 doleva a porovnejte ji s původním číslem zarovnaným doprava v A2. A protože se jedná o textovou hodnotu, nebudete ji moci použít v dalších výpočtech, pokud ji nepřevedete zpět na číslo, například vynásobením 1 nebo jinou metodou popsanou v části Jak převést text na číslo.

    Použití funkce REPLACE aplikace Excel s daty

    Jak jste se právě přesvědčili, funkce REPLACE funguje dobře i s čísly, jen vrací textový řetězec :) Nezapomeňte, že v interním systému Excelu jsou data uložena jako čísla, můžete se pokusit použít některé vzorce Replace na data. Výsledky by byly dost rozpačité.

    Například máte v A2 datum, například 1. října 14, a chcete změnit " Říjen " na " Nov ". Napíšete tedy vzorec REPLACE(A2, 4, 3, "Nov"), který Excelu řekne, aby nahradil 3 znaky v buňkách A2 počínaje 4. znakem... a dostanete následující výsledek:

    Proč? Protože "01-Oct-14" je pouze vizuální reprezentace základního sériového čísla (41913), které představuje datum. Takže náš vzorec Replace změní poslední 3 číslice výše uvedeného sériového čísla na "". Nov " a vrátí textový řetězec "419Nov".

    Aby funkce REPLACE aplikace Excel správně pracovala s daty, můžete nejprve převést data na textové řetězce pomocí funkce TEXT nebo jiné techniky uvedené v článku Jak převést datum na text v aplikaci Excel. Případně můžete funkci TEXT vložit přímo do argumentu old_text funkce REPLACE:

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

    Nezapomeňte, že výsledkem výše uvedeného vzorce je. textový řetězec , a proto toto řešení funguje pouze v případě, že neplánujete použít upravená data v dalších výpočtech. Pokud potřebujete data namísto textových řetězců, použijte funkci DATEVALUE, která hodnoty vrácené funkcí Excel REPLACE změní zpět na data:

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

    Vnořené funkce REPLACE pro vícenásobné nahrazení v buňce

    Často se může stát, že budete potřebovat provést více než jedno nahrazení v téže buňce. Samozřejmě můžete provést jedno nahrazení, vypsat mezivýsledek do dalšího sloupce a pak znovu použít funkci REPLACE. Lepší a profesionálnější způsob je však použít funkci vnořené funkce REPLACE které umožňují provést několik nahrazení pomocí jediného vzorce. V tomto kontextu "vnoření" znamená umístění jedné funkce do druhé.

    Předpokládejme, že máte seznam telefonních čísel ve sloupci A naformátovaný jako "123456789" a chcete, aby vypadala spíše jako telefonní čísla přidáním pomlček. Jinými slovy, vaším cílem je změnit "123456789" na "123-456-789".

    Vložení první pomlčky je snadné. Napíšete obvyklý vzorec Excelu Nahradit, který nahradí nulové znaky s pomlčkou, tj. přidá pomlčku na 4. pozici v buňce:

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

    Výsledek výše uvedeného vzorce Nahradit je následující:

    Dobře, a nyní potřebujeme vložit ještě jednu pomlčku na 8. pozici. To provedete tak, že výše uvedený vzorec umístíte do další funkce Excelu REPLACE. Přesněji řečeno, vložíte jej do funkce old_text argumentu druhé funkce, takže druhá funkce REPLACE bude zpracovávat hodnotu vrácenou první funkcí REPLACE, a ne hodnotu v buňce A2:

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

    Výsledkem je získání telefonních čísel v požadovaném formátování:

    Podobným způsobem můžete pomocí vnořených funkcí REPLACE vytvořit textové řetězce, které budou vypadat jako data, a to přidáním lomítka vpřed (/) tam, kde je to vhodné:

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

    Kromě toho můžete textové řetězce převést na skutečná data tak, že výše uvedený vzorec REPLACE obalíte funkcí DATEVALUE:

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

    A samozřejmě nejste omezeni počtem funkcí, které můžete vnořit do jednoho vzorce (moderní verze aplikace Excel 2010, 2013 a 2016 umožňují až 8192 znaků a až 64 vnořených funkcí ve vzorci).

    Například můžete použít 3 vnořené funkce REPLACE, aby se číslo v A2 zobrazilo jako datum a čas:

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

    Nahrazení řetězce, který se v každé buňce objevuje na jiném místě

    Dosud jsme se ve všech příkladech zabývali hodnotami podobného charakteru a nahrazovali jsme je na stejném místě v každé buňce. Úlohy v reálném životě jsou však často složitější. Ve vašich pracovních listech se znaky, které mají být nahrazeny, nemusí nutně vyskytovat na stejném místě v každé buňce, a proto budete muset zjistit pozici prvního znaku které by měly být nahrazeny. Následující příklad ukáže, o čem mluvím.

    Předpokládejme, že máte seznam e-mailových adres ve sloupci A. A název jedné společnosti se změnil z "ABC" na například "BCA". Musíte tedy odpovídajícím způsobem aktualizovat e-mailové adresy všech klientů.

    Problém však spočívá v tom, že názvy klientů mají různou délku, a proto nemůžete přesně určit, kde začíná název firmy. Jinými slovy, nevíte, jakou hodnotu máte zadat do argumentu start_num funkce Excel REPLACE. Chcete-li to zjistit, použijte funkci Excel FIND a určete pozici prvního znaku v řetězci "@abc":

    =FIND("@abc",A2)

    A poté zadejte výše uvedenou funkci FIND do argumentu start_num vzorce REPLACE:

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

    Tip: Do vzorce pro vyhledávání a nahrazování v aplikaci Excel zahrnujeme znak "@", abychom zabránili náhodným záměnám v části jména e-mailových adres. Samozřejmě je velmi malá pravděpodobnost, že k takové shodě dojde, a přesto se můžete chtít pojistit.

    Jak vidíte na následujícím obrázku, vzorec nemá problém s nalezením a nahrazením starého textu novým. Pokud však textový řetězec, který má být nahrazen, není nalezen, vzorec vrátí chybu #VALUE!:

    A my chceme, aby vzorec vrátil původní e-mailovou adresu místo chyby. Proto uzavřeme náš vzorec FIND & REPLACE do funkce IFERROR:

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

    A tento vylepšený vzorec funguje dokonale, že?

    Dalším praktickým využitím funkce REPLACE je změna prvního písmene v buňce na velké. Kdykoli pracujete se seznamem jmen, výrobků a podobně, můžete použít výše uvedený vzorec pro změnu prvního písmene na velké písmeno.

    Tip: Pokud chcete provést nahrazení v původních datech, je jednodušší použít dialogové okno Excel FIND and REPLACE.

    Funkce SUBSTITUTE aplikace Excel

    Funkce SUBSTITUTE v aplikaci Excel nahradí jeden nebo více výskytů daného znaku nebo textového řetězce zadaným znakem (znaky).

    Syntaxe funkce SUBSTITUTE aplikace Excel je následující:

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    První tři argumenty jsou povinné a poslední je nepovinný.

    • Text - původní text, ve kterém chcete nahradit znaky. Lze zadat jako testovací řetězec, odkaz na buňku nebo výsledek jiného vzorce.
    • Old_text - znak(y), které chcete nahradit.
    • New_text - nový znak (znaky), kterým se nahradí starý_text.
    • Instance_num - výskyt old_text, který chcete nahradit. Pokud je vynechán, každý výskyt starého textu bude změněn na nový text.

    Například všechny níže uvedené vzorce nahradí v buňce A2 číslo "1" číslem "2", ale vrátí různé výsledky v závislosti na tom, jaké číslo zadáte jako poslední argument:

    =SUBSTITUTE(A2, "1", "2", 1) - Nahradí první výskyt slova "1" slovem "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Nahradí druhý výskyt slova "1" slovem "2".

    =SUBSTITUTE(A2, "1", "2") - Nahradí všechny výskyty "1" znakem "2".

    V praxi se funkce SUBSTITUTE používá také k odstranění nežádoucích znaků z buněk. Příklady z praxe naleznete na adrese:

    • Jak odstranit znaky nebo slova z řetězce
    • Jak odstranit nežádoucí znaky z buněk

    Poznámka: Funkce SUBSTITUTE v aplikaci Excel je. rozlišování velkých a malých písmen Například následující vzorec nahradí všechny případy velkých písmen "X" písmenem "Y" v buňce A2, ale nenahradí žádné případy malých písmen "x".

    Nahrazení více hodnot jedním vzorcem (vnořený vzorec SUBSTITUTE)

    Stejně jako v případě funkce REPLACE aplikace Excel můžete do jednoho vzorce vnořit několik funkcí SUBSTITUTE a provést tak několik záměn najednou, tj. nahradit několik znaků nebo podřetězců jedním vzorcem.

    Předpokládejme, že máte textový řetězec typu " PR1, ML1, T1 " v buňce A2, kde "PR" znamená "Projekt", "ML" znamená "Milník" a "T" znamená "Úkol". To, co chcete, je nahradit tyto tři kódy plnými názvy. Abyste toho dosáhli, můžete napsat 3 různé vzorce SUBSTITUTE:

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

    =SUBSTITUTE(A2, "ML", "Milník ")

    =SUBSTITUTE(A2, "T", "Úkol ")

    A pak je do sebe vnořte:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Milník "), "T", "Úkol ")

    Všimněte si, že jsme pro lepší čitelnost přidali na konec každého argumentu new_text mezeru.

    Další způsoby nahrazení více hodnot najednou naleznete v části Jak hromadně najít a nahradit v aplikaci Excel.

    Excel REPLACE vs. Excel SUBSTITUTE

    Funkce REPLACE a SUBSTITUTE v aplikaci Excel jsou si navzájem velmi podobné, protože obě slouží k výměně textových řetězců. Rozdíly mezi oběma funkcemi jsou následující:

    • SUBSTITUTE nahrazuje jeden nebo více instance daného znaku nebo textového řetězce. Pokud tedy znáte text, který má být nahrazen, použijte funkci SUBSTITUTE aplikace Excel.
    • REPLACE změní znaky v zadaném pozice textového řetězce. Pokud tedy znáte pozici nahrazovaného znaku (znaků), použijte funkci Excel REPLACE.
    • Funkce SUBSTITUTE v aplikaci Excel umožňuje přidat nepovinný parametr (číslo_instance), který určuje, které výskyt starého_textu by měl být změněn na nový_text.

    Takto se v Excelu používají funkce SUBSTITUTE a REPLACE. Doufám, že se vám tyto příklady budou hodit při řešení vašich úloh. Děkuji vám za přečtení a doufám, že se na našem blogu uvidíme příští týden!

    Stáhnout cvičebnici

    Příklady vzorců REPLACE a SUBSTITUTE (.xlsx soubor)

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.