Excel-formel: Extrahera flera rader från en cell -

Generisk formel

=TRIM(MID(SUBSTITUTE(A1,delim,REPT(" ",LEN(A1))), (N-1)*LEN(A1)+1, LEN(A1)))

Sammanfattning

För att extrahera rader från en cell med flera rader kan du använda en smart (och skrämmande) formel som kombinerar 5 Excel-funktioner: TRIM, MID, SUBSTITUTE, REPT och LEN. I exemplet som visas är formeln i D5:

=TRIM(MID(SUBSTITUTE($C5,CHAR(10),REPT(" ",LEN($C5))), (D$4-1)*LEN($C5)+1, LEN($C5)))

Förklaring

I grunden letar denna formel efter en linjeavgränsare ("avgränsning") och ersätter den med ett stort antal mellanslag med funktionerna SUBSTITUTE och REPT.

Obs! I äldre versioner av Excel på en Mac använder du CHAR (13) istället för CHAR (10). CHAR-funktionen returnerar ett tecken baserat på dess numeriska kod.

Antalet mellanslag som används för att ersätta radavgränsaren baseras på den totala längden texten i cellen. Formeln använder sedan MID-funktionen för att extrahera önskad rad. Utgångspunkten utarbetas med:

(N-1)*LEN(A1)+1 // start_num

Där "N" står för "nth line", som plockas upp från rad 4 med D $ 4-referens.

Totalt extraherade tecken är lika med längden på hela textsträngen:

LEN(A1) // num_chars

Vid denna tidpunkt har vi den "nionde linjen", omgiven av mellanslag.

Slutligen skär TRIM-funktionen bort alla extra mellanslagstecken och returnerar bara radtexten.

Text till kolumner

Glöm inte att Excel har en inbyggd text till kolumner-funktion som kan dela text enligt avgränsaren du väljer, även om det inte är en dynamisk lösning som en formel. I Windows kan du skriva Control + J för att ange motsvarigheten till ett nytt radtecken för "Annat" avgränsare. Du kan också använda Control + J för en ny rad under sökning och ersättning.

Jag är inte säker på hur man skriver in en ny rad i Mac Excel, som en avgränsare eller i dialogrutan Sök och ersätt. Om du vet hur, lämna en kommentar nedan.

Bra länkar

Effektivt sätt att extrahera nth ord från sträng (MrExcel forum)

Intressanta artiklar...