email aus excel rauslesen/filtern
Hallo, ich habe die Aufgabe bekommen, email adressen für Mailchimp, bzw. emailadressen aus einer sehr armselig angelegten Kundenliste auszufiltern (Excel). Da die Liste mehr als 1000 Kunden beinhalten, wäre die Frage: Kann man die Emailadressen aus so einer Excelliste filtern?
Da Problem ist, dass alle Daten eines Kunden in EINER Zelle stehen und eine ewig lange Kette haben
Also, z.B –
In A1: Karl Karlson F,"Musterstr. 18","Wien","4322","A","764-2234","764-421","karlson.b17k@web.com","KK.com","Herr Karlson","Autohöker"
In A2: Emma Emmerson H,"da hinten str. 419","Berlin","12222","D","383-4524","383-4511","emma.emmason.bk@gmx.com","EMA.com","Emma","Koch"
In A3: Hans Hansen,"dastr, 53","Stockholm","222222","S","841-6766","","seine.firma@yahoo.com","HH.com","Kurt Kurtson","Landwirt"
Und alles in Spalte A :-( Kann man die Mailadressen da rauslesen? Wie würde das gehen?
Bis jetzt habe ich keine Lösung irgendwo gefunden? Hat hier jemand eine Idee?
Danke und Grüße
Charly
4 Antworten
Wenn die Daten wirklich so akkurat aufgeteilt sind, wie in den Beispielen, die Einträge also immer durch gleichviele Kommata getrennt sind, dann geht das ganz einfach:
Die Spalte mit den Daten markieren und dann:
Daten/ Datentools/ Text in Spalten/ Getrennt/ Weiter/ Trennzeichen: Komma/ Fertig stellen
Und schon stehen Deine Mailadressen in Spalte H (falls die Ursprungsspalte A war).
Mit Deinen Beispielen klappt es jedenfalls.
Mit dem Rest auch?
wenn Du eine xl-Formel in einer einzigen Zelle haben willst:
ist zwar ein Formelmonster geworden, aber es funktioniert, und xl wird es auch in 1000-facher Ausfertigung klaglos durchrechnen. Kannst es ja hinterher zu Wert umsetzen! Also:
=TEIL(WECHSELN(LINKS(A1;FINDEN("@";A1;1));"""";"|";LÄNGE(LINKS(A1;FINDEN("@";A1;1)))-LÄNGE(WECHSELN(LINKS(A1;FINDEN("@";A1;1));"""";"")));FINDEN("|";WECHSELN(LINKS(A1;FINDEN("@";A1;1));"""";"|";LÄNGE(LINKS(A1;FINDEN("@";A1;1)))-LÄNGE(WECHSELN(LINKS(A1;FINDEN("@";A1;1));"""";"")));1)+1;99)&LINKS(RECHTS(A1;LÄNGE(A1)-FINDEN("@";A1;1));FINDEN("""";RECHTS(A1;LÄNGE(A1)-FINDEN("@";A1;1));1)-1)
Das geht aber nur für Mail-Adressen, weil dort ein @ zu finden ist und die Adresse durch " eingerahmt wurde. Es darf kein anderer Teil ein @ enthalten und auch kein | (AltGr<>) !
Die Formel bezieht sich auf A1, ist aber nach unten kopierbar, um A2, An auszulesen.
Das mit den vielen " musste ich auch erst ausprobieren, das war wohl der ungünstigste Fall, aber es ging.
Zum Verständnis: ich hab zuerst getrennt in bis @ und ab @
ab@ kann man relativ einfach abschneiden bei ".
in bis@ hab ich erst mal die Anzahl der " festgestellt durch Länge - Länge ohne " (mittels WECHSELN(" gegen nichts).
Dann hab ich das letzte davon ausgewechselt gegen ein anderes Zeichen (|), frei gewählt etwas, was nicht in einem Text auftaucht. hätte auch ◄ oder ▓ nehmen können, aber ich denke, das | taucht sonst wirklich nicht auf.
Über Teil(..;finden("|";..;..);99) (sollte es eine Mailadresse geben, die länger ist, dann 999) hab ich dann den linken Teil der Mailadresse isoliert und mit dem rechten verbunden.
Zu kompliziert? Nur für den Fall, dass Du es verstehen willst oder musst, ansonsten notiere es, vergiss es und wende es einfach an,
viel Erfolg!
Stelle grad fest, dass immer die gleiche Zahl von " davor steht, hätte also ein wenig kürzer ausfallen können, aber ich mach das jetzt nicht nochmal neu!
vielen dank für deine Mühe - bekommst einen Damen :-)
Ist zwar ein wenig "ungewöhnlich" aber ich hab es anhand deiner Bsp Daten nachstellen können! (Excel 2010).
Speicher die Tabelle als TXT Datei aus Excel ab. Schließe die Tabelle und öffne eine neue leere!
Klick auf Daten -> Aus Text (Externe Daten abrufen) Öffne die eben gespeicherte TXT Datei in dem Dialog. Klick Weiter.
Beim Textkonvertierungs Assi. Schritt 2 bei Trennzeichen Tabstopp abwählen. Andere anwählen und " setzen. Fertigstellen.
Sieht nicht toll aus aber so bekommt man relativ Ordnung hinein!
Geht am bequemsten mit einem Parser, z.B. "Parse-o-matic".
DAS IST DIE LÖSUNG! DANKE :-)