073827 in 07:38:27 als Zeit umwandeln, Teil 1
Den zweiten Teil dieser Trilogie können Sie hier lesen.
Den dritten Teil dieser Trilogie können Sie hier lesen.
Wissensstand: Level 1 ⇒ Einsteiger in PQ, keine/kaum Erfahrung
Das Thema Zeiten und Excel ist fast schon ein Dauerbrenner in Foren. Eine der „Lieblingsfragen”: Zeiten werden oder wurden als reine Ziffernfolgen ohne eine Trennung eingeben (was meistens der Fall ist) oder in dieser Form seitens eines anderen Programms so erstellt und in Excel in dieser Form importiert. – Wie können diese Werte (in diesem Fall bzw. Beitrag) durch Power Query in durch Excel auswertbar „echte” Zeiten umgewandelt werden? Hinweis: An dieser Stelle gibt es zum gleichen Thema eine Lösung in Plain Excel. 😉
Auch wenn das Prinzip immer gleich ist hängt die Vorgehensweise doch deutlich davon ab, in welcher Form die Ziffernfolgen (welche ja eine Uhrzeit darstellen und ergeben sollen) in den Basisdaten vorliegen. Hauptsächliche Unterscheidungsmerkmale sind:
- Text oder Zahl,
- immer die gleiche Anzahl von Ziffern oder nicht,
- mit oder ohne Sekunden.
Als Text, immer gleiche Länge
In dieser *.zip-gepackten Datei finden Sie 2 Arbeitsmappen und 2 csv-Dateien:
Zeiten_1.xlsx und Zeiten_1a.csv sowie Zeiten_1b.csv. Das File Zeiten_2.xlsx kommt später zum tragen. Es sind jeweils nur wenige Zeilen (sprich Daten), denn es geht hier nur um das Prinzip und nicht um große Mengen. Grundsätzlich werden Sie mir zustimmen, dass bei der Vorgabe „immer gleiche Anzahl von Ziffern” die Formatierung als Text zwingend erforderlich ist. Sonst würden ja Zeiten vor 10:00 Uhr immer eine Stelle weniger haben, da beim Zahlenformat Zahl eine führende Null seitens Excel ja automatisch entfernt wird. Bei einer csv-Datei lässt sich da im Power Query-Umfeld gewiss noch etwas retten, aber für „saubere” Arbeit sind hier die Werte auch in Gänsefüßchen eingefasst und somit eindeutig als Text deklariert.
Öffnen Sie nach dem entpacken im ersten Schritt das File Zeiten_1.xlsx und sie werden erkennen, dass es 2 Arbeitsblätter gibt; Tabelle1 mit 4‑stelligen „Zeiten”, Tabelle2 mit 6‑stelligen Zeitangaben (also mit Sekunden). Es sollte sie auch nicht wundern, dass die Zahlen rechtsbündig ausgerichtet sind. Das Zahlenformat wird Ihnen aber den deutlichen Hinweis geben, dass es sich hierbei (dennoch) um Text handelt. Zugegeben, eine kleine Gemeinheit von mir aber in der Praxis öfter einmal zu finden. 🙄 Verlassen Sie sich also nicht in jedem Fall auf die Ausrichtung der dargestellten Daten, mitunter täuscht der Schein.
Beginnen Sie mit Tabelle1. Folgende Werte sollen im Endeffekt korrekt dargestellt werden: 17:23 Uhr, 09:15 Uhr, 23:59 Uhr, 18:00 Uhr 06:00 Uhr und 00:00 Uhr. Selbstredend ohne den Text „Uhr”. Und das ganze soll natürlich nicht in Plain Excel sondern in Power Query geschehen. Also werden sie im ersten Schritt die Daten als Tabelle formatieren und dann in Power Query importieren. Aber Power Query „denkt mit” und passt die Daten so an, dass sie scheinbar optimal sind:
Im rechten Seitenfenster erkennen sie bei Angewendete Schritte als 2. Eintrag Geänderter Typ. Löschen Sie einfach diese Zeile, beispielsweise durch einen Klick auf das vorangestellte rote . Als Effekt steht dann in der Spalte Zeit in jeder Zeile ein 4‑stelliger, aus Ziffern bestehender linksbündiger Text:
Alternativ können Sie sofort nach dem Import, also vor jedem weiteren Schritt, den Datentyp der Spalte auf Text ändern. Ich werde Ihnen in diesem Beitrag diverse Möglichkeiten vorstellen, wie sie zum gewünschten Ziel gelangen können. Die Reihenfolge stellt keine Wertung dar. Wichtig ist nur, dass ihnen der Weg gefällt und sie ihn nachvollziehen können und auch wollen.
Der einfache Weg: Spalte teilen
Mit recht einfachen Mitteln und nur einigen Mausklicks können Sie in Power Query zum Ziel gelangen. Vollziehen Sie nacheinander diese Schritte:
- Klicken Sie nach dem Import in die Überschrift Zeit.
- Start | Spalte teilen | Nach Anzahl von Zeichen.
- Geben Sie in das Feld Anzahl von Zeichen die Zahl 2 ein und belassen Sie es bei Wiederholt.
- Bestätigen Sie mit OK.
- Markieren Sie beide der nun getrennten Spalten durch einen Klick in die Überschriften (Shift oder Strg verwenden).
- Rechtsklick in eine der beiden Überschriften, Typ ändern | Text.
- Bestätigen Sie, dass alle Werte geändert werden.
- Register Transformieren | (Gruppe Textspalte) Spalten zusammenführen.
- Legen Sie als Trennzeichen den Doppelpunkt : fest.
- Geben Sie bei Neuer Spaltenname den Text Zeit ein.
- Schließen Sie das Fenster mit OK.
- Geben Sie dieser Spalte den Datentyp: Zeit.
- Schließen & laden oder Schließen & laden in… und die Daten werden entweder in einem neuen Blatt oder an gewünschter Position in ein Excel Tabellenblatt geschrieben.
Lassen Sie sich nicht dadurch irritieren, dass nun automatisch die Sekunden mit dem jeweiligen Wert :00 angehängt werden, das ist bei Power Query nun einmal so. In jedem Falle ist die Aufgabe für Tabelle1 damit erfüllt. In Tabelle2 ist das Vorgehen absolut identisch. Nur werden Sie hier naturgemäß alle 3 durch die Trennung erzeugten Spalten markieren und dann durch den Doppelpunkt zusammenführen. Natürlich steht es Ihnen frei, in Excel die generierten Daten nach ihrem Geschmack zu formatieren.
csv-Dateien
Die entsprechende csv-Datei werden sie naturgemäß nicht (per Doppelklick oder ähnlich) öffnen, weil Excel unter den gegebenen Umständen damit einfach nicht fachgerecht umgeht. Sie werden entweder ein neues Blatt in der bisherigen Mappe verwenden oder vorzugsweise eine neue Mappe erstellen. Anschließend über den Menüpunkt Daten (ab Version 2016⁄365) oder Power Query (2010/2013) Neue Abfrage | Aus Datei | Aus csv und Sie wählen vermutlich zuerst Zeiten_1.csv. Sie erkennen, dass Power Query wieder „mitdenkt”. Obwohl die Anführungszeichen in der Original-Datei die Werte ganz klar als Text ausweisen, sind das nach dem Import eindeutig Zahlen. Aber immerhin hat PQ erkannt, dass die 1. Zeile die Überschrift enthält. 😛
Es wird Sie nicht erstaunen, dass das Löschen des letzten Eintrages bei Angewendete Schritte den gewünschten Erfolg zeigt. Nun steht in jeder Zelle wieder eine 4‑stellige Ziffernfolge, wie es bereits in der Excel-Datei der Fall war. Und aus diesem Grunde ist die Vorgehensweise hier ab dem Punkt absolut identisch zu der zuvor eingeübten Art und Weise.
Dieses war eine kleine Leseprobe, ein Appetithappen, ein Einstieg. Sie haben gesehen, dass es mit Power Query durchaus möglich ist, eine Ziffernfolge in eine für Excel lesbare Zeit umzuwandeln. Aber bekanntermaßen führen viele Wege nach Rom, sprich zum gewünschten Ziel. Mehr zum Thema in weiteren 2 Beiträgen.
Den zweiten Teil dieser Trilogie können Sie hier lesen.
Den dritten Teil dieser Trilogie können Sie hier lesen.