Letzte Schritte/ Last modification
Wenn Ihr nun noch Zeit und Lust habt könnt Ihr auch mit eurem Geschenk spielen bzw. die Parameter für die einzelenen Variablen erstellen (Wenn es denn welche gibt). Eine gibt es auf jeden Fall und das ist die des Tabellen Codes. Um diese zu dynamisieren, damit ihr später einfacher zwischen den Statistiken wechseln könnt, müsst ihr nur einen Parameter mit dem Tabellen Code anlegen. Diesen ersetzt ihr dann später im Quellcode.
If you still have time and desire you can also play with your gift or create the parameters for the individual variables (If there are any). There is one in any case and that is the one of the table code. To make it dynamic, so that you can easily switch between the statistics later, you just have to create a parameter with the table code. You can replace it later in the source code.
Dynamischer Tabellen Code/ Dynamic table code
Als letztes könnt ihr nun wie folgt den Parameter erstellen: Öffne den Parameter Manager – Erstelle einen Parameter – Füge den erstellten Parameter in die Quelle unter den Angewendeten Schritten ein – fertig!
At last you can create the parameter as follows: Open the Parameter Manager – Create a parameter – Add the created parameter to the source under the Applied steps – done!
Code with Parameter
Change YOURUSER & YOURSPASSWORD (See create account)
let
Source = Json.Document(Web.Contents("https://www-genesis.destatis.de/genesisWS/rest/2020/data/table?
username=YOURUSER&
password=YOURPASSWORD&
name=" &
Statistiknummer & "=&area=all&compress=false&transpose=false&startyear=&endyear=×lices=®ionalvariable=®ionalkey=&classifyingvariable1=&classifyingkey1=&classifyingvariable2=&classifyingkey2=&classifyingvariable3=&classifyingkey3=&job=false&stand=01.01.1970&language=de")),
#"Converted to Table" = Table.FromRecords({Source}),
#"Expanded Object" = Table.ExpandRecordColumn(#"Converted to Table", "Object", {"Content", "Structure"}, {"Content", "Structure"}),
Content = #"Expanded Object"{0}[Content],
#"Split Text" = Text.Split(Content, "#(lf)"),
#"Converted to Table1" = Table.FromList(#"Split Text", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Entfernte oberste Zeilen" = Table.Skip(#"Converted to Table1",7),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Entfernte oberste Zeilen", [PromoteAllScalars=true]),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header",{{";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;Dezember", type text}}),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Geänderter Typ", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;Dezember", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;Deze", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.1", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.2", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.3", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.4", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.5", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.6", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.7", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.8", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.9", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.10", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.11", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.12", ";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.13"}),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;Deze", type text}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.1", type text}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.2", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.3", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.4", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.5", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.6", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.7", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.8", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.9", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.10", type number}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.11", type text}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.12", type text}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.13", type text}}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Geänderter Typ1",{{";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;Deze", "Gewerbliche Produkte"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.1", "Produktnamen"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.2", "Januar"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.3", "Februar"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.4", "März"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.5", "April"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.6", "Mai"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.7", "Juni"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.8", "Juli"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;De.9", "August"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.10", "September"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.11", "Oktober"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.12", "November"}, {";;Januar;Februar;März;April;Mai;Juni;Juli;August;September;Oktober;November;D.13", "Dezember"}}),
#"Entpivotierte Spalten" = Table.UnpivotOtherColumns(#"Umbenannte Spalten", {"Gewerbliche Produkte", "Produktnamen"}, "Attribut", "Wert"),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Entpivotierte Spalten",{{"Attribut", "Monate"}}),
#"Geänderter Typ2" = Table.TransformColumnTypes(#"Umbenannte Spalten1",{{"Wert", type number}}),
#"Entfernte Fehler" = Table.RemoveRowsWithErrors(#"Geänderter Typ2", {"Wert"}),
#"Umbenannte Spalten2" = Table.RenameColumns(#"Entfernte Fehler",{{"Gewerbliche Produkte", "Gewerbliche Produktnummer"}})
in
#"Umbenannte Spalten2"
Hallo Kathrin,
vielen Dank für diesen hilfreichen Post!
Deine Anleitung funktionert super um kleinere Destatis Tabellen direkt in Power BI zu importieren.
Leider funktioniert es nicht um größere Tabellen (z.B. 51000-0017) zu importieren, die im Batchbetrieb über die RESTful/JSON API angefordert werden.
Hast du vielleicht Vorschläge und Ideen um möglichst automatisiert größere Destatis Tabellen in Power BI zu importieren?
Vielen Dank im Voraus für dein Feedback!
Jan
P.S.: Meinen Code findest du auf https://github.com/janstrauss1/DestatisData-to-PowerBI/blob/main/BigTables_in_batch.md#aus–und-einfuhr-au%C3%9Fenhandel-deutschland-monate-land-warenverzeichnis-8-steller