Přeskočit na obsah

RegexNahraditExcel

enREGEXREPLACE

Funkce umožňuje nahradit části textového řetězce na základě regulárního výrazu (RegEx).

=REGEXNAHRADIT(Text;Pattern;Replacement;[Occurance];[ Case_sensitivity])

Text (povinné) – Textový řetězec, v kterém má být text nahrazen za jiný.

Patter (povinné) – Regulární výraz určující vzor, podle kterého bude text nahrazen.

Replacement (povinné) – Text, kterým má být původní text nahrazen.

Occurance (volitelné, výchozí=0) – Určuje, jaká instance má být nahrazena. Výchozí možností je nahradit všechny nalezené vzorky textů za nový text.

Case_sensitivity (volitelné, výchozí=0) – Určuje, zdali mají být rozlišovány velká a malá písmena.

  • 0 – Rozlišovat malá a velká písmena.
  • 1 – Nerozlišovat malá a velká písmena.

Regulární výraz (RegEx) je speciální řetězec znaků, který slouží k vyhledávání, extrahování a manipulaci s textem na základě určitých vzorců a umožňuje složité operace s vyhledáváním určitých vzorů textových řetězců. Testovat regulární výrazy lze např. na stránce regex101.com.

Při psaní vzorů lze také použít tzv. tokeny, které odpovídají různým znakům:

  • [0-9] – Libovolná číselná pozice
  • [a-z] – Znak v rozsahu a až z
  • . – Libovolný znak
  • .* – Všechny znaky
  • \d – Libovolné číslo
  • \d* – Všechny čísla za sebou
  • a – Znak „A“
  • a* – žádné nebo více „a“

Základní použití funkce je podobné jako funkce Nahradit. Pokud ale má být použit určitý regulární výraz, jako např. nahrazení všech čísel za určitý znak, je vhodnější použít funkci RegexNahradit. Zároveň zadaný argument „Náhrady“ nenahradí stejný počet nahrazených hodnot. Pokud má být např. nahrazeno více čísel zjištěných „\d+“ za pouze hvězdičku, bude ve výstupu pouze jedna hvězdička, ačkoliv se nahrazuje i více čísel. Pokud se hledaný vzorek v zdrojovém textovém řetězci nenachází, vrátí se původní textový řetězec.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Nahrazení textového řetězce „Číslo faktury“ za číslo 0, přičemž zbytek hodnot v buňce jsou čísla. Výstupem by tak následně mělo být pouze číslo, které je převedeno na formát čísla pomocí funkce Hodnota.

=HODNOTA(REGEXNAHRADIT(D2;“Číslo faktury: „;“0“))

Pokud má být výstupem pouze určitá část ze zdrojového textu, přičemž ve výstupu je nutné ještě nahradit určité znaky, je možné funkci kombinovat s funkcí RegexExtrahovat. Např. pokud by byly buňky s textem jako „Datum faktury: 15/02/2025 bylo schváleno.“ a bylo by nutné extrahovat pouze dané datum, přičemž lomítka by měly být nahrazeny za tečky, je možné použít následující výraz.

=REGEXNAHRADIT(REGEXEXTRAHOVAT (J2;“\d{2}/\d{2}/\d{4}“); „/“; „.“)

Pokud má být určitý text spojen s určitým dalším textem, přičemž je nutné část textových řetězců nahradit a mezi jednotlivé výstupy má být vložen oddělovač, je možné využít funkce TextJoin. Např. pokud v sloupci „A“ bude vždy čtyřmístné číslo a další písmena jako „6478KK“ a v buňce „B“ budou vždy 4 čísla a další písmena jako „8554CZASDF“, přičemž ve výstupu má být místo čísel hvězdička a výstup z obou buněk má být spojen do jedné s oddělovačem středníku, je možné využít následující vzorec.

=TEXTJOIN(„;“;1; REGEXNAHRADIT (A2:B2;“\d{4}“; „*“))

© 2026 Excelland