E-Mail-Adressen aus Excel & CSV extrahieren

Schritt-für-Schritt-Anleitungen mit verschiedenen Methoden – vom Online-Tool bis Python

← Zurück zum E-Mail Extractor

Warum E-Mails aus Tabellen extrahieren?

Excel- und CSV-Dateien gehören zu den häufigsten Formaten, in denen E-Mail-Adressen gespeichert werden. In vielen Geschäftsprozessen entstehen Tabellen mit Kontaktdaten, die weiterverarbeitet werden müssen. Typische Anwendungsfälle sind:

Empfehlung

Verschicke sofort und sicher günstige Newsletter über rapidmail.
  • CRM-Exporte: Kundendatenbanken wie Salesforce, HubSpot oder Zoho exportieren Kontakte oft als XLSX- oder CSV-Dateien. Die E-Mail-Adressen müssen dann extrahiert und in andere Systeme importiert werden.
  • Kontaktlisten: Messe-Teilnehmer, Newsletter-Abonnenten oder Mitgliederverzeichnisse liegen häufig in Tabellenform vor. Oft sind die E-Mails über mehrere Spalten verteilt oder mit anderen Daten vermischt.
  • Umfragedaten: Ergebnisse aus Google Forms, SurveyMonkey oder Typeform enthalten E-Mail-Adressen in Freitext-Feldern, die nicht immer sauber strukturiert sind.
  • Rechnungen und Bestellungen: Buchhaltungssoftware exportiert Kunden-E-Mails in Tabellen, die für Versandbenachrichtigungen oder Zahlungserinnerungen genutzt werden.
  • Legacy-Daten: Ältere Systeme speichern Kontaktdaten oft in Excel-Dateien, die in moderne CRM-Systeme migriert werden müssen.

Das manuelle Kopieren einzelner E-Mail-Adressen ist bei großen Dateien zeitaufwändig und fehleranfällig. Automatisierte Methoden sparen Zeit und stellen sicher, dass keine Adresse übersehen wird.

Methode 1: Unser kostenloses Online-Tool verwenden

Der schnellste Weg, E-Mail-Adressen aus Excel- oder CSV-Dateien zu extrahieren, ist unser kostenloser E-Mail Extractor. Das Tool unterstützt XLSX-, XLS- und CSV-Dateien und verarbeitet alles direkt in deinem Browser – deine Daten verlassen nie dein Gerät.

So funktioniert es

  1. Öffne extract-emails.com/de in deinem Browser.
  2. Ziehe deine Excel- oder CSV-Datei per Drag & Drop in den Upload-Bereich – oder klicke auf „Datei auswählen“.
  3. Das Tool scannt alle Zellen und Blätter der Datei automatisch nach E-Mail-Adressen.
  4. Gefundene E-Mail-Adressen werden sofort angezeigt – Duplikate werden automatisch entfernt.
  5. Kopiere die Ergebnisse in die Zwischenablage oder lade sie als TXT- oder CSV-Datei herunter.

Vorteile: Keine Software-Installation nötig, keine Programmierkenntnisse erforderlich, 100 % Datenschutz durch lokale Verarbeitung. Das Tool erkennt E-Mail-Adressen auch dann, wenn sie in längeren Textpassagen innerhalb einer Zelle stehen.

Methode 2: Excel-Formeln verwenden

Wenn du direkt in Excel arbeitest und E-Mail-Adressen aus Zellen extrahieren möchtest, die neben anderen Daten auch E-Mails enthalten, kannst du eine Kombination aus Excel-Funktionen verwenden.

E-Mail aus einer Zelle mit gemischtem Text extrahieren

Angenommen, Zelle A1 enthält den Text „Kontakt: max.mustermann@beispiel.de, Tel: 0123“. Mit folgender Formel extrahierst du die E-Mail-Adresse:

Excel-Formel (Strg+Umschalt+Eingabe als Array-Formel)
=GLÄTTEN(TEIL(WECHSELN(A1;" ";WIEDERHOLEN(" ";100));
  FINDEN("@";WECHSELN(A1;" ";WIEDERHOLEN(" ";100)))-100;200))

Diese Formel funktioniert, indem sie Leerzeichen durch 100 Leerzeichen ersetzt, dann die Position des @-Zeichens findet und den umgebenden Text ausschneidet. GLÄTTEN entfernt die überflüssigen Leerzeichen am Ende.

Prüfen, ob eine Zelle eine E-Mail-Adresse enthält

Excel-Formel
=WENN(UND(ISTFEHLER(FINDEN(" ";A1));ISTZAHL(FINDEN("@";A1));
  ISTZAHL(FINDEN(".";A1;FINDEN("@";A1))));"Ja";"Nein")

Diese Formel prüft, ob die Zelle ein @-Zeichen und einen Punkt nach dem @ enthält und kein Leerzeichen vorhanden ist. Sie eignet sich gut für eine schnelle Überprüfung, ob eine Spalte tatsächlich E-Mail-Adressen enthält.

Alle E-Mail-Spalten mit TEXTVERKETTEN zusammenführen

Wenn E-Mail-Adressen über mehrere Spalten verteilt sind (z.B. „Geschäftlich“ in Spalte C und „Privat“ in Spalte D), kannst du diese mit TEXTVERKETTEN zusammenführen:

Excel-Formel (Excel 2019 / Microsoft 365)
=TEXTVERKETTEN("; ";WAHR;C2;D2)

Der Parameter WAHR bewirkt, dass leere Zellen übersprungen werden. So erhältst du eine saubere Liste ohne leere Trennzeichen.

E-Mail Marketing Tool

Methode 3: VBA-Makro für Excel

Für komplexere Anforderungen – etwa das Extrahieren von E-Mail-Adressen aus Tausenden von Zellen mit gemischtem Inhalt – ist ein VBA-Makro die leistungsstärkste Lösung direkt in Excel.

VBA-Makro mit regulärem Ausdruck (RegExp)

Öffne den VBA-Editor mit Alt+F11, füge ein neues Modul ein und aktiviere unter „Extras > Verweise“ die Bibliothek Microsoft VBScript Regular Expressions 5.5.

VBA-Code
Sub ExtractEmails()
    Dim ws As Worksheet
    Dim cell As Range
    Dim regex As New RegExp
    Dim matches As MatchCollection
    Dim match As match
    Dim outputSheet As Worksheet
    Dim outputRow As Long
    Dim emailDict As Object

    Set emailDict = CreateObject("Scripting.Dictionary")

    ' Regex-Muster fuer E-Mail-Adressen
    regex.Pattern = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
    regex.Global = True
    regex.IgnoreCase = True

    ' Ergebnis-Blatt erstellen
    On Error Resume Next
    Set outputSheet = ThisWorkbook.Sheets("Extrahierte_Emails")
    If outputSheet Is Nothing Then
        Set outputSheet = ThisWorkbook.Sheets.Add
        outputSheet.Name = "Extrahierte_Emails"
    Else
        outputSheet.Cells.Clear
    End If
    On Error GoTo 0

    outputSheet.Range("A1").Value = "E-Mail-Adresse"
    outputSheet.Range("B1").Value = "Gefunden in Blatt"
    outputSheet.Range("C1").Value = "Zelle"
    outputRow = 2

    ' Alle Blaetter und Zellen durchsuchen
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Extrahierte_Emails" Then
            For Each cell In ws.UsedRange
                If Not IsEmpty(cell.Value) Then
                    If regex.Test(CStr(cell.Value)) Then
                        Set matches = regex.Execute(CStr(cell.Value))
                        For Each match In matches
                            If Not emailDict.Exists(LCase(match.Value)) Then
                                emailDict.Add LCase(match.Value), True
                                outputSheet.Cells(outputRow, 1).Value = match.Value
                                outputSheet.Cells(outputRow, 2).Value = ws.Name
                                outputSheet.Cells(outputRow, 3).Value = cell.Address
                                outputRow = outputRow + 1
                            End If
                        Next match
                    End If
                End If
            Next cell
        End If
    Next ws

    MsgBox outputRow - 2 & " eindeutige E-Mail-Adressen gefunden.", _
        vbInformation, "Extraktion abgeschlossen"
End Sub

Dieses Makro durchsucht alle Blätter der Arbeitsmappe, findet E-Mail-Adressen mit einem regulären Ausdruck und schreibt die Ergebnisse dedupliziert in ein neues Blatt. Neben der E-Mail wird auch der Fundort (Blattname und Zelladresse) gespeichert.

E-Mail Marketing Tool

Methode 4: Python mit openpyxl und pandas

Für die Verarbeitung sehr großer Dateien oder die Integration in automatisierte Workflows ist Python die beste Wahl. Die Bibliotheken openpyxl (für XLSX) und pandas machen das Lesen von Excel-Dateien einfach.

Mit openpyxl (XLSX-Dateien)

Python
import re
from openpyxl import load_workbook

def extract_emails_from_xlsx(file_path):
    """E-Mail-Adressen aus einer XLSX-Datei extrahieren."""
    email_pattern = re.compile(
        r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
    )
    emails = set()

    wb = load_workbook(file_path, read_only=True, data_only=True)
    for sheet in wb.sheetnames:
        ws = wb[sheet]
        for row in ws.iter_rows(values_only=True):
            for cell_value in row:
                if cell_value is not None:
                    found = email_pattern.findall(str(cell_value))
                    emails.update(e.lower() for e in found)
    wb.close()

    return sorted(emails)

# Verwendung
emails = extract_emails_from_xlsx("kontakte.xlsx")
print(f"{len(emails)} eindeutige E-Mails gefunden:")
for email in emails:
    print(f"  {email}")

Mit pandas (XLSX und CSV)

Python
import re
import pandas as pd

def extract_emails_with_pandas(file_path):
    """E-Mails aus Excel- oder CSV-Dateien mit pandas extrahieren."""
    email_pattern = re.compile(
        r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
    )

    # Datei einlesen (CSV oder Excel)
    if file_path.endswith('.csv'):
        df = pd.read_csv(file_path, dtype=str, on_bad_lines='skip')
    else:
        df = pd.read_excel(file_path, dtype=str, sheet_name=None)
        # Bei mehreren Blaettern alle zusammenfuegen
        if isinstance(df, dict):
            df = pd.concat(df.values(), ignore_index=True)

    emails = set()
    for col in df.columns:
        for value in df[col].dropna():
            found = email_pattern.findall(str(value))
            emails.update(e.lower() for e in found)

    return sorted(emails)

# Verwendung
emails = extract_emails_with_pandas("daten.xlsx")
print(f"{len(emails)} E-Mails extrahiert")

# Als CSV speichern
with open("extrahierte_emails.csv", "w") as f:
    f.write("email\n")
    for email in emails:
        f.write(f"{email}\n")

Tipp: Installiere die benötigten Pakete mit pip install openpyxl pandas. Für XLS-Dateien (das ältere Format) benötigst du zusätzlich pip install xlrd.

E-Mail Marketing Tool

Arbeiten mit CSV-Dateien

CSV-Dateien (Comma-Separated Values) sind einfacher als Excel-Dateien, bringen aber eigene Herausforderungen mit sich:

Trennzeichen erkennen

Nicht alle CSV-Dateien verwenden ein Komma als Trennzeichen. In deutschen Exporten wird häufig ein Semikolon verwendet, da das Komma als Dezimaltrennzeichen dient. Gelegentlich kommen auch Tabulatoren oder Pipes (|) vor.

Python – Trennzeichen automatisch erkennen
import csv

def detect_delimiter(file_path):
    """Das Trennzeichen einer CSV-Datei automatisch erkennen."""
    with open(file_path, 'r', encoding='utf-8') as f:
        sample = f.read(4096)
        sniffer = csv.Sniffer()
        dialect = sniffer.sniff(sample)
        return dialect.delimiter

# Verwendung
delimiter = detect_delimiter("export.csv")
print(f"Erkanntes Trennzeichen: '{delimiter}'")

Zeichenkodierung beachten

Deutsche Umlaute (ä, ö, ü, ß) können Probleme verursachen, wenn die Datei nicht in UTF-8 gespeichert ist. Viele ältere Windows-Exporte verwenden die Kodierung cp1252 oder latin-1. Probiere verschiedene Kodierungen, falls die Datei nicht korrekt gelesen wird:

Python
import pandas as pd

# Verschiedene Kodierungen versuchen
for encoding in ['utf-8', 'cp1252', 'latin-1', 'iso-8859-1']:
    try:
        df = pd.read_csv("export.csv", encoding=encoding, sep=';')
        print(f"Erfolgreich gelesen mit {encoding}")
        break
    except (UnicodeDecodeError, pd.errors.ParserError):
        continue

Tipps für die Praxis

Große Dateien verarbeiten

Bei Dateien mit Hunderttausenden oder Millionen von Zeilen kann der Speicherverbrauch zum Problem werden. Verwende in diesen Fällen:

  • Chunk-basiertes Lesen mit pandas: pd.read_csv("datei.csv", chunksize=10000) liest die Datei in Blöcken von 10.000 Zeilen.
  • read_only-Modus in openpyxl: load_workbook(file, read_only=True) lädt nicht die gesamte Datei in den Speicher.
  • Nur relevante Spalten laden: Wenn du weißt, in welcher Spalte die E-Mails stehen, lade nur diese: pd.read_csv("datei.csv", usecols=["email"]).

Deduplizierung

Doppelte E-Mail-Adressen kommen in Exporten häufig vor. Wichtig ist, beim Vergleich die Groß-/Kleinschreibung zu ignorieren, da Max@Beispiel.de und max@beispiel.de dieselbe Adresse sind. Wandle alle Adressen in Kleinbuchstaben um, bevor du Duplikate entfernst:

Python
emails = [e.lower() for e in raw_emails]
unique_emails = sorted(set(emails))
print(f"{len(raw_emails)} gefunden, {len(unique_emails)} eindeutige")

Datenbereinigung

Extrahierte E-Mail-Adressen sollten vor der Weiterverwendung bereinigt werden:

  • Leerzeichen entfernen: Führende und abschließende Leerzeichen mit strip() entfernen.
  • Ungültige Zeichen prüfen: Sonderzeichen wie <, > oder Zeilenumbrüche können in die Adresse gerutscht sein.
  • Domain-Validierung: Prüfe, ob die Domain tatsächlich existiert, um Tippfehler wie @gmial.com oder @goole.com zu erkennen.
  • Wegwerf-Adressen filtern: Domains wie mailinator.com oder tempmail.de deuten auf Wegwerf-Adressen hin, die möglicherweise herausgefiltert werden sollten.

E-Mails aus Excel sofort extrahieren

Lade deine XLSX- oder CSV-Datei hoch und erhalte alle E-Mail-Adressen in Sekunden – kostenlos und sicher in deinem Browser.

E-Mail Extractor öffnen

Empfehlung

Verschicke sofort und sicher günstige Newsletter über rapidmail.
DD
Über den Autor

Daniel Dorfer war fast vier Jahre im technischen Support bei GMX, einem der größten deutschen E-Mail-Anbieter, und knapp zwei Jahre bei united domains, einem führenden Domain-Hoster und Registrar. Er ist Gründungsmitglied des KIBC (KI Business Club). Diese Website wurde vollständig mit Hilfe von Claude Code (Opus 4.6) von Anthropic erstellt.

Checkdomain