2012-10-03 16:16:00 +0000 2012-10-03 16:16:00 +0000
58
58

Wie kann man in MS-Excel eine Zeichenkette anhand von ":" aufteilen?

Meine Excel-Spalte ist mit Wörtern wie diesen gefüllt:

1.) ABC:DCF
2.) DCF:FED

Ich möchte jedes Wort basierend auf “ : ” aufteilen und das Ergebnis in benachbarte Spalten setzen, so dass “ABC:DCF” in Zelle “A:1” zu “ABC” in Zelle “B:1” und “DCF” in Zelle “C:1” wird und auch entsprechende Werte in jeder Spalte. Wie kann man das machen?

Antworten (4)

84
84
84
2012-10-03 16:34:14 +0000

Text zu den Spalten wird funktionieren. Eine andere Möglichkeit, wenn Sie den ursprünglichen Wert beibehalten möchten, ist die Verwendung von Formeln: in B1

=left(a1,find(":",a1)-1)

in C1

=mid(a1,find(":",a1)+1,len(a1))
63
63
63
2012-10-03 16:20:12 +0000

Gehen Sie zur Registerkarte Daten und dann zur Option Text zu Spalten. Wählen Sie später die Option “Getrennt” und dann “Andere” und setzen Sie ein beliebiges Trennzeichen.

26
26
26
2012-10-03 18:42:46 +0000

Wenn Sie VBA verwenden können, können Sie die Funktion Split() nutzen. Hier ist eine benutzerdefinierte Funktion (User-Defined Function, UDF), die Sie in einer Zelle verwenden können. Sie teilt nach dem von Ihnen gewählten Zeichen auf und gibt das nte Element der Aufteilungsliste zurück.

Siehe Wie füge ich VBA in MS Office hinzu? für Informationen darüber, wie Sie eine UDF definieren.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Sie müssten also eingeben:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
8
8
8
2016-09-05 16:44:45 +0000

Fügen Sie sie in B1 ein und füllen Sie die Spalten rechts und die Zeilen unten aus:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Bearbeiten: Ich habe zuvor eine lokalisierte Version der Formel veröffentlicht, wobei ‘,’ durch ‘;’ ersetzt wurde. Das funktioniert nicht in der US-Version von Excel:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))