
Generisk formel
=TRIM(MID(SUBSTITUTE(A1,delim,REPT(" ",LEN(A1))),(N-1)*LEN(A1)+1,LEN(A1)))
Sammanfattning
För att dela text i en godtycklig avgränsare (komma, mellanslag, rör, etc.) kan du använda en formel baserad på funktionerna TRIM, MID, SUBSTITUTE, REPT och LEN. I exemplet som visas är formeln i C5:
=TRIM(MID(SUBSTITUTE($B5,"|",REPT(" ",LEN($B5))),(C$4-1)*LEN($B5)+1,LEN($B5)))
Obs: referenser till B5 och C4 är blandade referenser så att formeln kan kopieras över och ned.
Förklaring
Kärnan i denna formel är att ersätta en given avgränsare med ett stort antal mellanslag med SUBSTITUTE och REPT, använd sedan MID-funktionen för att extrahera text relaterad till "nth förekomst" och TRIM-funktionen för att bli av med det extra utrymmet.
I detta utdrag ersätts avgränsaren (avgränsningen) med ett antal mellanslag som är lika med strängens totala längd:
SUBSTITUTE(A1,delim,REPT(" ",LEN(A1)))
Sedan använder formeln MID-funktionen för att extrahera den nionde strängen. Startpunkten beräknas med koden nedan, där N representerar "nth":
(N-1)*LEN(A1)+1
Det totala antalet extraherade tecken är lika med längden på hela textsträngen. TRIM-funktionen tar sedan bort alla extra mellanslag och returnerar bara den n: e strängen.
Extrahera bara en instans
Även om exemplet är inställt på att extrahera 5 understrängar från texten i kolumn B, kan du enkelt extrahera bara en instans. För att till exempel bara extrahera det fjärde objektet (stad) kan du använda:
=TRIM(MID(SUBSTITUTE(B5,"|",REPT(" ",LEN(B5))),(4-1)*LEN(B5)+1,LEN(B5)))
Text till kolumner-funktionen
För manuella engångskonverteringar har Excel en inbyggd funktion som heter "Text till kolumner" som kan dela text i celler med en avgränsare efter eget val. Du hittar den här funktionen på fliken Data i menyfliksområdet i avsnittet Dataverktyg.