ℹ️ aus Datenschutzgründen, ist es mir nicht möglich eine Datei hochzuladen und ich weiss nicht wie ich die Problemstellung in einer Beispieldatei nachstellen könnte.
Ich lade regelmässig ein csv von einer Website mit Daten herunter. Das Problem dabei ist, dass die Daten nicht immer im selben Format in dem csv Datei vorhanden sind, was mir Probleme beim Import über PowerQuery macht. Manchmal sind die Spaltenüberschriften anders oder es Spalten fehlen oder neue kommen hinzu. Gerne möchte ich trotz diesem Problem die Daten automatisiert via Power Query in meine Datei laden. Ich nenne die Problemspalte hier "ABC". Es sind aktuell vermutlich 2 Spalten die dasselbe Problem verursachen. Mehrmals konnte ich das csv ohne Probleme importieren und dann plötzlich habe ich den folgenden Spaltenfehler:
Der Fehler lautet:
Expression.Error: Die Spalte "ABC" der Tabelle wurde nicht gefunden.
Details:
ABC
Im PowerQuery habe ich eine Gesamtabfrage die heisst bei mir "Alle Daten". Diese Abfrage besteht aus angefügten Tabellen. Eine Tabelle beinhaltet alle Daten bis 2023 und eine die Daten von 2024. Mein Ziel ist es zukünftig für jedes Kalenderjahr eine Tabelle zu "Alle Daten" anzufügen.
Wie kann ich nun mit diesen wechselnden Spaltenüberschriften/fehlenden Spalten oder neuen Spalten umgehen? Im ersten Schritt des Import 2024 habe ich die Funktion 'Höher gestufte Header' verwendet. Danach habe ich eine Spalte geteilt und die Überschrift dieser neu eingefügten Zeile geändert. Dies führt nicht zum Fehler.
Die Hierarchie sieht wie folgt aus:
Quelle
Höher gestufte Header
Spalte nach Trennzeichen teilen
Umbenannte Spalte
Ersetzter Wert
dann folgen weitere
Der Fehler tritt bei Ersetzter Wert auf. Folgende Abfragen habe ich als Schritt zwischen Umbenannte Spalte und Ersetzter Wert probiert.
Diverse Formeln habe ich bereits ausprobiert wie zum Beispiel:
= try Table.RemoveColumns(#"Umbenannte Spalten", {"ABC"}) otherwise #"Umbenannte Spalten"
= if Table.HasColumns(Benutzerdefiniert1, "ABC")
then Table.SelectColumns(Benutzerdefiniert1, {"ABC"})
else Table.RemoveColumns (Benutzerdefiniert1, {"ABC"})
Vielleicht ist mein Ansatz auch ganz verkehrt und es gibt eine viel bessere Lösung? Ich habe bereits im Internet diverse Hilfestellungen angeschaut und versucht auf mein Beispiel anzuwenden. Bisher konnte ich noch keine Lösung finden und bin darum sehr dankbar, wenn mir jemand weiterhelfen kann. Falls ich etwas ungenau beschrieben habe oder weitere Informationen fehlen, liefere ich diese sehr gerne nach.
Danke und Gruss
M...