Zugfinder Pro Expert kostet 8,44€/Jahr und ermöglicht dir auch direkte Downloads. Wenn es mein Hobby wäre, dann würde ich zumindest einmal den geringen Betrag investieren, um zu sehen, was es mehr bringt.
Bei der Web-Abfrage werden zwar Verspätungen und Gründe gezeigt. Ich kann aber bisher nicht sehen, wie oft der Zug am Tag die Stecke fährt und die reguläre Fahrzeit sehe ich auch nicht. Dies sind aber Infos, die du benötigst, wenn du Verspätungen bewerten willst.
interessiert mich in diesem Zusammenhang auch nicht.
Mir reicht es zu wissen, von 100 Zugverspätungen sind z.B. 5 unwetterbedingt, 3 durch Notarzteinsatz und 4 durch Verspätung im Ausland, um nur ein paar Beispiele zu nennen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
(24.06.2025, 17:33)BoskoBiati schrieb: Mir reicht es zu wissen, von 100 Zugverspätungen sind z.B. 5 unwetterbedingt, 3 durch Notarzteinsatz und 4 durch Verspätung im Ausland, um nur ein paar Beispiele zu nennen.
So, so... schon seit 50 Jahren an Bahnfahren interessiert? Da hast Du sicher den Keller voller Kursbücher...
....wenn ich Dich richtig verstehe, dann so, wie im Anhang?
Da gibt es 2 Parametertabellen im Blatt Parameter. Die oben links ist für die Parameterangabe um alle Zugnummern zu finden, die zum angegebenen Zielort fahren.
Die kannst Du dann in die rechte Parametertabelle eintragen. Musst Du aber nicht. Kannst da x-beliebige Zugnummern eingeben. Die Zugnr-Suche soll die Sache nur vereinfachen. Du kannst sowohl von-bis Zugnummern angeben oder auch kommaseparierte. Hinweis: gib nicht gleich allzu viele ein. Starte mal mit 5 und steigere Dich dann langsam... Da ist PQ wie die DB... es kann dauern...
In den anderen Tabellenblättern erhältst Du dann, nachdem Du die Tabellen aktualisieren lassen hast, die entsprechenden Ergebnisse.
Im Blatt Auswertung dann, wie oft jeder dieser Züge im Zeitraum gefahren ist und wie oft er davon aus welchem Grund (die werden ebenfalls pro Zugnr ausgegeben) auch immer Verspätung hatte.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Zitat:Da hast Du sicher den Keller voller Kursbücher...
in den 70ern hatte ich immer eins dabei (das Gesamtkursbuch!), wenn ich von meinem Bundeswehrstandort aus auf Tour gegangen bin. Auto hatte ich noch nicht und es war nicht einfach mit dem Zug unterwegs zu sein.
Vielen Dank für deine Bemühungen, da muß ich erst einmal reinfuchsen. PQ und ich sind bisher keine Freunde und uns auch noch nicht näher gekommen. Die Datei von ws-53 hat eigentlich meinen Anforderungen genügt, wobei ich in keinster Weise verstehe, wie man z.B. alle Seiten abruft, die in der Liste stehen. Bei Deiner Datei sieht das noch viel komplizierter aus. Da muß ich noch eine ganze Weile tüfteln, bis ich das ansatzweise verstehe.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Zitat:... wobei ich in keinster Weise verstehe, wie man z.B. alle Seiten abruft, die in der Liste stehen.
das ist einfach! Aber ich möchte zuerst erklären, wie ich den Ablauf umgestellt habe, da ein kompletter Import aller ICE-Strecken rund 10 Min. lief und auch tlws. abgestürzt ist.
Zuerst einmal habe ich nun den Datenimport und die Datenaufbereitung getrennt. Im Datenimport wird nun fast keine Aufbereitung mehr durchgeführt. Das hat vor allem den Vorteil, dass wenn es für die Aufbereitung einen neuen Case gibt, der zu beachten ist, dann muss der Import nicht erneut durchgeführt werden.
Weiterhin kann nun der Import häppchenweise durchgeführt werden. Stürzt ein Happen ab, dann muss nur dieser erneut, mit entsprechende geringerer Laufzeit, importiert werden.
Damit du aber nicht viele kleine Imports einzeln starten musst, habe ich dazu ein Makro eingefügt, mit dem dann die einzelnen Happen hintereinander importiert werden. Das hat natürlich auch bedingt, dass vor jedem neuen Import die bereits vorhandenen Daten gesichert und nach dem Import angefügt und um Dubletten bereinigt werden.
Die aufbereiteten Daten, in denen es bei mir natürlich auch keinen Datumswert "heute" gibt, kann du als Basis für deine Auswertungen verwenden und/oder die Abfrage "ICE_Auswertung" entsprechend deiner Bedürfnisse anpassen.
Da du ja ein ziemlicher PQ-Neuling bist, habe ich in die Mappe noch einige, hoffentlich "hilfreiche", Kommentare eingefügt.
Nun zu deiner zitierten Anmerkung:
Mit der Abfrage "ICE_Rohdaten" wird Tabelle "tbl_upda_ref" gelesen und entsprechend der definierten Bedingungen gefiltert. Für die Datensätze, die übrig bleiben, wird dann die Funktion fx_ICE_Rohdaten" aufgerufen. Diese liefert dann für die jeweilige URL eine Tabelle mit den importierten Daten.
Das kannst du ganz einfach nachvollziehen, indem du die Abfrage zur Bearbeitung öffnest und dann von oben nach unten jeden Schritt einzeln anklickst. Denn dann siehst du direkt, was dieser Schritt bewirkt. Deshalb benötigst du auch in Power Query keinen Debugger, weil dieser ja direkt integriert ist.
Hier gibt es jedoch leider die Besonderheit, dass der Aufruf einer Funktion, egal wie viele Schritte diese enthält, immer nur als ein Schritt gezeigt wird.
Damit du aber auch sehen kannst was, in der Funktion stattfindet, kannst die die Abfrage "ICE_10_Rohdaten" benutzen, da diese den Code der Funktion "fx_ICE_Rohdaten" enthält". Somit kannst du auch schrittweise nachvollziehen, was beim Import einer ausgewählten Strecke passiert. Sowie bei Bedarf, dies Abfrage anpassen, um dann den Coe dieser Abfrage in die Funktion zu übernehmen. Das habe ich auch auch genau in der Mappe erläutert.
Ich hoffe, dass es dir nun etwas leichter fällt, den Ablauf nachzuvollziehen.
Im übrigen konnte ich feststellen, dass auch ich: Web.Page(Source) anstatt: Html.Table(Source) nutzen kann. Aus der automatischen Aufzeichnung ergab sich aber halt "Html.Table".
29.06.2025, 17:17 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2025, 17:17 von ws-53.)
Hi Edgar,
da nun bei deiner ICE-Analyse, wie ich meine, die Datenbeschaffung und -aufbereitung recht benutzerfreundlich gelöst ist, habe ich mir nun einmal angeschaut, wie sich die Auswertung optimieren lässt.
Vorher habe ich allerdings die Datenbeschaffung noch so angepasst, dann nun immer zuerst die ältesten Daten aktualisiert, bzw. um neue Tage ergänzt werden.
Da ja das Datenmodell der DB ein klein wenig suboptimal ist, habe ich nun noch die Spalte “Kategorie" mit folgenden Texten: Akt. Keine Fahrten, Pünklich – Verspät. Strecke, Pünktlich, Ziel nicht erreicht, Zug ist ausgefallen und Zug ist unterwegs eingefügt. Dies macht Pivotauswertungen etwas einfacher.
Weiterhin habe ich für alle bisher vorkommenden Bemerkungen eine Tabelle erstellt und diesen einen kürzeren Text zugewiesen, das dies die PivotTabelle übersichtlicher macht. In der Abfrage "ICE_Auswertung" sind beide Spalten enthalten. So kannst du selbst enstscheiden, ob du lieber mit der Spalte "Bemerkung" oder der Spalte "Bemerk." Arbeiten möchtest. Auch kannst du die abgekürzten Bemerkungen ganz nach Belieben anpassen.
Weiterhin habe ich noch die Spalte "Strecke" eingefügt, in die ich von allen Verbindungen, die täglich mehrfach gefahren werden, immer die Erste ICE-Nr. eintrage. So lassen sich nun auch recht elegant Verbindungen filtern, ohne dass du dazu "Von" und "Bis" filtern musst.
Nachtrag: Und du kannst gerne einmal Bescheid geben, ob du nun, wenn du die Abfragen schrittweise von oben nach unten durchgehst, das Ganze schon etwas besser verstehtst.
das ist eigentlich ganz einfach und bei mir doch auch nicht anders.
Beim Ersten mal wird eine der gewünschten Seiten direkt statisch "Web.BrowserContents("https://www.zugfinder.net/de/zug-ICE_123") abgefragt. Damit bekommst du vollautomatisch den benötigten Code. Um nun mehrere Seiten abzufragen, ersetze ich nun die Konstate: " https://www.zugfinder.net/de/zug-ICE_123" durch eine Variable "URL", die dann im Aufruf die Konstante ersetzt: "Web.BrowserContents(URL)". Das ist überhaupt nichts anderes, als dass was du von VBA und auch von LET kennst.
Aber solange du nicht die Abfragen zur Bearbeitung öffnest und von oben nach unten jeden Schritt einzeln anklickst, kannst du es auch nur schwer verstehen.
Hier ist es zuerst einmal die Abfrage ICE-Rohdaten. Diese liest die Tabelle "tbl_upda_ref" in der alle ICE-Nummern enthalten sind. Entsprechend der Vorgaben, wird diese Tabelle innerhalb der Abfrage gefiltert, um die aktuell 20 URLs zu erhalten, für die die Daten mit dem Schritt:
Call_fx_ICE_Rohdaten = Table.AddColumn(Remove_Cols, "fx_ICE_Roh", each fx_ICE_Rohdaten([URL])),
mittels der Funktion fx_ICE_Rohdaten([URL]) für die zuvor gefilterten 20 URLs die Daten zu importieren.
Und da alles, was in einer Funktion ausgeführt wird, dir nur als ein einzelner Schritt angezeigt wird, hatte ich dir bereits erklärt, dass wenn du die Abfrage ICE_10_Rohdaten Schritt für Schritt einzeln durchgehst, du genau sehen kannst, was inner halb der aufgerufen Funktion abläuft.
Aber deshalb noch einmal ganz eindringlich !!!
Solange du es nicht so machts, wie ich es dir beschrieben habe, wirst du es nie verstehen. Wenn du es aber so machts, dann wirst du es sofort verstehen, auch wenn es bis zu Routine noch etwas länger dauert!
Ansonsten erkläre mit bitte, welche Probleme bei dir auftreten, wenn du eine Abfrage zur Bearbeitung öffnen willst, um dies dann Schritt für Schritt durchzugehen.
30.06.2025, 00:47 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2025, 00:48 von ws-53.)
Zitat:Im Blatt Auswertung dann, wie oft jeder dieser Züge im Zeitraum gefahren ist und wie oft er davon aus welchem Grund (die werden ebenfalls pro Zugnr ausgegeben) auch immer Verspätung hatte.
Hi Ralf,
diese Aussage ist leider falsch, da du vorher zwar die ausfilterst, die noch unterwegs sind, nicht aber die pünktlichen! Ist aber nur eine winzige Kleinigkeit, dies zu bereinigen.