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 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!
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.
Sie können nicht als CSV speichern nur und eine Suche und ersetzen für ,
zu \n
?
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:
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.
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.
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