Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Power Query - alte Werte behalten

Power Query - alte Werte behalten
14.03.2023 13:51:35
Excelbitionist
Liebe Forist:innen,
ich habe schon öfter hier nachgeschaut und gute Antworten auf Probleme gefunden, und wollte hiermit gleich einmal Danke sagen!
Heute habe ich ein Thema, welches ich zumindest so nicht gefunden habe und hoffe auf einen Hinweis, wie das zu beheben ist:
Ich habe mit PowerQuery eine Abfrage auf eine Seite mit Zinssätzen (https://www.newyorkfed.org/markets/reference-rates/sofr-averages-and-index). Dort werden aber immer nur die letzten 25 Werte abfragebereit zur Verfügung gestellt.
Ich habe nun im Wesentlichen zwei Probleme:
1. Da ich die Daten bspw. von Beginn des Jahres an in einer Tabelle haben möchte, könnte ich diese auf der o.g. Seite im unteren Bereich eingrenzen und abfragen und in Excel exportieren. Dann müsste ich das nur noch mit der (dynamischen) Abfrage verknüpfen. Das würde ich vielleicht sogar noch hinbekommen, aber damit kommen wir zu meinem weitaus größeren, zweiten Problem:
2. Wenn ich morgen abfrage, ist der erste Eintrag in der Liste (der nunmehr 26igletzte Eintrag) nicht mehr abrufbar. Auf die Art und Weise kann ich keine Historie aufbauen.
Meine Idee war, dass ich eine Kombination aus Werten (Historische Daten) habe, die bei jeder Abfrage um die Differenz (also die bislang noch nicht in der Tabelle enthaltenen Werte) ergänzt wird.
Ich habe das mit Append versucht, bin aber leider gescheitert.
Hat jemand eine Idee?
Vielen Dank im Voraus und viele Grüße
Excelbitionist

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Power Query - alte Werte behalten
14.03.2023 14:31:23
ChrisL
Hi
Wenn du mal auf XML drückst sieht du einen Link, welcher als Parameter startPosition=0 enthält. Wenn du den Parameter änderst, kannst du auch auf ältere Daten zugreifen.
z.B. https://www.youtube.com/watch?v=QHX_bb9OGe4
Somit musst du die alten Daten nicht speichern (wäre blöd, wenn du mal im Urlaub bist). Du holst dir einfach so viel Historie wie du gerne möchtest. Der Wert 500 in der Hauptabfrage lässt sich bei Bedarf noch erhöhen.
GetData
(index as number) as table =>
let
Quelle = Xml.Tables(Web.Contents("https://markets.newyorkfed.org/read?productCode=50&eventCodes=525&limit=25&startPosition=" & Text.From(index) & "&sort=postDt:-1&format=xml")),
    Table0 = Quelle{0}[Table],
    Table1 = Table0{0}[Table],
    #"Geänderter Typ" = Table.TransformColumnTypes(Table1,{{"effectiveDate", type date}, {"type", type text}, {"average30day", type number}, {"average90day", type number}, {"average180day", type number}, {"index", type number}})
in
    #"Geänderter Typ"
Hauptabfrage
let
    Quelle = List.Generate(() => 0, each _  500, each _ + 25),
    #"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Aufgerufene benutzerdefinierte Funktion" = Table.AddColumn(#"In Tabelle konvertiert", "GetData", each GetData([Column1])),
    #"Erweiterte GetData" = Table.ExpandTableColumn(#"Aufgerufene benutzerdefinierte Funktion", "GetData", {"effectiveDate", "type", "average30day", "average90day", "average180day", "index", "revisionIndicator"}, {"effectiveDate", "type", "average30day", "average90day", "average180day", "index", "revisionIndicator"})
in
    #"Erweiterte GetData"
cu
Chris
Anzeige
AW: Power Query - alte Werte behalten
14.03.2023 14:41:45
Rudi
Hallo,
1. erstell dir eine PQ-Abfrage auf die vorhandene Tabelle und nenne sie 'alteDaten'. Nur Verbindung erstellen.
2. In 'Abfragen und Verbindungen' Rechtsklick auf 'alteDaten'. Anfügen und die Web-Abfrage als zweite Tabelle auswählen.
3. Spalte Date anklicken und unter Zeilen entfernen Duplikate entfernen auswählen.
4. Die neue Abfrage (Anfügen1 ?) ausführen.
5. Den Namen der neu erstellten Tabelle (wahrscheinlich 'Anfügen1') ermitteln und in der Abfrage 'alteDaten' im Schritt Quelle eintragen.
Alle Tabellen außer der letzten (Anfügen1) kannst/ solltest du jetzt löschen.
Gruß
Rudi
Anzeige
AW: Power Query - alte Werte behalten
15.03.2023 10:16:37
Excelbitionist
Lieber Chris,
lieber Rudi,
vielen Dank für die schnelle Hilfe und sorry für die späte Antwort meinerseits.
@Chris:
Ich habe überall gesucht, aber leider nicht gefunden wo ich auf XML klicken soll... Ich stehe glaube ich auf dem Schlauch, ich habe die Datei im Format xlsx erstellt und nicht mit Makros.
Oder meinst Du den erweiterten Editor (analog zum von Dir verlinkten Video)? In dem Fall sind leider keine Parameter zu sehen, lediglich die Anpassungen, die ich vorgenommen habe:
let
Quelle = Web.Page(Web.Contents("https://www.newyorkfed.org/markets/reference-rates/sofr-averages-and-index")),
Data0 = Quelle{0}[Data],
#"Sortierte Zeilen" = Table.Sort(Data0,{{"DATE", Order.Ascending}}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Sortierte Zeilen",{{"DATE", type text}, {"30-DAY AVERAGE (%)", type number}, {"90-DAY AVERAGE (%)", type number}, {"180-DAY AVERAGE (%)", type number}, {"INDEX", type number}}),
Divisionsspalte = Table.TransformColumns(#"Geänderter Typ", {{"30-DAY AVERAGE (%)", each _ / 100000, type number}}),
Divisionsspalte1 = Table.TransformColumns(Divisionsspalte, {{"90-DAY AVERAGE (%)", each _ / 100000, type number}}),
Divisionsspalte2 = Table.TransformColumns(Divisionsspalte1, {{"180-DAY AVERAGE (%)", each _ / 100000, type number}}),
Divisionsspalte3 = Table.TransformColumns(Divisionsspalte2, {{"INDEX", each _ / 100000000, type number}}),
#"Geänderter Typ mit Gebietsschema" = Table.TransformColumnTypes(Divisionsspalte3, {{"DATE", type date}}, "en-US"),
#"Angefügte Abfrage" = Table.Combine({#"Geänderter Typ mit Gebietsschema", #"Geänderter Typ mit Gebietsschema"}),
#"Entfernte Duplikate" = Table.Distinct(#"Angefügte Abfrage", {"DATE"})
in
#"Entfernte Duplikate"
Ich hatte lediglich den von mir genannten Link als Quelle (Daten->neue Abfrage ->andere Quellen->aus dem Web angelegt und damit nur den oberen Teil auf der Zielseite abfragen können, auf den unteren Part bei der FED-Seite (auf der man ein Datum eingeben kann) kam ich nicht drauf).
@Rudi:
Ich bin leider nicht im Homeoffice und aufgrund der Firewall-Einstellungen (proxy meldet '407') kann ich den Abruf frühestens heute Abend wieder zuhause testen.
Ich bräuchte aber dennoch ja irgendwie die Daten von einem bestimmten Startzeitpunkt aus (unabh. davon, ob für zukünftige Abfragen die alten (und nicht mehr in der neuen Abfrage enthaltenen) Daten erhalten bleiben.
Vielen Dank und viele Grüße
Joe
Anzeige
AW: Power Query - alte Werte behalten
15.03.2023 10:27:39
ChrisL
Hi
In dem von dir angegebenen Link, rechts oben vom Tabellenbereich, "Export to:"
Bei der Gelegenheit fällt mir auf, dass der Link nicht nur die startPosition als Parameter hat, sondern mittels Anpassung von limit kannst du gleich alle Daten beziehen. Meine PQ von vorhin brauchst du daher nicht mehr.
https://markets.newyorkfed.org/read?productCode=50&eventCodes=525&limit=25&startPosition=0&sort=postDt:-1&format=xlsx
z.B. geht zurück bis ins Jahr 2020
https://markets.newyorkfed.org/read?productCode=50&eventCodes=525&limit=10000&startPosition=0&sort=postDt:-1&format=xlsx
cu
Chris
Anzeige
AW: Power Query - alte Werte behalten
15.03.2023 11:42:28
Excelbitionist
Hi Chris,
vielen Dank - jetzt hab ich es (hoffentlich) verstanden. Leider kann ich das im Firmennetzwerk nicht ausprobieren, werde das aber heute Abend versuchen. Mit der Anpassung des Limits habe ich ja 'genug Reserve', von daher sollte das 'Problem', dass alte und ggf. noch benötigte Werte nicht mehr verfügbar sind, obsolet sein.
Und wenn nicht versuche ich mich mal mit einer Kombination Deines und Rudi's Ansatzes.
Vielen Dank einstweilen schon einmal und viele Grüße
Joe
AW: Power Query - alte Werte behalten
16.03.2023 10:48:08
Excelbitionist
Lieber Chris,
grundsätzlich funktioniert das sehr gut, die Abfrage liefert die letzten x Treffer.
Allerdings kommt jetzt beim Aktualisieren der bestehenden Abfrage in meiner Datei (in der ich ja die Abfragewerte noch weiterverarbeite) nun ein Fenster mit der Frage, ob ich die Datei öffnen oder speichern möchte.
Das Ergebnis ist dann, dass die Abfrage in einer neuen Datei geöffnet wird (und nicht in meiner vorhandenen Datei).
Hast Du hierfür vielleicht auch noch eine Idee?
Danke vorab und viele Grüße
Joe
Anzeige
AW: Power Query - alte Werte behalten
16.03.2023 18:16:35
ChrisL
Hi
Dann nimm das XML Format.
cu
Chris

251 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige