Schnellreferenz
Die Zeitstempel-Funktion erstellt automatisch das aktuelle Datum und die Uhrzeit für deine Excel-Projekte.
Mini-Beispiel: Statt manuell „11.05.2026“ in eine Zelle zu tippen (und zu vergessen), rufst du einfach
let stamp = zeitstempel(); // Gibt {datum: „11.5.2026“, zeit: „15:30“} zurück
Syntax-Übersicht: Die Funktion benötigt keine Parameter und gibt ein Objekt mit zwei Eigenschaften zurück:
zeitstempel().datum // „11.5.2026“
zeitstempel().zeit // „15:30“
Mein Problem: Power Query ohne Zeitstempel-Chaos
Ich hatte ein konkretes Problem:
Meine Power Query-Abfragen liefen automatisch via OfficeScript, aber meine Nutzer wussten nie, von wann die angezeigten Daten stammten. „Sind das die Zahlen von heute Morgen oder von letzter Woche?“ – diese Frage kam täglich.
Das konkrete Problem:
- Power Query läuft automatisch, aber Nutzer sehen nicht WANN die Daten aktualisiert wurden
- Manuell das Datum in eine Zelle schreiben? Wird vergessen oder ist falsch
- Zeitreihen-Berechnungen brauchen einen exakten Referenzpunkt. Zum Beispiel, wenn ich ein Zeitfenster später definieren will, welches x-Tage/Wochen in die Vergangenheit/Zukunft geht.
- Verschiedene KPIs berechnen sich unterschiedlich, manche historisch, manche als Prognose
Warum die Formellösung Heute() oder Jetzt() nicht praktikabel ist:
Man könnte auf die Idee kommen und einfach in eine Zelle die Formel Heute() oder Jetzt() schreiben. Dadurch schreibt Excel selber das aktuelle Datum und Uhrzeit in eine Zelle.
Aber dies macht Excel jedes Mal, wenn es geöffnet wird oder etwas neu berechnet.. Es zeigt also eher die letzte Aktivität in der Mappe an. Es ist nicht statisch und dadurch nicht brauchbar für einen definierten Zeitstempel.
Meine Lösung mit der Zeitstempel-Funktion:
Ich habe mir eine einfache Funktion geschrieben, welche ich an mein „Aktualisierungsscript“ gehangen habe.
Immer wenn man das Script nun ausführt, welches die Power Query Verbindungen aktualisiert, wird auch die Funktion für den Zeitstempel aufgerufen und dieser gesetzt.
// Automatisch und immer korrekt
let stamp = zeitstempel();
workbook.getActiveWorksheet()
.getRange(„A1“)
.setValue(„Daten vom “ + stamp.datum + “ um “ + stamp.zeit);
// Zeitstempel als Basis für Zeitreihen-Formeln
Syntax-Erklärung: So funktioniert der Code
Lass uns den Code Schritt für Schritt durchgehen und verstehen, was jeder Teil macht:
Die Grundstruktur
function zeitstempel() {
// Zeitkomponenten generieren
const zeitstempel = new Date();
const jahr = zeitstempel.getFullYear();
const monat = zeitstempel.getMonth() + 1; // Indexbasierte Zählung Januar = 0
const tag = zeitstempel.getDate();
const stunde = zeitstempel.getHours();
const minute = zeitstempel.getMinutes();
// Deutsche Formatierung
let zeitstempel_datum = tag + „.“ + monat + „.“ + jahr;
let zeitstempel_zeit = stunde + „:“ + minute;
return {
datum: zeitstempel_datum,
zeit: zeitstempel_zeit
} }

Die Funktion zeitstempel() ist eine eigenständige Funktion, die du in jedes deiner OfficeScript-Projekte kopieren kannst. Sie löst mein ursprüngliches Problem: Automatische, fehlerfreie Zeitstempel für Power Query-Updates.
Zeitkomponenten generieren
Beispiel wenn wir heute den 05.12.2026 15:30 Uhr hätten.
const zeitstempel = new Date(); // Aktueller Zeitpunkt
const jahr = zeitstempel.getFullYear(); // 2026
const monat = zeitstempel.getMonth() + 1; // 5 (Mai, +1 wegen 0-basiert)
const tag = zeitstempel.getDate(); // 11
const stunde = zeitstempel.getHours(); // 15
const minute = zeitstempel.getMinutes(); // 30
| Code-Teil | Erklärung |
| new Date() | Erstellt ein neues Datums-Objekt mit dem exakten aktuellen Zeitpunkt |
| getFullYear() | Gibt das vollständige Jahr zurück (z.B. 2026) |
| getMonth() + 1 | Monat (0-11), daher +1 für echten Monat (1-12) |
| getDate() | Tag des Monats (1-31) |
| getHours() | Stunde im 24-Stunden-Format (0-23) |
| getMinutes() | Minuten (0-59) |
Formatierung der Ausgabe
let zeitstempel_datum = tag + „.“ + monat + „.“ + jahr; // „11.5.2026“
let zeitstempel_zeit = stunde + „:“ + minute; // „15:30“
Hier werden die einzelnen Zeitkomponenten zu lesbaren Strings zusammengefügt. Das + verbindet die Werte mit Punkten bzw. Doppelpunkten zum gewohnten deutschen Format. Perfekt für meine Power Query-Dokumentation.
Ebenso könnte Excel selbst mit dieser Formatierung weiterarbeiten, wenn man dies bräuchte.
Weitere Praxisbeispiele
Die Zeitstempel-Funktion ist vielseitig einsetzbar. Hier sind konkrete Beispiele aus verschiedenen Business-Bereichen:
1. Power Query Datenaktualisierung (mein Hauptanwendungsfall)
// Nach Power Query-Update automatisch dokumentieren
let stamp = zeitstempel(); workbook.getActiveWorksheet().getRange(„A1“).setValue(„Daten aktualisiert: “ + stamp.datum + “ um “ + stamp.zeit); // Zeitstempel für nachgelagerte Berechnungen workbook.getActiveWorksheet().getRange(„Z1“).setValue(stamp.datum); // Versteckte Referenz
2. Zeitreihen-Berechnungen (8 Wochen zurück/voraus)
// Zeitstempel als Basis für KPI-Berechnungen
let referenz = zeitstempel(); workbook.getActiveWorksheet().getRange(„Z1“).setValue(referenz.datum);
Excelformeln können jetzt präzise auf diesen Zeitpunkt referenzieren =DATUM(JAHR(Z1);MONAT(Z1);TAG(Z1)-56) // 8 Wochen zurück
3. Bestellverfolgung im E-Commerce
// Bestellung automatisch mit Zeitstempel versehen
let stamp = zeitstempel(); workbook.getActiveWorksheet().getRange(„A5“).setValue(„Bestellung #1234“); workbook.getActiveWorksheet().getRange(„B5“).setValue(stamp.datum); workbook.getActiveWorksheet().getRange(„C5“).setValue(stamp.zeit);
4. Projektmeilensteine
// Meilenstein-Tracking
let meilenstein = zeitstempel();
let worksheet = workbook.getActiveWorksheet(); worksheet.getRange(„F12“).setValue(„Phase 1 abgeschlossen“); worksheet.getRange(„G12″).setValue(meilenstein.datum + “ um “ + meilenstein.zeit);
Häufige Fehler und Lösungen
Fehler 1: Funktion nicht kopiert
Falsch: Du rufst
let stamp = zeitstempel(); // Fehler: zeitstempel is not defined
Richtig: Kopiere die komplette Funktion in dein Script:
function main(workbook: ExcelScript.Workbook) { // Dein Power Query Code hier let stamp = zeitstempel(); // Zeitstempel verwenden }
// Zeitstempel-Funktion hier einfügen
function zeitstempel() { // … kompletter Code }
Fehler 2: getCell() statt getRange()
Falsch: OfficeScript verwendet getRange(), nicht getCell():
worksheet.getCell(„A1“); // Funktioniert nicht in OfficeScript!
Richtig:
worksheet.getRange(„A1“); // Korrekte OfficeScript-Syntax
Fehler 3: Worksheet nicht definiert
Problematisch: Worksheet ohne Definition verwenden:
worksheet.getRange(„A1“); // Woher kommt worksheet?
Richtig: Zwei Möglichkeiten:
// Option 1: Worksheet definieren
let worksheet = workbook.getActiveWorksheet();
worksheet.getRange(„A1“);
// Option 2: Direkt verwenden
workbook.getActiveWorksheet().getRange(„A1“);
Migration: Von manuell zu automatisch
So wandelst du bestehende Power Query-Projekte Schritt für Schritt um:
Schritt 1: Funktion in OfficeScript integrieren
Kopiere die komplette Zeitstempel-Funktion ans Ende deines Power Query OfficeScripts (nach der main-Funktion).
Schritt 2: Manuelle Zeitstempel ersetzen
Vorher (manuell in Excel-Zelle):
Du tippst nach jedem Power Query-Update manuell das Datum in eine Zelle: „11.05.2026“. Problem: Du vergisst es oder vertippst dich.
Nachher (automatisch via OfficeScript):
// Automatisch bei jedem Script-Lauf
let stamp = zeitstempel(); workbook.getActiveWorksheet().getRange(„A1“).setValue(„Daten vom “ + stamp.datum + “ um “ + stamp.zeit);
Schritt 3: Zeitreihen-Referenz einbauen
// Versteckte Referenz für Formeln
let referenz = zeitstempel(); workbook.getActiveWorksheet().getRange(„Z1“).setValue(referenz.datum); // Für Excel-Formeln // Jetzt können Formeln präzise auf diesen Zeitpunkt referenzieren
Erweiterte Anwendungsfälle für Business Intelligence
BI-Integration: Zeitreihen-Berechnungen
Der wahre Wert der Zeitstempel-Funktion zeigt sich in der Business Intelligence. Hier mein konkretes Beispiel für 8-Wochen-Zeitreihen:
// OfficeScript: Zeitstempel setzen
let referenz = zeitstempel(); workbook.getActiveWorksheet().getRange(„A1“).setValue(referenz.datum); // Versteckte Referenz // Excel-Formeln können jetzt präzise berechnen: // 8 Wochen zurück: =A1-56 // 8 Wochen voraus: =A1+56 // KPI-Berechnung basierend auf exaktem Zeitpunkt
Performance-Tipp: Einmal aufrufen, überall verwenden
Kritisch für BI: Konsistenter Zeitstempel für alle Berechnungen:
let masterTimestamp = zeitstempel(); // Einmal aufrufen
let worksheet = workbook.getActiveWorksheet(); // Überall denselben Zeitstempel verwenden
worksheet.getRange(„A1“).setValue(„Daten vom “ + masterTimestamp.datum); worksheet.getRange(„Z1“).setValue(masterTimestamp.datum); // BI-Referenz worksheet.getRange(„Z2“).setValue(masterTimestamp.zeit); // Zeit-Referenz
// Alle nachgelagerten Berechnungen basieren auf identischem Zeitpunkt
Tipps für den Business-Alltag
- Power Query Integration: Baue den Zeitstempel direkt in deine Power Query OfficeScripts ein
- BI-Konsistenz: Verwende immer denselben Zeitstempel für alle Berechnungen eines Durchlaufs
- Versteckte Referenzen: Platziere Zeitstempel in versteckten Zellen (z.B. Spalte Z) für Formel-Referenzen
- Nutzer-Transparenz: Zeige Zeitstempel prominent an: „Daten vom 11.05.2026 um 15:30“
- Copy-Paste-Tauglich: Verwende korrekte OfficeScript-Syntax (getRange statt getCell)
- Dokumentation: Kommentiere, welche KPIs auf welchen Zeitstempel referenzieren
Fazit
Die Zeitstempel-Funktion hat mein konkretes Problem gelöst: Meine Nutzer wissen jetzt immer, von wann die Power Query-Daten stammen. Keine vergessenen Updates, keine Vertipper, keine Verwirrung mehr.
Die wichtigsten Vorteile aus der Praxis:
- Automatische Synchronisation zwischen Power Query-Update und Zeitstempel
- Präzise Zeitreihen-Berechnungen für historische Analysen und Prognosen
- Vollständige Transparenz für Endnutzer über Datenaktualität
- Konsistente Referenzpunkte für komplexe KPI-Berechnungen
- Eliminierung manueller Fehler bei Zeitstempel-Updates
Probiere die Funktion in deinem nächsten Power Query-Projekt aus! Du wirst überrascht sein, wie ein einfacher Zeitstempel deine Datenqualität und Nutzerzufriedenheit verbessert. Das komplette Script findest du als Download-Datei – einfach in dein OfficeScript kopieren und nie wieder manuelle Zeitstempel vergessen.
Viel Erfolg beim Lösen deiner eigenen Power Query-Herausforderungen!
Hier der komplette Code zum Script, zum einfachen herauskopieren und nutzen.
function main(workbook: ExcelScript.Workbook) {
//Hier dein Hauptcode
const stamp = zeitstempel()
/*
mit stamp.datum und stamp.zeit kann man sich nun die Datums und Uhrzeitkomponenten
des Zeitstempels holen
*/
let referenz = zeitstempel(); workbook.getActiveWorksheet().getRange("Z1").setValue(referenz.datum);
}
function zeitstempel() {
// Zeitkomponenten generieren
const zeitstempel = new Date();
const jahr = zeitstempel.getFullYear();
const monat = zeitstempel.getMonth() + 1; // Indexbasierte Zählung Januar = 0
const tag = zeitstempel.getDate();
const stunde = zeitstempel.getHours();
const minute = zeitstempel.getMinutes();
// Deutsche Formatierung erstellen
let zeitstempel_datum = tag + "." + monat + "." + jahr;
let zeitstempel_zeit = stunde + ":" + minute;
// Zeitkomponenten zurückgeben
return {
datum: zeitstempel_datum,
zeit: zeitstempel_zeit
}
}
Martin Reichelt ist Spezialist für Microsoft-Automatisierung und Verfechter der Citizen Developer Bewegung. Bei XelUp zeigt er, wie man das volle Potenzial von Excel ausschöpft und durch Power Automate effiziente Cloud-Workflows schafft, um wertvolle Lebenszeit im Job zurückzugewinnen.
