Excel → Web

PODC – von Excel zur Webstatistik

Excel und Power Query bleiben das Rechenzentrum. Die Website macht aus denselben Daten eine schnelle, übersichtliche und dauerhaft pflegbare Webstatistik.

Die PODC-Statistik funktionierte bereits in Excel. Deshalb bestand die Aufgabe nicht darin, die vorhandene Logik noch einmal neu zu programmieren. Die bessere Lösung war eine saubere Brücke: Excel rechnet – die Website präsentiert.

Screenshot der PODC Webstatistik
Die Webstatistik als Präsentationsschicht für die Excel-Daten. statistik.podc-liga.de öffnen ↗
Fachliche QuelleExcel und Power Query bleiben die maßgebliche Berechnungsinstanz.
DatenwegVBA erzeugt JSON und veröffentlicht den geprüften Stand per HTTPS.
WebseiteStatische HTML-/JavaScript-Oberfläche mit separater Saisonhistorie.

Die Idee: vorhandene Stärke behalten

Die PODC-Statistik war kein leeres Blatt. In Excel und Power Query existierten bereits die fachlichen Berechnungen für Spielerstatistiken, Liga-Auswertungen und weitere Wettbewerbe. Genau deshalb wäre ein kompletter Neubau im Browser die falsche Richtung gewesen.

Wenn Excel dieselbe Statistik korrekt berechnet und JavaScript sie anschließend noch einmal nachbaut, entstehen zwei Wahrheiten. Jede Regeländerung müsste an zwei Stellen gepflegt werden, und bei Abweichungen wäre zunächst unklar, welches Ergebnis stimmt. Also wurde die Rolle der Website bewusst begrenzt: Sie ist Präsentationsschicht, nicht zweites Rechenzentrum.

Grundentscheidung: Eine gute bestehende Lösung muss nicht ersetzt werden, nur weil eine neue Oberfläche dazukommt. Entscheidend ist, die Zuständigkeiten sauber zu trennen.

Ausgangslage: viele Daten, aber keine öffentliche Webdarstellung

Die Daten entstehen in mehreren Excel- und Power-Query-Bereichen. Dazu gehören Spielerstatistiken, Ligatabellen und Ligabegegnungen sowie Grand Slam und Competition. Die Website sollte diese Informationen übersichtlich zugänglich machen, ohne dass für jede Veröffentlichung Dateien manuell exportiert oder Screenshots gepflegt werden müssen.

Ein wichtiger praktischer Punkt war außerdem die spätere Pflege. Der normale Ablauf sollte weiterhin in Excel stattfinden: Daten aktualisieren, fachlich kontrollieren, veröffentlichen. Die Person, die die Statistik pflegt, soll nicht zusätzlich an HTML-Dateien arbeiten müssen.

Planung und Anforderungen

  • Excel und Power Query bleiben die fachliche Quelle.
  • Ein veröffentlichter Datenstand soll automatisch als strukturierte Webdaten bereitstehen.
  • Die Webseite soll statisch bleiben und keine unnötige Datenbank benötigen.
  • Bestleistungen sollen aus den vorhandenen Daten entstehen, nicht als manuelle Screenshots.
  • Grand Slam, Competition und Hall of Fame sollen eigenständige, direkt erreichbare Bereiche sein.
  • Eine abgeschlossene Saison muss dauerhaft in der Hall of Fame erhalten bleiben.
  • Ein fehlgeschlagener Teil einer Veröffentlichung darf nicht stillschweigend als Gesamterfolg gelten.
  • Upload-Zugangsdaten dürfen nicht im öffentlichen Webbestand liegen.

Umsetzung: ein klarer Datenweg

Excel / Power Query
VBA-Export
HTTPS-Upload
stats.json
Webseite

Nach der fachlichen Prüfung erzeugt das VBA-Modul aus den Excel-Daten genau einen JSON-Datensatz. Dieser wird per HTTPS an die Webziele übertragen. Serverseitig wird der Datensatz geprüft, der bisherige Stand gesichert und die neue stats.json geschrieben. Die statischen Seiten laden anschließend genau diesen Stand.

Das hat einen großen Vorteil bei der Fehlersuche: Stimmt eine Zahl nicht, lässt sich der Weg Schritt für Schritt prüfen. Ist sie bereits in Excel falsch, liegt das Problem in der Datenbasis. Ist Excel korrekt, aber JSON falsch, liegt es im Export. Ist JSON korrekt und die Anzeige falsch, liegt es in der Weboberfläche.

Keine doppelte Fachlogik: Die Website darf Werte formatieren – zum Beispiel Prozentwerte oder Ganzzahlen darstellen. Sie soll aber keine fachlichen Ligaergebnisse neu berechnen, die bereits aus Excel kommen.

Warum JSON hier gut passt

  • Die Datei ist kompakt, portabel und leicht zu kontrollieren.
  • Die öffentliche Weboberfläche bleibt schnell und weitgehend statisch.
  • Excel und Website sind technisch getrennt, aber über eine klar definierte Datenstruktur verbunden.
  • Die Webdateien können unabhängig vom aktuellen Statistikstand weiterentwickelt werden.

Aus einer Excel-Statistik werden mehrere Webbereiche

Die Hauptseite bündelt die regelmäßig genutzten Auswertungen. Weitere Wettbewerbe haben eigene Seiten bekommen, damit die Navigation übersichtlich bleibt.

Hauptseite

Liga und Spieler

Liga-Auswertung, Bestleistungen, Spielerstatistiken und Einzelspieler-Vergleich. Die Startansicht bleibt die Liga-Auswertung.

Eigene Seiten

Grand Slam, Competition, Hall of Fame

Die drei Bereiche sind separat direkt erreichbar und untereinander mit der Liga-Statistik verlinkt.

Bestleistungen ohne Screenshot-Pflege

Die Bestleistungen werden dynamisch aus den veröffentlichten Statistikdaten ermittelt. Filter nach Liga, Kategorie und Umfang machen aus einem früher eher statischen Ergebnisbereich eine echte Auswertung. Dasselbe gilt für Einzelspiel-Rekorde.

Competition bleibt flexibel

Competition war technisch ein Sonderfall, weil die zugrunde liegenden Power-Query-Daten nicht immer in exakt derselben Excel-Form vorliegen. Der Export wurde deshalb so gebaut, dass er sowohl mit einer vorhandenen Tabelle als auch über einen versteckten Hilfsweg arbeiten kann. Auf der Webseite werden neue Turnierspalten dynamisch erkannt, statt für jedes zusätzliche Turnier HTML umbauen zu müssen.

Hall of Fame: aktuelle Daten sind nicht automatisch Geschichte

Die normale stats.json beschreibt den aktuellen Stand. Für eine Hall of Fame reicht das nicht, denn abgeschlossene Saisons müssen dauerhaft erhalten bleiben. Deshalb besitzt die Hall of Fame eine getrennte Historie.

Die laufende Saison kann auf Wunsch für die Anzeige zugeschaltet werden, verändert dadurch aber nicht die gespeicherte Vergangenheit. Technische oder nicht reguläre Einträge werden in der Darstellung gefiltert, ohne die historische Datei destruktiv umzuschreiben.

Ein Saisonabschluss ist ein eigener Vorgang

Zum Saisonende wird zuerst Excel vollständig aktualisiert und fachlich geprüft. Dann wird der finale Datenstand noch einmal veröffentlicht und anschließend archiviert. Erst wenn die Archivierung erfolgreich war, wird die neue Saison in Excel eingestellt.

Der Archivvorgang ist so gebaut, dass ein erneuter Versuch nach einem Teilfehler keine Saison doppelt zählt. Genau solche Details machen aus einer Demo eine Lösung, die man wirklich weiterbenutzen kann.

Was nicht sofort funktioniert hat

01
Ein großer „alles aktualisieren und veröffentlichen“-Ablauf war nicht zuverlässig

Power Query braucht je nach Datenlage unterschiedlich lange. Starre Wartezeiten und pauschale Refresh-Schleifen erwiesen sich als keine gute Grundlage. Aktualisierung und Veröffentlichung wurden deshalb bewusst getrennt.

02
Competition passte nicht sauber in einen einzigen Excel-Pfad

Der Export musste sowohl mit einer echten Tabelle als auch mit einer nur als Verbindung vorhandenen Power-Query-Abfrage umgehen können.

03
Hall of Fame war zunächst Teil der Hauptseite

Mit wachsendem Umfang wurde sie als eigene Seite klarer. Die Historie bekam außerdem eine eigene persistente Datei statt nur den aktuellen Saisonstand zu verwenden.

04
Alte Zwischenstände bleiben technisch verführerisch

Im Webpaket existierten historische Dateien und Restcode, die für den heutigen Datenweg nicht mehr maßgeblich sind. Die Projektdokumentation hält deshalb ausdrücklich fest, welche Quellen tatsächlich gelten.

Ergebnis

Die PODC-Webstatistik ist heute eine statische Weboberfläche für eine weiterhin in Excel berechnete Statistik. Ein VBA-Modul veröffentlicht den geprüften Stand automatisiert als JSON. Die Webseite stellt Liga, Spieler, Bestleistungen und Wettbewerbe dar; die Hall of Fame verwaltet zusätzlich eine dauerhafte Saisonhistorie.

Der entscheidende Gewinn ist nicht, dass Excel durch „Web“ ersetzt wurde. Der Gewinn ist, dass jede Schicht genau das macht, was sie gut kann: Excel rechnet, der Export transportiert, der Server prüft und speichert, die Webseite stellt dar.

Was ich aus dem Projekt mitnehme

  • Eine funktionierende Excel-Lösung muss für eine Website nicht weggeworfen werden.
  • Doppelte Fachlogik vermeiden: eine Quelle, eine Wahrheit.
  • Datenexport, Speicherung und Darstellung sauber voneinander trennen.
  • Historische Daten brauchen eine andere Lebensdauer als der aktuelle Stand.
  • Automatisierung ist nur dann gut, wenn Teilfehler erkennbar und Wiederholungen sicher sind.
  • Starre Wartezeiten sind kein Ersatz für einen tatsächlich abgeschlossenen Power-Query-Refresh.
  • „Funktioniert“ ist auch hier nicht dasselbe wie „fertig“ – gute Lösungen entstehen durch echte Nutzung und anschließende Vereinfachung.

PODC Webstatistik live ansehen ↗

KI bei diesem Projekt

Fachliche Excel-Logikbestehend / von mir gepflegt
Anforderungenich / gemeinsam
Webarchitekturgemeinsam
Code / Schnittstellenstark KI-unterstützt
Fachliche Prüfungich
Dokumentationgemeinsam