Abruf von Daten aus Web in Serie
#31
Hallo Edgar,

gerade da du hier schon seit langer Zeit sehr viel anderen geholfen hast, würde ich dir ja gerne bei deinem ICE-Projekt weiterhelfen. Aber wenn du nicht einmal mitteilst, warum es dir nicht möglich ist. die Abfragen, von oben nach unten, schrittweise, zu durchlaufen, damit du sehen kannst, was da jeweils passiert, ist es mir leider nicht möglich dir zu helfen.
Antworten Top
#32
Hallo ws-53,

aus verschiedenen Gründen, überwiegend gesundheitlicher Art, habe ich mich noch nicht zurückgemeldet. Einer der Gründe ist definitiv, dass mir die erste Version aus #16 vollkommen ausreicht, um die Daten zu erhalten, die ich suche. Ein weiterer Grund ist, dass ich zwar nachvollziehen kann, wie man eine Tabelle erstellt und Schritt für Schritt so umwandelt, wie sie bei Dir aussieht, aber ich verstehe nicht, welchen Schritt ich gehen muß, um statt einer Seite (z.B. zug-ICE_10) alle Seiten abzurufen. Also im Editor diese Zeilen:


Code:
(ICE as text) => let
//      Source              = Web.BrowserContents("https://www.zugfinder.net/de/zug-ICE_10"),
        Source              = Web.BrowserContents(ICE),
 
        Extract_From_Html  = Html.Table(Source, {{"Column1", "TABLE[id='zugdaten']

Im Klartext: Woher kommt die zweite Eintragung bei Source?
Das Durchlaufen der Abfragen ist eher kein Problem.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#33
Mein lieber Edgar,

deine Antwort und Frage, unabhängig davon, ob die die Mappe aus #16 oder #27 nimmst zeigt mir dass die die Abfrage, nicht wie von mir beschrieben, durchgegangen bist, da du ja den Codeausschnitt der aufgerufenen Funktion zeigst.

In der Mappen aus #16 ist es die Abfrage ICE_Auswertung, bzw. die Abfrage ICE_Rohdaten in der Mappe aus #27

In der Mappe aus #16 Zeigt dir dann der Schritt "Merge_Cols" eine Liste (Spalte ICE) der URLs deren Inhalt import werden soll. Und für jede dieser URLs wird dann mit dem Schritt "Call_Func_fx_ICE" die Funktion aufgerufen, mit der dann der Inhalt der einzelnen URLs importiert wird.

Dabei besagt dann der Code:  Table.AddColumn(Merge_Cols, "fx_ICE", each fx_ICE([ICE]))

Das die Funktion "fx_ICE" mit dem Inhalt der Spalte "ICE" aufgerufen werden soll.
Das Ergebnis ist dann die Spalte "fx_ICE", die in jeder Zeile eine Tabelle (Table) mit den Daten des jeweiligen ICE enthält. Diese Spalte wird dann expandiert und zeigt dann alle Daten.

Aber ich würde die Mappe aus #27 verwenden, da diese viel komfortabler ist und dabei auch die Datenbeschaffung von der Datenaufbereitung getrennt ist. 

Die Datenbeschaffung wird dabei durch die Abfrage "ICE-Rohdaten" und die Aufbereitung durch die Abfrage "ICE_Auswertung" durchgeführt.

Aber wenn du nun immer noch meinst, deinen eigenen Weg gehen zu wollen bzw. zu müssen, dann bin ich mit meinem Latein am Ende und weiß dann einfach nicht mehr wie ich dir helfen kann.

Vielleicht gibt es dann aber noch einen anderen Helfer, der die richtige Vorgehensweise, die dir dann eigentlich auch automatisch das Verständnis bringt, besser als ich erklären kann.
Antworten Top
#34
Hi Edgar,

die Frage:

Zitat:
Code:
(ICE as text) => let
//      Source              = Web.BrowserContents("https://www.zugfinder.net/de/zug-ICE_10"),
        Source              = Web.BrowserContents(ICE),
 
        Extract_From_Html  = Html.Table(Source, {{"Column1", "TABLE[id='zugdaten']

Im Klartext: Woher kommt die zweite Eintragung bei Source?

Hatte ich nicht erklärt.

Die Erste Zeile, allerdings ohne die beiden "//" am Zeilenanfang entsteht beim aufzeichnen der Abfrage. Durch die Voranstellung von "//" wird diese Zeile zu einer Kommentarzeile. Ebenso wird in einer Power Query alles zwischen "/*" und "*/" als Kommentar interpretiert.

Ich habe mir es so angewöhnt, dass ich bei Änderungsbedarf, die ursprüngliche Zeile kommentiere um dann die Änderung, als neue Zeile, darunter einfüge. Denn dann kann ich immer sehen, was mal ursprünglich aufgezeichnet wurde und was ich daraus gemacht habe.

Zitat:Das Durchlaufen der Abfragen ist eher kein Problem.

Scheinbar doch!!!

Denn wärst du die genannte Abfrage  von oben nach unten schrittweise durchgegangen, dann hättest du sofort gesehen wie es funktioniert und max. die Frage wegen der 2. Soure-Zeile gestellt, da du nicht wusstest, wie in Power Query Kommentare kenntlich gemacht werden.
Antworten Top
#35
Hi ws-53,

sei etwas nachsichtig mit einem alten Mann (jetzt muß ich auch mal mit dem Alter hausieren gehen  19 ), ich bin eigentlich ein Formelmensch, habe ein wenig Ahnung von VBA, weil die ersten Rechner, die ich hatte, noch mit Basic bearbeitet wurden und bin froh, dass ich die meisten neuen Funktionen in 365 verstehe und anwenden kann. 

Zu PQ habe ich bis jetzt noch nicht so richtig den Zugang gefunden. Bis jetzt bin ich in der Lage, eine Tabelle aufzurufen und zu bearbeiten, so wie Du es mit der Abfrage ICE_10 in #16 gemacht hast.
Auch die Abfrage ICE_Auswertung kann ich bis zum Punkt "Merged Columns" nachvollziehen, aber dann verließen sie ihn, da ich nicht weiß, wie man die Funktion erstellt, die hinter der Abfrage "Invoked Custom Function" steckt.

Zudem ist Excel schon in meinem Berufsleben nur ein Hobby gewesen, mit dem ich mir die Arbeit etwas erleichtert habe. Heute beschränkt sich das Hobby auf meine Finanzplanung, die Mitarbeit in Foren und ab und zu mit so Aufgaben wie hier.

Danke für Deine Geduld, die Du bisher gezeigt hast.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#36
Hi Edgar,

ich habe dir nun mal die Vorgehensweise anhand einiger Screenshots dokumentiert. Ich hoffe, dass es nun verständlicher wird,


Angehängte Dateien
.docx   cef - Abruf von Daten aus dem Web in Serie.docx (Größe: 474,44 KB / Downloads: 6)
Antworten Top
#37
Hi ws-53,

jetzt ist alles klar. Ich habe es nachvollziehen können und soweit verstanden. Danke für Deine Bemühungen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#38
Hi Edgar,

da bin ich nun beruhigt, dass meine Bemühungen nicht vergebens waren. Trotz allem kann ich dir empfehlen, meine Lösung aus #27 zu verwenden, da du mit deren Daten viel bessere Auswertungen machen kannst.
Antworten Top
#39
Hi ws-53,

das Ganze war für mich der Türöffner zu PQ. Jetzt kann ich darauf aufbauen und meine Kenntnisse vertiefen. Im Übrigen spricht mein PQ mittlerweile deutsch:

   
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#40
Zitat:Im Übrigen spricht mein PQ mittlerweile deutsch:

Das war bei mir von Anfang an so. Ich hatte es aber bald auf englisch umgestellt, da es anfangs fast nur auf englischsprachigen Websites Hilfe zu PQ gab und ich so nicht ständig mit deutschen und englischen Schrittbezeichnungen zu tun hatte. Weiterhin sind die englischen i.d.R. kürzer und in den meisten Fällen werden diese von mir nachbearbeitet, damit der M-Code für das menschliche Auge leichter erfassbar wird.

Wenn du mal sehen willst, was man u.a. noch so alles mit Power Query machen kann, dann kannst du dir ja mal meinen Fuzzy Search anschauen.

Vorletztes Jahr habe ich die Erfassung und Auswertung der Ergebnisse unseres Rommé-Clubs von Formelbasiert fast vollständig auf Power Query umgestellt. Das läuft seitdem viel stabiler und die jährliche Mappe ist nun auch viel kompakter. Insgesamt enthält die Mappe 49 Abfragen.

Als größte Verbesserung würde ich es momentan empfinden, dass wenn ich eine Abfrage schrittweise durchgehe, PQ mich, beim Aufruf einer Funktion, fragen würde, ob ich diese als einen Schritt oder schrittweise sehen möchte. Das kann eigentlich für die PQ-Entwickler kein Hexenwerk sein, dies zu programmieren. Ebenso wäre es sehr cool, wenn man in einer Abfrage Funktionen aufrufen könnte, die sich in einer anderen Mappe befinden. Weiterhin fehlt im Editor zumindest "Rückgängig" und "Wiederherstellen".
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste