Die Zelle A1 enthält einen dynamischen Pfad.
Diesen Pfad möchte ich jetzt 1zu1 als Quelle in Power query übergeben.
Hat hier jemand eine Idee.
Gruß kili_jr2
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}
in
Quelle
funktioniert aber nicht :-(
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}[Content],
Json = Json.Document(Web.Contents(Quelle{0}[Column1]))
in
Json
sollte eher passen. Dafür steht in A1 nur noch
let
Quelle = Json.Document(Web.Contents(Excel.CurrentWorkbook(){[Name="Pfad"]}[Content]{0}[Column1]))
in
Quelle
Oder Schritt für Schritt auseinander:
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}[Content],
Column1 = Quelle{0}[Column1],
Json = Json.Document(Web.Contents(Column1))
in
Json
VG
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}[Content],
Json = Json.Document(Web.Contents(Quelle{0}[Column1])),
#"In Tabelle konvertiert" = Table.FromList(Json, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Hinzugefügter Index" = Table.AddIndexColumn(#"In Tabelle konvertiert", "Index", 0, 1, Int64.Type),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Hinzugefügter Index", "Benutzerdefiniert", each Table.AddIndexColumn(Table.FromList([Column1], Splitter.SplitByNothing(), null, null, ExtraValues.Error),"Index",1)),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"Column1"}),
#"Erweiterte Benutzerdefiniert" = Table.ExpandTableColumn(#"Entfernte Spalten", "Benutzerdefiniert", {"Column1", "Index"}, {"Benutzerdefiniert.Column1", "Benutzerdefiniert.Index"}),
#"Pivotierte Spalte" = Table.Pivot(Table.TransformColumnTypes(#"Erweiterte Benutzerdefiniert", {{"Benutzerdefiniert.Index", type text}}, "de-CH"), List.Distinct(Table.TransformColumnTypes(#"Erweiterte Benutzerdefiniert", {{"Benutzerdefiniert.Index", type text}}, "de-CH")[Benutzerdefiniert.Index]), "Benutzerdefiniert.Index", "Benutzerdefiniert.Column1")
in
#"Pivotierte Spalte"
cu
Sub Runna()
Dim burl As String
Dim endpoint As String
Dim dataquery As String
Dim keys As keys
Dim signature As String
Dim url As String
Let burl = "https://api.binance.com"
Let endpoint = "/api/v3/order"
Let dataquery = "symbol=BNBTRY&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.004&price=4500&recvWindow=>20000×tamp=" & DateDiff("s", "1/1/1970 00:00:00", Now() - 1 / 24)
Let keys.akey = "your_api_key_here"
Let keys.skey = "your_secret_key_here"
Let signature = HMACSHA256(dataquery, keys.skey)
Let url = burl & endpoint & "?" & dataquery & "&signature=" & signature
Set m_x = New cXMLHTTPEV
With m_x.MyXMLRequest
Call .Open("POST", url, True)
Call .setRequestHeader("X-MBX-APIKEY", keys.akey)
Call .send
End With
End Sub
Um einen dynamischen Pfad in Power Query zu verwenden, kannst Du die folgenden Schritte befolgen:
Pfad in Zelle definieren: Trage den gewünschten Pfad oder die URL in eine Zelle ein, z.B. A1. Benenne diese Zelle als "Pfad".
Power Query öffnen: Wähle im Excel-Menü "Daten" > "Abfrage abrufen" > "Aus anderen Quellen" > "Leere Abfrage".
Abfrage-Editor öffnen: Im Power Query Editor kannst Du nun den M-Code eingeben.
M-Code verwenden: Verwende den folgenden Code, um die Quelle dynamisch zu setzen:
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}[Content],
Json = Json.Document(Web.Contents(Quelle{0}[Column1]))
in
Json
Daten laden: Klicke auf "Schließen & Laden", um die Daten in dein Excel-Arbeitsblatt zu laden.
Fehler: "Anmeldung erforderlich": Wenn Du beim Abrufen der Daten die Meldung erhältst, dass eine Anmeldung erforderlich ist, klicke einfach auf "anonym".
Unerwartete Ergebnisse: Wenn Du nicht die erwarteten Daten erhältst, überprüfe, ob der Pfad in der Zelle korrekt ist und dass die API oder Quelle verfügbar ist.
Listen in Listen: Um das Problem von "Listen in Liste" zu beheben, kannst Du die Daten mit der Funktion Table.FromList
umwandeln. Hier ein Beispiel:
let
Quelle = Excel.CurrentWorkbook(){[Name="Pfad"]}[Content],
Json = Json.Document(Web.Contents(Quelle{0}[Column1])),
Tabelle = Table.FromList(Json, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
Tabelle
Eine andere Methode zur Verwendung eines dynamischen Pfades in Power Query ist die Nutzung von Parametern. Du kannst einen Parameter aus einer Zelle erstellen, um den Pfad dynamisch zu ändern:
let
Quelle = Json.Document(Web.Contents(Parametername))
in
Quelle
Hier sind einige praktische Anwendungen für die Nutzung einer dynamischen Quelle in Power Query:
Daten von APIs abrufen: Du kannst dynamische Pfade nutzen, um Daten von verschiedenen APIs zu importieren, z.B. von Binance oder anderen Finanzdaten-Quellen.
Dynamische Ordnerabfragen: Du kannst auch eine dynamische Ordnerabfrage erstellen, um alle Dateien in einem bestimmten Ordner zu laden. Verwende dazu den M-Code:
let
Quelle = Folder.Files(Excel.CurrentWorkbook(){[Name="Pfad"]}[Content]{0}[Column1])
in
Quelle
Verwendung von Variablen: Nutze Variablen, um deinen M-Code übersichtlicher zu gestalten und um mehrfach verwendbare Werte zu speichern.
Bedingte Abfragen: Implementiere bedingte Logik, um die Quelle basierend auf bestimmten Kriterien zu wechseln.
Performance optimieren: Achte darauf, dass Deine Abfragen effizient sind, um die Ladezeiten zu minimieren.
1. Wie kann ich einen Pfad als Parameter in Power Query nutzen?
Du kannst einen Parameter erstellen, der auf den Wert einer Zelle verweist. Dadurch kannst Du den Pfad dynamisch ändern, ohne den M-Code anpassen zu müssen.
2. Funktioniert dieser Ansatz in allen Excel-Versionen?
Dieser Ansatz sollte in den neueren Versionen von Excel (Excel 2016 und später) funktionieren, die Power Query unterstützen. Achte darauf, dass Du die aktuelle Version verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen