2016-06-01 9 views
1

Ich habe Spalten in Excel mit Daten im Format A1 = a; b; c und ich möchte es in drei Zellen teilen als B1 = a, C1 = b & D1 = c. Bitte helfenSeparate Daten in Excel-Zellen mit Trennzeichen als ";"

+2

Verwenden Der Text-zu-Spalten-Assistent im Daten-Menüband –

+0

verwendet die Begrenzungseinstellung und wählt; als Trennzeichen Wählen Sie auch B1 oder Spalte B als Ziel, wenn Sie nicht möchten, dass Ihre Quelle überschrieben wird. –

Antwort

1

Wenn Sie ständig Informationen in die Spalte A einfügen und Sie für eine Formel-Lösung suchen, könnten Sie dies tun

=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",LEN($A1))),(COLUMNS($B:B)-1)*LEN($A1)+1,LEN($A1))) 

, dass Ihre erste Bit von Daten übernimmt beginnt in Zelle A1 und Sie sind Platzieren Sie Ihre getrennten Werte beginnend in Spalte B. Kopieren Sie die Formel so nach rechts wie so viele Einträge, wie Sie haben.

Die einfachere Methode ist, Excel's text to columns Option zu verwenden, wenn es für Sie verfügbar ist, wie Ron Rosenfeld darauf hingewiesen hat.

+0

Ihre Formel wirkt wie ein Zauber. Es scheint viel besser Ansatz als Text To Columns und möglicherweise für viele, die nicht mit VBA vertraut sind. – skkakkar

1

Wenn Sie eine VBA-Lösung haben möchten. Bitte versuchen Sie dies:

Sub Transpose_Q8582() 
    Dim pasteRng As Range 
    Dim i As Long 

     With ActiveSheet 
     Set pasteRng = .Range("B1:D1") 
     With .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row) 
      For i = 1 To .Rows.Count Step 3 
       pasteRng.Offset(i - 1).Value = Application.Transpose(.Cells(i, 1).Resize(3)) 
      Next i 
     End With 
    End With 
End Sub 

Snapshot shows the results:

EDIT Es war ein Versehen OP Anforderung zu verstehen. Ich habe den VBA-Code überarbeitet, um die OP-Anforderungen zu erfüllen.

Sub Test1() 
    Dim values As Variant 
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
     values = Split(Cells(i, 1).Value, ";") 
    Cells(i, 1).Offset(0, 1).Resize(1, UBound(values) + 1).Value = values 
    Next 
End Sub 

Snapshot showing results

+0

Ich glaube, Sie haben einen wichtigen Teil der Frage verpasst ... 'A1 = a; b; c', nicht' A1 = a', 'A2 = b',' A3 = c'. – OldUgly

+0

@OldUgly Sorry, es ist ein Versehen. Wie kann man seine Antwort zurückziehen? – skkakkar

+0

@skkakkar warum zurückziehen, beheben Sie Ihre Antwort 8) Sie können es tun! Wenn Sie aufgrund anderer Verpflichtungen nicht in der Lage sind, drücken Sie Löschen statt Bearbeiten. Sie können Ihre Antwort jederzeit später wiederherstellen, wenn Sie sie aktualisiert haben. –

1

Wählen Sie Ihre Zielzelle (n)> Gehe zu Daten> Text in Spalten> Trennzeichen> Semikolon auswählen> Fertig

0

schreiben diese Formel in B1 und Ziehen Sie es nach rechts und für die folgenden Zeilen:

=IF(COLUMN()=2,LEFT($A1,1),IF(COLUMN()=3,MID($A1,3,1),RIGHT($A1,1))) 
Verwandte Themen