In meinem letzten Beitrag habe ich die technischen Anforderungen an eine Kalendertabelle beschrieben, die sich im Wesentlichen an den Anforderungen der DAX Time Intelligence-Funktionen orientieren. In diesem Beitrag soll es nicht mehr rein um die Technik gehen, sondern ich möchte darüber schreiben, wie inhaltliche Anforderungen an eine Kalendertabelle in Power BI und Power Pivot aussehen können. Schließlich läuft alles darauf hinaus, die im Datenmodell befindlichen Daten, im Rahmen der eigenen und individuellen Geschäftsprozesse zu analysieren.
Als Abonnent meines Newsletters erhältst Du die Beispieldateien zu den Beiträgen dazu. Hier geht’s zum Abonnement des Newsletters!
Eine Kalendertabelle, das kannst Du in meinem vorangegangenen Beitrag lesen, muss gewisse technische Voraussetzungen erfüllen, damit zeitbezogene Kalkulationen in DAX fehlerfrei funktionieren. Darüber hinaus ist man in der Gestaltung dieser Dimensionstabelle jedoch völlig frei. Das ist auch notwendig, denn Kalendertabellen müssen in unterschiedlichen Unternehmen teils sehr verschiedene Logiken abbilden.
Beispiele für Unterschiede zwischen Kalendertabellen
Unternehmen „ticken“ verschieden und orientieren sich unterschiedlich am Kalender. So haben sie relativ häufig ein Geschäftsjahr, das nicht am 1. Januar beginnt, sondern vom Kalenderjahr abweicht. Bei allen Texten innerhalb einer Kalendertabelle, wie z. B. Monatsnamen (Januar, January, janvier) und Tagesnamen (Montag, Monday, lundi) spielt die Sprache eine Rolle. Hier muss je nach Unternehmenssprache ein Konsenz gefunden werden. Darüber hinaus haben verschiedene Ländern ebenso verschiedene Kalender. Betrachtet man z. B. den Chinesischen Kalender, so variiert hier sogar jährlich der Jahresanfang, der im Gregorianischen Kalender ja stets der 1. Januar ist.
Die meisten Unterschiede zwischen Kalendern gibt es meiner Meinung nach im Bereich der Definition der Kalenderwochen. Hier gibt es die verschiedensten Kreationen:
Definition der 1. Woche des Jahres
- In den USA beginnt die 1. Kalenderwoche immer mit dem 1. Januar.
- Im deutschsprachigen Raum hat sich die ISO-Kalenderwoche durchgesetzt. Hier ist die Woche 1 diejenige Woche im Jahr, die den ersten Donnerstag des Jahres enthält.
Unterschiedliche Systematiken für die Zuordnung der Kalenderwochen zu einem Kalendermonat
Es gibt viele verschiedene Systematiken für das Bilden von Monaten. Hier ein paar Beispiele:
- 4-5-4 Methode, bei der das Gemeinjahr (Nicht-Schaltjahr) aus 4 gleichlangen Quartalen besteht. Jedes Quartal besteht aus drei Monaten, von denen der erste 28 Tage („4“ Wochen), der zweite 35 Tage („5“ Wochen) und der dritte wieder 28 Tage („4“ Wochen) umfasst.
- 5-4-4 Methode, bei der das Gemeinjahr (Nicht-Schaltjahr) aus 4 gleichlangen Quartalen besteht. Jedes Quartal besteht aus drei Monaten, von denen der erste 35 Tage („5“ Wochen), der zweite 28 Tage („4“ Wochen) und der dritte wieder 28 Tage („4“ Wochen) umfasst.
- 13-Monate-Kalender-Methode, bei der von Monaten ausgegangen wird, die exakt 4 Wochen (28 Tage) beinhalten.
Nachdem ich nun ein wenig Theorie zu Kalendern, Jahresanfängen und Wochenzuordnungen beschrieben habe, sollte klar sein, warum eine Kalendertabelle viele verschiedene Formen haben kann und muss. Der weitere Beitrag zeigt, wie einige der geläufigsten Bestandteile einer Kalendertabelle mit Power Query gebildet werden können. Ich werde ihn bei Bedarf immer mal wieder anpassen und ergänzen.
Anlegen einer Kalendertabelle in Power BI
In Power BI gibt es diverse Möglichkeiten, eine Kalendertabelle zu erstellen. Falls Du schnell eine einfache Kalendertabelle in Power Pivot für Excel erstellen willst, zeigt Dir Uwe in diesem Video, wie das geht. Marco Russo hat ein sehr umfangreiches Skript in DAX geschrieben und erstellt damit eine kalkulierte Tabelle im Datenmodell. Da Power Pivot gegenwärtig keine kalkulierten Tabellen erstellen kann, funktioniert diese Lösung nicht in Power Pivot für Excel. Es spricht prinzipiell auch nichts dagegen, sich eine entsprechende Tabelle in Excel zu erstellen und diese in Power BI zu importieren. Falls eine entsprechende Tabelle bereits in einem Dir zur Verfügung stehendem Date Warehouse „herumliegt“, dann importiere sie Dir einfach von dort. Es gibt viele Wege.
Ich bin ein Freund von Power Query und schreibe mir daher alle Funktionalitäten für eine Kalendertabelle gerne in M. Darüber hinaus ist die Nutzung von Power Query der übliche Weg, Tabellen in mein Datenmodell zu bekommen und ich bleibe hier gerne konsistent. Im weiteren Teil dieses Beitrags beschreibe ich nützliche Bestandteile einer Kalendertabelle, zeige, wie Du sie mit nativen oder auch benutzerdefinierten M-Funktionen erstellst und erläutere zudem den Zweck, den diese Spalten im Datenmodell erfüllen. Alle Berechnungen innerhalb dieser Kalendertabelle nehmen Bezug auf die Spalte Kalendertabelle[Datum]. Du solltest in Deiner Tabelle also eine Spalte Datum haben, damit alle weiteren Formeln und Funktionen auch bei Dir funktionieren.
Es gibt datumsbezogene Funktionen in Power Query, die Texte zurückgeben. Hierbei handelt es sich beispielsweise um Monats- und Tagesnamen. Ein Beispiel für eine solche Funktion ist
Date.DayOfWeekName([Datum], culture)
, die zu einem Datum den Namen des Wochentages zurückgibt. Diese Funktionen haben einen optionalen Parameter Culture. Darüber kann programmatisch gesteuert werden, in welcher Sprache dieser Text ausgegeben wird. Lässt man diesen optionalen Parameter leer, so orientiert sich die Funktion an der Spracheinstellung Deines Betriebssystems. Eine Liste der durch Microsoft unterstützten Cultures findest Du hier. Der Parameter muss als Text übergeben werden, also z. B. so: „de-de“ (mit Anführungsstrichen).
Alle folgende Bestandteile dieses Beitrags können als Baukasten betrachtet werden. Suche Dir eine benötigte Formel für Deine zu erstellende Kalendertabelle heraus und nutzen sie. Falls Dir eine Formel fehlt, schreibe mir gerne eine Nachricht, oder einen Kommentar. Ich werde versuchen, dies dann in diesen Beitrag mit aufzunehmen.
Kalenderjahresbezug
Die Basis einer jeden Kalendertabelle ist eine Datumsspalte. Diese in Power Query via M-Code zu erzeugen, ist nicht sonderlich intuitiv. Aus diesem Grund habe ich eine eigene Funktion geschrieben, die Dir das Anlegen einer solchen Spalte stark vereinfacht. Erzeuge einfach eine leere Abfrage in Power Query und kopiere Dir diese Funktion in den Erweiterten Editor. Als Ergebnis erhältst Du eine Funktion, deren Parameter Du über die GUI wie folgt füllen kannst:
Die Schritte 1 und 2 passe dabei bitte nach Deinem Belang an. Bedenke jedoch, dass Du in Deiner Kalendertabelle immer vollständige Kalender- bzw. Geschäftsjahre abbilden solltest (Warum das so ist , liest du hier). Benenne die entstandene Spalte um in Datum. Mit der bestehenden Datumsspalte, können alle hier weiter aufgeführten Berechnungen vorgenommen werden.
Tagesbasierte Kalkulationen
Volle Datumsbezeichnung
Funktion: Date.ToText([Datum], "dd. MMMM yyyy", culture)
Beispielwert: 01. Januar 2015
Zweck/ Nutzen: Vergleich und Filterung auf Ebene des spezifischen Tages.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Culture: Culture ist ein optionaler Parameter und muss als Text – also in Anführungszeichen – übergeben werden. Ein Beispiel für einen englischen Text wäre „en-US“. Eine Übersicht unterstützter Cultures findest Du hier.
Name des Tages
Funktion: Date.DayOfWeekName([Datum], culture)
Beispielwert: Sonntag
Zweck/ Nutzen: Vergleich und Filterung von Wochentagen.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Culture: Culture ist ein optionaler Parameter und muss als Text – also in Anführungszeichen – übergeben werden. Ein Beispiel für einen englischen Text wäre „en-US“. Eine Übersicht unterstützter Cultures findest Du hier.
Ermittlung, ob Arbeitstag oder Wochenende
Funktion: if (Date.DayOfWeek([Datum], Day.Monday) + 1) < 6 then "AT" else "WE"
Beispielwert: „AT“, „WE“
Zweck/ Nutzen: Vergleiche von Monaten, Quartalen etc. bzgl. enthaltener Arbeistage.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Tag in der Kalenderwoche (nicht ISO-Kalenderwoche)
Funktion: Date.DayOfWeek([Datum], Day.Monday) + 1
Beispielwert: 1-7
Zweck/ Nutzen: Kann als Spalte zur Sortierung der Tagesbezeichnung genutzt werden
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Tag im Kalendermonat
Funktion: Date.Day([Datum])
Beispielwert: 1-31
Zweck/ Nutzen: Tagesbasierte Vergleiche in DAX Measures.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Tag im Kalenderjahr
Funktion: Date.DayOfYear([Datum])
Beispielwert: 1-366
Zweck/ Nutzen: Tagesbasierte Vergleiche in DAX Measures.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Fortlaufende Tagesnummer
Hierfür sieh bitte unter Kalkulation fortlaufender Nummern nach.
Wochenbasierte Kalkulationen
Kalenderwoche im Jahr (nicht ISO-Kalenderwoche)
Funktion: Date.WeekOfYear([Datum])
Beispielwert: 1-54
Zweck/ Nutzen: Wochenbasierte Vergleiche in DAX Measures.
Nutzung der Funktion:Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
ISO-Kalenderwochennummer
Funktion:
Beispielwert: 1-53
Zweck/ Nutzen: Diese Funktion ordnet einen Kalendertag einer nach ISO-Norm 8601 definierten Kalenderwoche zu.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnIsoWeek“. Gehe dann in Deine Abfrage, in der Du die ISO-Kalenderwoche hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein „= fnIsoWeek([Datum])“. Dies erzeugt eine Spalte mit der Iso-Kalenderwoche.
ISO-Kalenderwochenbezeichnung
Funktion:
Beispielwert: „ISO KW 15“
Zweck/ Nutzen:Diese Funktion ordnet einen Kalendertag einer nach ISO-Norm 8601 definierten Kalenderwoche zu und erzeugt einen Text nach der Form „ISO KW 15“.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnIsoWeekName“. Gehe dann in Deine Abfrage, in der Du die ISO-Kalenderwochenbezeichnung hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein „= fnIsoWeekName([Datum])“. Dies erzeugt eine Spalte mit der Iso-Kalenderwochenbezeichnung.
Monatsbasierte Kalkulationen
Monatsnummer im Kalenderjahr
Funktion: Date.Month([Datum])
Beispielwert: 1-12
Zweck/ Nutzen: Kann als Spalte zur Sortierung der Monatsbezeichnung genutzt werden
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Name des Monats
Funktion: Date.MonthName([Datum], culture)
Beispielwert: Februar
Zweck/ Nutzen: Vergleich und Filterung von Monaten.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Culture: Culture ist ein optionaler Parameter und muss als Text – also in Anführungszeichen – übergeben werden. Ein Beispiel für einen englischen Text wäre „en-US“. Eine Übersicht unterstützter Cultures findest Du hier.
Fortlaufende Monatsnummer
Hierfür sieh bitte unter Kalkulation fortlaufender Nummern nach.
Quartalsbasierte Kalkulationen
Quartal im Kalenderjahr
Funktion: Date.QuarterOfYear([Datum])
Beispielwert: 1-4
Zweck/ Nutzen: Kann als Spalte zur Sortierung des Quartalsnamens genutzt werden.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Name des Quartals im Kalenderjahr
Funktion: "Q"&Number.ToText(Date.QuarterOfYear([Datum]))
Beispielwert: „Q1“ – „Q4“
Zweck/ Nutzen: Vergleich und Filterung von Quartalen.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Fortlaufende Quartalsnummer
Hierfür sieh bitte unter Kalkulation fortlaufender Nummern nach.
Halbjahresbasierte Kalkulationen
Halbjahr im Kalenderjahr
Funktion: Number.RoundUp(Date.Month([Datum])/6,0)
Beispielwert: 1-2
Zweck/ Nutzen: Kann als Spalte zur Sortierung der Halbjahresbezeichnung genutzt werden
Nutzung der Funktion:Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Name des Halbjahres im Kalenderjahr
Funktion: "HJ"&Number.ToText(Number.RoundUp(Date.Month([Datum])/6,0))
Beispielwert: „HJ1“ – „HJ2“
Zweck/ Nutzen: Vergleich und Filterung von Halbjahren.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Fortlaufende Halbjahresnummer
Hierfür sieh bitte unter Kalkulation fortlaufender Nummern nach.
Jahresbasierte Kalkulationen
Kalenderjahr
Funktion: Date.Year([Datum])
Beispielwert: 2018
Zweck/ Nutzen: Vergleich und Filterung von Kalenderjahren.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Kalkulation fortlaufender Nummern
Fortlaufende Nummern sind wichtig für den Fall, dass man benutzerdefinierte Time Intelligence-Funktionen in DAX schreiben will. Wer sich damit detaillierter auseinandersetzen möchte, dem kann ich folgenden englischsprachigen Beitrag ans Herz legen: Time Patterns.
fortlaufende Tagesnummer
Funktion: =
Table.AddIndexColumn(#"Name des vorherigen Schrittes", "Index", 1, 1)
Beispielwert: 723
Zweck/ Nutzen: Beginnend beim ersten Tag wird der Zähler pro Tag um 1 erhöht. Dies kann für benutzerdefinierte Time Intelligence-Funktionen sehr hilfreich sein.
Nutzung der Funktion: Füge über die fx-Schaltfläche (links neben der Formelleiste) einen neuen Schritt hinzu und füge die Formel in die Funktionsleiste ein. Beachte, „Namen des vorherigen Schrittes“ auf den Namen Deines letzten Schrittes in Power Query anzupassen.
fortlaufende Monatsnummer
Funktion:
Beispielwert: 25
Zweck/ Nutzen: Beginnend beim ersten Kalendermonat wird der Zähler pro Monat um 1 erhöht. Dies kann für benutzerdefinierte Time Intelligence-Funktionen sehr hilfreich sein.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnfortlaufendeMonatsnummer“. Gehe dann in Deine Abfrage, in der Du die fortlaufende Monatsnummer hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein „= fnfortlaufendeMonatsnummer([Datum])
„. Dies erzeugt eine Spalte mit der fortlaufenden Monatsnummer.
fortlaufende Quartalsnummer
Funktion:
Beispielwert: 5
Zweck/ Nutzen: Beginnend beim ersten Quartal wird der Zähler pro Quartal um 1 erhöht. Dies kann für benutzerdefinierte Time Intelligence-Funktionen sehr hilfreich sein.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnfortlaufendeQuartalsnummer“. Gehe dann in Deine Abfrage, in der Du die fortlaufende Quartalsnummer hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnfortlaufendeQuartalsnummer([Datum])
„.
Dies erzeugt eine Spalte mit der fortlaufenden Quartalsnummer.
fortlaufende Halbjahresnummer
Funktion:
Beispielwert: 5
Zweck/ Nutzen: Beginnend beim ersten Halbjahr wird der Zähler pro Quartal um 1 erhöht. Dies kann für benutzerdefinierte Time Intelligence-Funktionen sehr hilfreich sein.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnfortlaufendeHalbjahresnummer“. Gehe dann in Deine Abfrage, in der Du die fortlaufende Halbjahresnummer hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnfortlaufendeHalbjahresnummer([Datum])
„.
Dies erzeugt eine Spalte mit der fortlaufenden Halbjahresnummer.
Vom Kalenderjahr abweichende Geschäftsjahre
Geschäftsmonat
Funktion:
Beispielwert: GM05
Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Geschäftsmonatsnummer zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsmonat“. Gehe dann in Deine Abfrage, in der Du den Geschäftsmonat hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnGeschaeftsmonat([Datum], Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftsmonat.
Geschäftsmonat und Geschäftsjahr
Funktion:
Beispielwert: GM05_2017
Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Geschäftsmonatsnummer in Kombination mit dem Geschäftsjahr zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsMonatUndJahr“. Gehe dann in Deine Abfrage, in der Du den Geschäftsmonat mit Geschäftsjahr hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein „= fnGeschaeftsMonatUndJahr([Datum],
Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftsmonat in Kombination mit dem Geschäftsjahr.
Geschäftsquartal
Funktion:
Beispielwert: GQ1-GQ4
Zweck/ Nutzen: Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Quartalsnummer zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsQuartal“. Gehe dann in Deine Abfrage, in der Du das Geschäftsquartal hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnGeschaeftsQuartal([Datum],
Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftsquartal.
Geschäftsquartal und Geschäftsjahr
Funktion:
Beispielwert: Q04_2017
Zweck/ Nutzen: Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Quartalsnummer in Kombination mit dem Geschäftsjahr zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsQuartal“. Gehe dann in Deine Abfrage, in der Du das Geschäftsquartal hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnGeschaeftsQuartal([Datum],
Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftsquartal.
Geschäftshalbjahr
Funktion:
Beispielwert: GHJ1-GHJ2
Zweck/ Nutzen: Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Halbjahressnummer innerhalb des Geschäftsjahres zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsHalbjahr“. Gehe dann in Deine Abfrage, in der Du das Geschäftsquartal hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„= fnGeschaeftsHalbjahr([Datum],
Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftshalbjahres.
Geschäftshalbjahr und Geschäftsjahr
Funktion:
Beispielwert: GHJ2_2017
Zweck/ Nutzen: Zweck/ Nutzen: Weicht das Geschäftsjahr vom Kalenderjahr ab, so ist der Januar nicht der erste Monat des Geschäftsjahres. Um die Halbjahressnummer innerhalb des Geschäftsjahres in Kombination mit dem Geschäftsjahr zu ermitteln, kann diese Funktion genutzt werden.
Nutzung der Funktion: Kopiere diese Funktion in eine leere Abfrage und speichere diese unter einem Namen, z. B. „fnGeschaeftsHalbjahrUndJahr“. Gehe dann in Deine Abfrage, in der Du das Geschäftsquartal hinzufügen möchtest. Erzeuge eine benutzerdefinierte Spalte und gibt dann ein
„=fnGeschaeftsHalbjahrUndJahr([Datum],Monat des Geschäftsjahresanfangs)
„.
Als Monat des Geschäftsjahresanfangs nutze „Januar“ bis „Dezember„. Dies erzeugt eine Spalte mit dem Geschäftshalbjahres in Kombination mit dem Geschäftsjahr.
Ermittlung von Schaltjahren
Funktion: Date.IsLeapYear([Datum])
Beispielwert: True/ False
Zweck/ Nutzen: Ermittlung, ob der betreffende Tag in einem Schaltjahr liegt.
Nutzung der Funktion: Füge eine neue benutzerdefinierte Spalte hinzu und kopiere die Funktion in das Fenster benutzerdefinierte Spaltenformel.
Diese Auflistung hat keineswegs den Anspruch vollständig zu sein. Das wäre mit Sicherheit eine Sisyphus-Aufgabe. Aber ich werde, wie bereits weiter oben beschrieben, bei Bedarf an diesem Dokument arbeiten und es ergänzen.
Bis zum nächsten Mal und denk dran: Sharing is caring. Wenn Dir der Beitrag gefallen hat, dann teile ihn gerne. Falls Du Anmerkungen hast, schreibe gerne einen Kommentar, oder schicke mir eine Mail an lars@ssbi-blog.de
Viele Grüße aus Hamburg,
Lars
Ich schreibe meine Beiträge für Dich, den Leser. Bitte schenke mir eine Minute Deiner Zeit und bewerte die folgenden Kategorien, um mir zu helfen meine Beiträge so gut wie möglich zu schreiben. Danke 🙂
Lars ist Berater, Entwickler und Trainer für Microsoft Power BI. Er ist zertifizierter Power BI-Experte und Microsoft Trainer. Für sein Engagement in der internationalen Community wurde Lars seit 2017 jährlich durch Microsoft der MVP-Award verliehen. Lies hier mehr…
Lars Schreiber meint
Hallo Manfred,
bitte nutze meine Kalendertabelle, in welcher ich alle möglichen relevanten Spalten integriert habe: https://ssbi-blog.de/blog/business-topics/meine-projekterprobte-kalendertabelle-fuer-power-bi-und-power-pivot/
Viele Grüße,
Lars