Přeskočit na obsah

RegexExtrahovatExcel

enREGEXEXTRACT

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

=REGEXEXTRAHOVAT(Text;Pattern;[return_mode];[case_sensitivity])

Text (povinné) – Textový řetězec, ze kterého má být extrahovaná část na základě vzoru.

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

Return_mode (volitelné, výchozí=0) – Číslo určující jaké řetězce mají být extrahovány:

  • 0 – Vrátí první řetězec, který odpovídá vzoru.
  • 1 – Vrátí všechny řetězce odpovídající vzoru jako pole.
  • 2 – Vrátí zachycené skupiny první shody jako pole, přičemž skupina je obklopená závorkou ().

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“

V příkladu je použito více regulárních výrazů. V druhém řádku má být nalezeno písmeno „e“ a vráceno do dané buňky se vzorcem, přičemž výchozí nastavení je, že záleží na velikosti písmen, proto bude vráceno malé „e“. V dalším příkladu má být nalezeno slovo „Excel“ v textovém řetězci, přičemž pokud se nachází toto slovo víckrát, mají být vráceny všechny výskyty do dalších buněk v jednom řádku, tedy výstup nemusí být pouze jedno buňkový, ale jedná se o maticový výstup. V další příkladu 3 mají být navráceny všechny čísla, které jsou nalezeny v textovém řetězci. V příkladu 4 budou vráceny všechny čísla, následně pomlčka a jakékoliv velká písmena za pomlčkou. Pokud se hledaný regulární výraz v textovém řetězci nenachází, bude vrácena chyba ve formátu #N/A.

Použití s ostatními funkcemi

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

Pokud má být zjištěno, kolikrát se daný vzorek nachází v textovém řetězci, je možné využít kombinace s funkcí Počet2. Pokud bude např. slovo 2x výstupem z textového řetězce, bude výsledek 2.

=POČET2(REGEXEXTRAHOVAT(A2; „excel“;1))

Pokud má být regulární výraz v textu nalezen a následně nahrazena určitá část, je možné funkci kombinovat s funkcí RegexNahradit. 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 extrahovaným textem, přičemž 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ž mají být pouze extrahovány čísla a vloženy do jedné buňky s oddělovačem středníku, je možné využít následující vzorec.

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

Pokud má být nejprve zjištěno, zdali se skutečně regulární výraz v ve zvoleném textu nachází, je možné funkci kombinovat s funkcemi Když a RegexTest. Pokud mají být např. hledány čísla, které jako jediné mají být extrahovány, nejprve se provede test, pokud zde čísla jsou, bude vráceno pouze dané číslo. Pokud se čísla v textu nenachází, bude vrácena původní hodnota.

=KDYŽ(REGEXTEST(A2;“\d+“);REGEXEXTRAHOVAT(A2;“\d+“);A2)

© 2026 Excelland