Erzeugen einer Datumstabelle mit Hilfe von DAX/Create a Datetable with DAX
Öffne den Power BI Desktop – gehe zu Datenansicht auf der linken Seite – erstelle eine neue Tabelle – Gebe folgendes DAX Statement ein: Date = CALENDAR(MIN(Bonds[Date]),MAX(Bonds[Date]))
– bestätige deine Eingabe – fertig
_______________________
Open the Power BI Desktop – go to data view on the left side – create a new table – enter the following DAX statement: Date = CALENDAR(MIN(Bonds[Date]),MAX(Bonds[Date])) – confirm your entry – done
Ein kurzer Gedanke dazu/ A quick thought on this
Um im Power BI, über die DAX Funktion eine Datumstabelle zu erezugen, ist nicht viel notwendig. Wie wir im ersten Click Tip gesehen haben. Wir müssen aber nun noch die neue Datumstablle als Datumstablle kennzeichnen damit es später einfacher für Power BI dies in den sogenannten Time Intelleigence Funktionen als Datum zu erkennen. Ihr findet dazu einen kurzen Screenshoot unter dem Click Tip.
Ihr könnt auch statt des dynamischen Datums, welches sich nun an nach den Bond Date richtet ein statisches Datum eingeben. Dazu könnt ihr einfach folgendes Statement nutzen: Date = CALENDAR(Date(2018,01,01),Date(2020,01,01))
. Ihr wollt aber lieber immer das aktuelle Datum? Auch kein Problem nutzt statt des letzten festen Datums einfach Today Date = CALENDAR(Date(2018,01,01),Today())
.
Es gibt in dem Kontext auch noch Calenderauto als Tabellenfunktion. Diese Funktion sucht automatisch das erste und letzte Jahr im Datenmodell und kreiiert eigenständig eine Datumstabelle mit dem Anfang des Jahres ab dem 01.01.”….” und dem 31.12.”….”. Bedeutet man kann diese Funktion wie in folgendem Statment nutzen: Date= Calenderauto()
.
Nun aber noch ein kurzer Gedanke dazu. Vielleicht fragt sich der ein oder andere ja nun “Warum machen wir das denn nicht im Power Query”? Das ist eine sehr gute Frage, denn es ist natürlich genauso gut möglich diese Abfragen im Power Query Editor zu erstellen. Doch dem ein oder anderen ist es vielleicht nicht möglich dies dort umzusetzen. Daher ist es natürlich auch möglich dies über DAX zu generieren. Generell gibt es eine die Aussage je näher an der Datenquelle umso besser. Es ist nämlich genauso gut möglich alle Datumsfelder genauso 1:1 in Power Query umzusetzen. Oder dementsprechend in eurer original Datenquelle wie z.Bsp. in einer SQL Datenbank. RADACAD hat dazu einen schönen Beitrag verfasst wie man diese Datumsfelder auch in Power Query umsetzten kann. Hier wird darauf verwiesen das in den Liveabfragen Power Query seine Stärken hat wenn es z.Bsp. um Feiertage geht. Der Link zu besagten Artikel findet ihr hier: https://radacad.com/create-a-date-dimension-in-power-bi-in-4-steps-step-1-calendar-columns
Zusammengefasst gibt es als drei Mögliche Orte dan dem eine Datumtabelle erzeugt werden kann:
- Datenquelle (z.B. SQL DB)
- Power Query Editor
- DAX
_______________________
As we have seen in the first Click Tip. In order to obtain a date table in Power BI, via the DAX function, not much is necessary. As we have seen in the first Click Tip. But now we have to mark the new date table as a date table so that it is easier for Power BI to recognize it as a date in the so-called Time Intelleigence functions. You will find a short screenshot below the Click Tip.
You can also enter a static date instead of the dynamic date, which is now based on the bond date. You can simply use the following statement: Date = CALENDAR(Date(2018,01,01),Date(2020,01,01))
. But you prefer the current date? No problem either, just use Today Date = CALENDAR(Date(2018,01,01),Today())
instead of the last fixed date. In order to obtain a date table in Power BI, via the DAX function, not much is necessary. As we have seen in the first Click Tip.
In this context, there is also Calenderauto as a table function. This function automatically searches for the first and last year in the data model and independently creates a date table with the beginning of the year from the 01.01.”…” and the 31.12.”…”. Means you can use this function as in the following statment: Date= Calendarauto()
.
But now a short thought about it. Maybe one or the other asks himself now “Why don’t we do this in Power Query”? This is a very good question, because it is of course just as well possible to create these queries in the Power Query Editor. But some people may not be able to do this in the Power Query Editor. Therefore it is of course also possible to generate this via DAX. In general, the closer to the data source, the better. It is just as well possible to convert all date fields 1:1 in Power Query. Or correspondingly in your original data source like e.g. in a SQL database. RADACAD has written a nice article about how to convert these date fields into Power Query. Here it is pointed out that Power Query has its strengths in live queries when it comes to e.g. holidays. The link to this article can be found here: https://radacad.com/create-a-date-dimension-in-power-bi-in-4-steps-step-1-calendar-columns
In summary, there are three possible places where a date table can be created:
- Data source (SQL DB,etc…)
- Power Query Editor
- DAX