Durch Kommas getrennte Werte (wörtlich, nicht csv) in derselben Zelle in Excel, in einzelne Zellen

16395
Trufa

Ich habe eine Spalte mit Zellen in Excel, die E-Mails enthalten. Einige enthalten nur eine E-Mail, wie sie sollten, andere wiederum haben mehr als eine E-Mail pro Zelle in diesem Format:

one@example.com, two@example.com, three@example.com 

Was ich erreichen möchte, ist, sie so zu bekommen:

one@example.com two@example.com three@example.com 

Ich vermute (nehmen Sie nicht mein Wort dazu), Sie könnten eine Art von if-Aussage im Sinne von

if (cell contains ", ") get string from ", " to ", " and paste somehow else "b1" 

Sie schreien vielleicht gerade auf Ihrem Bildschirm :) (oder lachen), aber es ist genau so, wie es wäre, keine Vorstellung von den zu verwendenden Funktionen oder ob es überhaupt möglich ist.

Also, wenn Sie irgendwelche Ideen haben, schätze ich es !!

Nur für den Fall, dass ich eine csv-Datei aus dieser Datei erstellen möchte, wäre jede Problemumgehung, die das erledigen würde, erledigt ...

Danke im Voraus!

Trufa

Ich hoffe, ich habe das Problem klar genug erklärt, wenn nicht, bitte um Klarstellung!

EDIT: Das Problem ist tatsächlich gelöst, ich habe nachgegeben und es nacheinander gemacht, die einzige Methode, die Sie niemals im Stich lässt :) Ich würde sowieso Ideen für die Zukunft und für das Wissen schätzen!

2

5 Antworten auf die Frage

2
Larry C

Versuchen Sie in Excel, Daten -> Text in Spalten.

Wählen Sie dann "," als Trennzeichen. Dadurch werden Spaltenumbrüche eingefügt, an denen sich die Kommas jetzt befinden.

Ich könnte einen Weg finden, das zu tun! danke sowieso schau mal in meine edit :) Trufa vor 14 Jahren 0
0
Hello71

Sie können nicht als CSV speichern nur und eine Suche und ersetzen für ,zu \n?

\ N ist also in einer CSV-Datei gültig, wird es nicht stehen? Trufa vor 14 Jahren 0
@Trufa: Es ist nicht; Ich habe in Notepad ++ `\ n` als Platzhalter für einen Zeilenumbruch verwendet. Sie müssen herausfinden, wie ein Zeilenumbruch bei der Suche dargestellt und in Ihrem Texteditor ersetzt wird. Hello71 vor 14 Jahren 0
Ich könnte einen Weg finden, das zu tun! danke sowieso schau mal in meine edit :) Trufa vor 14 Jahren 0
0
Chris

Exportieren Sie Ihre Excel-Datei in eine CSV-Datei.

Kopieren Sie es auf eine Linux-Maschine und bearbeiten Sie es im Vim-Editor.

Dann tippen Sie:

%s/,/\\n/g 

Dies ist die Aufschlüsselung dieses Befehls:

  • : - Befehl ausführen
  • % s - Stellvertreter
  • / - Trennzeichen
  • , - String zu finden
  • / - Trennzeichen
  • **** - Ein Steuerzeichen, um das nächste Zeichen zu ignorieren. In diesem Fall möchten wir, dass der folgende \ n-Teil die Zeichenfolge ist, mit der er das Komma ersetzt
  • \ n - String, der das Komma durch ersetzt
  • / - Trennzeichen
  • g - global

Dies wird die Kommas finden und durch einen Zeilenumbruch ersetzen und jede Zelle in eine neue Zeile setzen. Sie können diese Datei dann erneut in Excel importieren.

Entschuldigung, wenn Sie kein Linux verwenden - das ist meine Spezialität und die Editor- und String-Manipulations-Tools sind viel besser als unter Windows.

Notepad ++ behandelt auch das Suchen und Ersetzen von regulären Ausdrücken und wird unter Windows ausgeführt. Ich benutze es regelmäßig für solche Fälle. glallen vor 12 Jahren 0
0
ho1

Ich bin nicht sicher, ob meine Antwort hier passt, da es sich eher um eine Stackoverflow-Antwort handelt, aber Sie könnten ein Makro schreiben, um es ziemlich leicht zu machen. Das folgende Makro würde beispielsweise annehmen, dass sich die aktuellen E-Mail-Adressen in der ersten Spalte befinden und diese in die zweite Spalte kopieren:

Cells(1, 1).Select Dim curr As String Dim cnt As Integer cnt = 0 For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row curr = Cells(i, 1).Value If InStr(curr, "@") Then If InStr(curr, ",") Then Dim tmp() As String tmp = Split(curr, ",") For j = LBound(tmp) To UBound(tmp) cnt = cnt + 1 Cells(cnt, 2).Value = tmp(j) Next Else cnt = cnt + 1 Cells(cnt, 2).Value = curr End If End If Next i 

Ich kenne VBA zwar nicht so gut, daher könnte es eine bessere Vorgehensweise sein.

0
nifraz

Sie möchten also die Zeilenumbrüche anstelle von Kommas, dann müssen Sie sie suchen und durch char (10) ersetzen. Versuchen Sie diese Formel.

= ERSATZ (A2, ",", CHAR (10))

Die Formel ersetzt die Kommas aus dem Text in A2 und ersetzt sie durch einen Zeilenumbruch.

ZB: Wenn A2 enthält:

jemand @ gmail.com, jemand @ yahoo.com

dann wird es zurückkehren als:

someone@gmail.com
somebody@yahoo.com