
Obecný vzorec
=TRIM(MID(SUBSTITUTE(A1,delim,REPT(" ",LEN(A1))),(N-1)*LEN(A1)+1,LEN(A1)))
souhrn
Chcete-li rozdělit text na libovolný oddělovač (čárka, mezera, roura atd.), Můžete použít vzorec založený na funkcích TRIM, MID, SUBSTITUTE, REPT a LEN. V zobrazeném příkladu je vzorec v C5:
=TRIM(MID(SUBSTITUTE($B5,"|",REPT(" ",LEN($B5))),(C$4-1)*LEN($B5)+1,LEN($B5)))
Poznámka: odkazy na B5 a C4 jsou smíšené odkazy, které umožňují kopírování vzorce napříč a dolů.
Vysvětlení
Podstatou tohoto vzorce je nahradit daný oddělovač velkým počtem mezer pomocí SUBSTITUTE a REPT, poté pomocí funkce MID extrahovat text související s „n-tým výskytem“ a funkcí TRIM se zbavit mezery navíc.
V tomto úryvku je oddělovač (oddělovač) nahrazen počtem mezer rovných celkové délce řetězce:
SUBSTITUTE(A1,delim,REPT(" ",LEN(A1)))
Potom vzorec používá funkci MID k extrakci n-tého podřetězce. Počáteční bod se vypočítá pomocí níže uvedeného kódu, kde N představuje „n-té“:
(N-1)*LEN(A1)+1
Celkový počet extrahovaných znaků se rovná délce celého textového řetězce. Funkce TRIM poté odstraní všechny mezery navíc a vrátí pouze n-tý řetězec.
Extrahujte pouze jednu instanci
Ačkoli je příklad nastaven na extrahování 5 podřetězců z textu ve sloupci B, můžete snadno extrahovat pouze 1 instanci. Chcete-li například extrahovat pouze 4. položku (město), můžete použít:
=TRIM(MID(SUBSTITUTE(B5,"|",REPT(" ",LEN(B5))),(4-1)*LEN(B5)+1,LEN(B5)))
Funkce převodu textu na sloupec
Pro manuální jednorázové převody má Excel integrovanou funkci nazvanou „Text na sloupce“, která umožňuje rozdělit text v buňkách pomocí oddělovače podle vašeho výběru. Tuto funkci najdete na kartě Data na pásu karet v sekci Datové nástroje.