Rechnungen von PDF in Excel: eine geprüfte Tabelle
Rechnungen von PDF in Excel zu übertragen klingt nach einer kleinen Aufgabe. Sie haben einen Ordner voller PDF-Rechnungen. Jeder Lieferant verwendet ein eigenes Layout, eigene Bezeichnungen und eine eigene Art, Daten und Beträge zu schreiben. Sie brauchen eine Tabelle: Rechnungsnummer, Datum, Lieferant, Netto, MwSt., Gesamt. Und Sie müssen ihr vertrauen können.
Per Hand abtippen funktioniert bei fünf Rechnungen. Bei fünfzig beginnen die Fehler: ein Komma als Tausendertrennzeichen gelesen, ein Datum verdreht, eine Summe, die von Anfang an nie gestimmt hat.
Drei Wege zum Ziel
| Weg | Gut geeignet für | Achtung bei |
|---|---|---|
| Excel „Daten abrufen → Aus PDF“ (Excel für Microsoft 365 unter Windows) | wenige Rechnungen mit sauberen Tabellen | jedes Layout braucht eigene Schritte; nichts prüft die Summen |
| Ein Online-Konverter | eine einmalige Datei | wohin Ihre Rechnungen gesendet und gespeichert werden; das Ergebnis muss trotzdem geprüft werden |
| Ein kleines Skript | viele Rechnungen, verschiedene Lieferanten, jeden Monat | es muss einmal für Ihre Layouts eingerichtet werden |
Wenn Sie monatlich ein paar Rechnungen von einem Lieferanten erhalten, reicht Excel. Sobald mehrere Lieferanten dazukommen und es jeden Monat passiert, lohnt sich ein Skript: Sie definieren die Regeln einmal und führen sie immer wieder aus.
Wie ein gutes Ergebnis aussieht
Eine Zeile pro PDF, dieselben Spalten für jeden Lieferanten, Daten in einem Format (2026-09-03), Beträge als schlichte Zahlen (1240.00) – und eine zusätzliche Spalte: zu prüfen.
Diese letzte Spalte ist die wichtigste. Ein guter Prozess rät nicht. Hat eine Rechnung keine Nummer oder ergibt Netto plus MwSt. nicht den Gesamtbetrag, bleibt die Zeile wie gedruckt und wird markiert. Ein Mensch entscheidet.
So funktioniert der Skript-Ansatz
- Text aus jedem PDF lesen. Rechnungen aus Buchhaltungssoftware enthalten echten Text, den eine Bibliothek wie
pypdfauslesen kann. - Jedes Feld über seine Bezeichnungen finden. Dasselbe Feld hat viele Namen:
Invoice No:,Facture n°,Rechnungsnummer;Subtotal,Total HT,Nettobetrag. Sie führen pro Feld eine kurze Liste der Bezeichnungen. - Zahlen und Daten vereinheitlichen.
1,240.00,1 240,00 €und180,00 EURsind alles Beträge;14/09/2026und22.09.2026sind beides Daten. Legen Sie die Reihenfolge Tag/Monat fest, bevor Sie beginnen. - Die Rechnung prüfen. Netto plus MwSt. muss auf den Cent dem Gesamtbetrag entsprechen.
- Markieren, nicht korrigieren. Fehlende Nummer, unlesbares Datum, eine Summe, die nicht aufgeht – die Zeile landet auf der Prüfliste.
Eine minimale Version der Schritte 1 und 4:
from pypdf import PdfReader
def pdf_text(path):
return "\n".join(page.extract_text() or "" for page in PdfReader(path).pages)
def totals_ok(net, vat, total):
return round(net + vat, 2) == round(total, 2)
Was wir in einem Testdatensatz gesehen haben
Wir haben eine kleine Demo mit sechs erfundenen Rechnungen von drei Lieferanten gebaut, mit englischen, französischen und deutschen Bezeichnungen. Zwei davon enthielten eingebaute Probleme: Eine Summe passte nicht zu ihren Positionen, eine Rechnung hatte keine Nummer. Das Skript erzeugte eine Tabelle mit vier sauberen Zeilen und markierte genau diese zwei zur Prüfung.
Das ist ein Test mit erfundenen Daten, kein Versprechen für Ihre Rechnungen. Echte Ordner bringen ihre eigenen Überraschungen mit – deshalb existiert die Prüfspalte.
Typische Fallen beim Übertragen von PDF-Rechnungen nach Excel
- Dezimalkomma oder Dezimalpunkt.
1.240,00und1,240.00sind derselbe Betrag;1,240kann beides sein. Legen Sie die Regel pro Lieferant fest. - Tag und Monat.
03/04/2026ist in Frankreich der 3. April und in den USA der 4. März. Vereinbaren Sie die Reihenfolge, bevor Sie irgendetwas ausführen. - Mehrere MwSt.-Sätze auf einer Rechnung. Eine Netto- und eine MwSt.-Spalte reichen nicht; führen Sie eine Zeile pro Satz oder eine Summe mit Vermerk.
- Gutschriften. Sie sollten als negative Beträge erscheinen, nicht als zweite Rechnung, die Ihre Ausgaben verdoppelt.
- Währung. Rechnet ein Lieferant in einer anderen Währung, behalten Sie die Währungsspalte und rechnen Sie später um – nie stillschweigend.
Ein Fünf-Minuten-Check, bevor Sie der Tabelle vertrauen
- Die Zahl der Zeilen entspricht der Zahl der PDFs.
- Die Summe der Gesamtspalte stimmt mit dem überein, was Ihre Buchhaltung oder Bank für denselben Zeitraum zeigt.
- Keine Rechnungsnummer erscheint doppelt.
- Öffnen Sie drei zufällige Rechnungen und vergleichen Sie sie mit ihren Zeilen.
- Jede Zeile auf der Prüfliste hat eine Entscheidung: von Hand korrigiert oder so bestätigt, wie sie ist.
Grenzen, die Sie kennen sollten
- Scans sind Bilder. Sie brauchen zuerst Texterkennung (OCR), und erkannte Ziffern müssen geprüft werden.
- Neue Layouts müssen mit ihren Bezeichnungen ergänzt werden. Meist schnell, aber jemand muss es tun.
- Ungewöhnliche Zahlenformate (zum Beispiel drei Stellen nach dem Komma) müssen vereinbart werden, nicht geraten.
Selber machen oder abgeben
Wenn Sie mit Python vertraut sind, reichen die Schritte oben für den Anfang. Die Demo mit erfundenen Rechnungen finden Sie auf unserer Arbeitsseite. Wenn Sie lieber einen Ordner schicken und eine geprüfte Tabelle mit einer Liste dessen zurückbekommen möchten, was Ihr Blick braucht, ist das unser Service Dokumente zu Daten. Sind die Dateien vertraulich, kann die Verarbeitung auf Ihrem oder unserem Rechner in der EU bleiben – siehe Private KI ohne Cloud.
Fragen
Können gescannte Rechnungen genauso gelesen werden?
Nicht direkt. Ein Scan ist ein Bild von Papier, der Text muss erst erkannt werden (OCR). Danach gelten dieselben Regeln, aber jede erkannte Zahl verdient eine Prüfung.
Was passiert, wenn eine Rechnung keine Nummer hat oder die Summen nicht aufgehen?
Das sollte nicht stillschweigend korrigiert werden. Die Zeile bleibt wie gedruckt und wird markiert, damit ein Mensch entscheidet.
Verlassen die Rechnungen meinen Computer?
Mit einem Skript nein: es läuft dort, wo Ihre Dateien liegen. Bei einem Online-Konverter prüfen Sie, wohin die Dateien gesendet und aufbewahrt werden – Rechnungen enthalten Kundendaten.