Excel vzorec: Rozdělení textu s oddělovačem -

Obsah

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.

Zajímavé články...