Wie teile ich eine Zeichenfolge in MS-Excel auf der Basis von „:“ auf?

58

Meine Excel-Spalte enthält folgende Wörter:

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

Ich möchte jedes Wort basierend auf ":" aufteilen und das Ergebnis in benachbarte Spalten setzen, sodass "ABC: DCF" in Zelle "A: 1" zu "ABC" in Zelle "B: 1" und "DCF" in Zelle "wird. C: 1 "sowie entsprechende Werte in jeder Spalte. Wie macht man das?

Andrea
quelle

Antworten:

63

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

BrOSs
quelle
80

Text in Spalten wird funktionieren. Wenn Sie den ursprünglichen Wert beibehalten möchten, können Sie auch Formeln verwenden:
in B1

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

in C1

=mid(a1,find(":",a1)+1,len(a1))
nutsch
quelle
2
Der ursprüngliche Wert kann auch mit der anderen Lösung beibehalten werden (Sie können eine andere Spalte zum Speichern der neuen Werte angeben). Diese Lösung gefällt mir jedoch besser, da sie immer aktuelle Werte zulässt (z. B. wenn Sie A1 ändern, B1 und C1 werden aktualisiert, die Option Text in Spalte hingegen nicht.
Psychowood
Dies ist eine brillante Lösung
jsg
26

Wenn Sie VBA verwenden können, können Sie die Split()Funktion verwenden. Hier ist eine benutzerdefinierte Funktion (UDF), die Sie in einer Zelle verwenden können. Es teilt sich nach Ihrer Wahl des Zeichens und gibt das n- te Element der geteilten Liste zurück.

Siehe Wie füge ich VBA in MS Office hinzu? Informationen zum Definieren einer UDF finden Sie hier.

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üssen also Folgendes eingeben:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
Jamie Bull
quelle
1
Sehr schön, wusste nicht, dass es so einfach ist, eigene Formeln zu erstellen
Verkleidungen
1
Dies ist ideal, um eine URL in ihre Bestandteile aufzuteilen.
2.
7

Füge es in B1 ein und fülle es in Spalten rechts und Zeilen unten:

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

Bearbeiten: Ich habe zuvor eine lokalisierte Version der Formel gepostet, in der ',' durch ';' ersetzt wurde. Das funktioniert in der US-Version von Excel nicht:

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

Hardi Uutma
quelle
1
Willkommen bei Super User. Können Sie Ihrer Antwort ein paar Sätze hinzufügen, um zu erklären, was dies bewirkt und wie es funktioniert? Das wird seinen pädagogischen Wert steigern. Vielen Dank.
Fixer1234
Ja sicher. Das Gleiche gilt für Text in Spalten auf der Registerkarte "Daten", mit der Ausnahme, dass dies nicht mit einer Formel erfolgt. Sie können das ":" durch ein anderes Trennzeichen ersetzen oder auf ein Trennzeichen aus der anderen Zelle verweisen.
Hardi Uutma
Excel gibt an, dass dies keine gültige Formel ist, wenn Sie sie in eine Zelle einfügen. Bitte überprüfen und aktualisieren.
Thilina R
Hallo thilina R! Vielen Dank für die Benachrichtigung. Ich habe die Anpassung für die US-Version von Excel vorgenommen. Bitte lassen Sie mich wissen, wenn Sie Probleme damit haben oder wenn etwas unklar ist.
Hardi Uutma
Sehr schön. Die bisher einzige Antwort, die es Ihnen ermöglicht, mit so vielen Begrenzern umzugehen, wie Sie möchten, ohne eine eigene Funktion zu erstellen.
CWilson