Power Query kann seit einiger Zeit auch PDFs einlesen. Das klappt mal mehr und mal weniger gut. Manchmal kommen die Inhalte nicht korrekt an, beispielsweise sind Daten in den Zeilen versetzt. Im folgenden Power Query-Rezept zeige ich, wie verrutschte Daten automatisiert den passenden Zeilen zugeordnet werden.
Links das Original mit einer vertikalen Verschiebung nach dem Import aus einer PDF und rechts das mit Power Query korrigierte Ergebnis ohne vertikalen Versatz
Was ist das Problem? Wie lässt es sich lösen?
- Die Daten in der Spalte Artikelnummer sind um eine Zeile nach unten verrutscht.
- Demzufolge müssen die Artikelnummern aus der Folgezeilen den Daten darüber zugeordnet werden.
Diese Panne ist ärgerlich und auf den ersten Blick sieht das nach einem mühsamen manuellen Nachbessern aus. Doch dieser Eindruck täuscht, denn mit Hilfe von zwei Indexspalten lässt sich das Problem in wenigen Schritten lösen.
Die PDF einlesen und die gewünschte Seite oder Tabelle wählen
Zunächst einmal wird die Seite oder die Tabelle aus der PDF importiert und der auszuwertende Teil der PDF für den Import ausgewählt. Dazu gehe ich wie folgt vor:
- Über Daten > Daten abrufen > Aus Datei > Aus PDF lese ich die PDF-Datei in Power Query ein.
Den Befehl zum Einlesen von Daten aus einer PDF aufrufen
- Im Navigationsfenster wähle ich – wie unten gezeigt – die Tabelle oder die Seite (Page) aus.
In der Vorschau ist schon zu erkennen, dass Inhalte versetzt sind
- Falls sich die Überschriften noch in der ersten Zeile des Datenbereiches befinden, werden diese über Start > Erste Zeile als Überschrift verwenden angehoben.
- Rechts im Aufgabenbereich benenne ich die Abfrage um in Preisliste.
Zwischenfazit: Nach dem Einlesen und dem Versäubern der nicht benötigten Dinge sind zwar alle Daten vorhanden, doch die Artikelnummern sind um eine Zeile nach unten versetzt.
Das Problem: Nach dem Einlesen haben die Artikelnummern einen Versatz von einer Zeile nach unten
Mit zwei Index-Hilfsspalten die Inhalte korrekt zuordnen
- Um nun jede Artikelnummer aus der Folgezeile der vorhergehenden Zeile zuzuordnen, nutze ich zwei Index-Hilfsspalten.
- Sie bilden die Basis für einen Join der Tabelle mit sich selbst.
Das hört sich zwar kompliziert an, ist es aber nicht. So geht’s:
- Ich erstelle über Spalte hinzufügen > Indexspalte > Von 1 eine erste Indexspalte, die bei 1 beginnt. Sie erhält automatisch den Namen Index.
- Dies wiederhole ich für eine zweite Indexspalte, die aber bei 0 beginnt. Dazu wähle ich die Befehlsfolge Spalte hinzufügen > Indexspalte > Von 0. Die neue Spalte erhält automatisch den Namen Index.1.
Zwei Hilfsspalten mit Indizes, einmal von 1 und einmal von 0 beginnend, sorgen für die passende Zuordnung der Artikelnummern zur jeweilen Zeile
- Nun joine ich die Abfrage mit sich selbst über die Befehlsfolge Start > Abfragen zusammenführen > Abfragen zusammenführen und wähle die Abfragen und die zu kombinierenden Spalten wie in der folgenden Abbildung aus.
Beim Joinen dienen die beiden Index-Hilfsspalten als Schlüssel für die Zuordnung der Artikelnummern zu ihren jeweiligen Zeilen
- Ich markiere die Spalten ArtikelNr., Index und Index.1. Per Rechtsklick im Spaltenkopf wähle ich Spalten entfernen.
- Nun geht’s ans Auspacken der neuen ArtikelNr. durch Klicken auf den Doppelpfeil in der durch den Join entstandenen Spalte Hinzugefügter Index1.
Die alte Spalte ArtikelNr. wurde entfernt, und stattdessen wird nun eine neue Spalte ArtikelNr. aus der gejointen Tabelle entpackt
- In der neuen Spalte ArtikelNr. wähle ich über den Filterpfeil Leere entfernen, um die Leerzeile unten zu löschen.
- Per Rechtsklick in der Spalte ArtikelNr. wähle ich Verschieben > An den Anfang.
- Nun ist alles an seinem richtigen Platz.
- Als letzten Schritt passe ich noch die Datentypen an.
Die Artikelnummern stehen nun in der richtigen Zeile und die Preisliste wurde damit korrekt aus der PDF ausgelesen
Fazit
Es lassen sich nicht nur Daten aus Spalten auf andere Spalten übertragen. Durch Joinen mit Hilfe von Indexspalten können Daten auch über Zeilen hinweg transferiert werden.
Interessiert an mehr Techniken und Tipps zu Power Query?
Wer sein Wissen zu Power Query systematisch auf- und ausbauen will, kann dazu einen meiner Online-Kurse buchen.
Auf dieser Seite gibt es alle aktuellen Termine.
TIPP: Wer hier im Blog ALLE Rezepte zu Power Query finden möchte, gibt einfach oben rechts in das Suchfeld Power-Query-Rezept ein.
Fehler bei PDF-Import,
Import aus PDF,
Indexspalten,
Power Query Anleitung,
Power Query Kurs,
Power Query Rezept,
Power Query Schulung,
Power Query Seminar,
Power Query Tipp,
Versatz von Zeilen,
Zeile verrutscht,
Zeile versetzt
Über den Autor