AW: Übersicht Belegung der Tanksäulen
21.07.2025 14:51:54
Yal
Hallo Dieter,
ich gehe davon aus, dass das System nur die Spalten A bis I liefert.
Wenn Du die Daten mit einer Pivottable bewerten möchte, was erlauben würde, KW oder Säule oder Wochentag als flexible Filter zu haben, musst Du zuerst eine Transformation der Daten vornehmen: für jeden Zeitpunkt in Viertelstunden-Takt, bei dem eine Säule belegt ist, wird einen Datensatz erzeugt.
Dann kannst Du mit Pivottable die Anzahl von Datensätze darstellen:
Diese Transformation geht über Power Query (PQ):
- Quelldaten in einer Tabelle umwandeln (Menü "Einfügen", "Tabelle")
- Menü "Daten", "aus Tabelle/Bereich"
(oder die Daten direkt aus der Quelle. Siehe Menü "Daten", "Aus Datei", ...)
- Spalte Datum in Datentyp Datum umwandeln, Zeiten in Zeiten, Dauer in Typ Dauer
- Datum + Startzeit in eine neue Spalte "Startzeit" addieren,
- der Dauer in einer neue Spalte "Endzeit" dazu addieren
- mit einer PQ-Transformation eine Liste von Datum+Zeit ("Datetime") erzeugen:
= Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Datum", each let Erg = (Anf, End) => List.Generate(()=>[x=Anf], each [x]=End, each [x = [x] +#duration(0,0,15,0)], each [x]) in Erg([Startzeit],[Endzeit]))
- Diese Liste in Zeilen expandieren
- Duplizieren, um aus dem einen das Datum aus dem anderen die Zeit zu behalten
- Spalten "K", "Tag", "Datum", "Zeit" und "Säule" behalten
- Menü "Schliesen & laden in...", Pivottable-bericht auswählen
- Du bist zurück in Excel klassik. Pivot wie oben gestalten.
Wenn deine Tabelle "Tabelle1" benannt wird (in Menü "Tabellenentwurf" anpassen) wird der gesamten PQ-Code so aussehen:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"KW", Int64.Type}, {"Tag", type text}, {"Datum", type date}, {"Beginn", type time}, {"Ende", type time}, {"Dauer", type duration}, {"Beginn DEZ", type number}, {"Dauer DEZ", type number}, {"Säule", Int64.Type}}),
#"Zusammengeführter Datums-/Uhrzeitwert eingefügt" = Table.AddColumn(#"Geänderter Typ", "Anfang", each [Datum] & [Beginn], type datetime),
#"Entfernte Spalten" = Table.RemoveColumns(#"Zusammengeführter Datums-/Uhrzeitwert eingefügt",{"Ende", "Datum", "Beginn", "Beginn DEZ", "Dauer DEZ"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Entfernte Spalten", "Ende", each [Anfang] + [Dauer]),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Datum", each let Erg = (Anf, End) => List.Generate(()=>[x=Anf], each [x]=End, each [x = [x] +#duration(0,0,15,0)], each [x]) in Erg([Anfang],[Ende])),
#"Erweiterte Benutzerdefiniert" = Table.ExpandListColumn(#"Hinzugefügte benutzerdefinierte Spalte1", "Datum"),
#"Andere entfernte Spalten" = Table.SelectColumns(#"Erweiterte Benutzerdefiniert",{"KW", "Tag", "Säule", "Datum"}),
#"Duplizierte Spalte" = Table.DuplicateColumn(#"Andere entfernte Spalten", "Datum", "Uhrzeit"),
#"Extrahiertes Datum" = Table.TransformColumns(#"Duplizierte Spalte",{{"Datum", DateTime.Date, type date}}),
#"Extrahierte Uhrzeit" = Table.TransformColumns(#"Extrahiertes Datum",{{"Uhrzeit", DateTime.Time, type time}})
in
#"Extrahierte Uhrzeit"
VG
Yal