in Power BI Desktop in die Modellansicht wechseln,
neue Tabelle -> DAX einfügen:
(hier auf Basis Abfrage (Power Query) Name financials, Feldname [Date],
entsprechend anpassen bei Übernahme in eigenes Datenmodell)
--- SCHNIPP mit ADDCOLUMNS() ---
Kalender_DAX =
//VAR StartDatum = EDATE(TODAY(),-48)
//VAR EndDatum = EDATE(TODAY(),48)
//VAR StartDatum =DATE(2013,1,1)
//VAR EndDatum = DATE(2014,12,31)
//oder mit DAX Funktionen FIRSTDATE,LASTDATE
VAR StartDatum = FIRSTDATE(financials[Date])
VAR EndDatum = LASTDATE(financials[Date])
RETURN
ADDCOLUMNS(
CALENDAR(StartDatum,EndDatum),
"Jahr", YEAR([Date]),
"GJ" , YEAR(EDATE([Date],9))-1 & "/" & YEAR(EDATE([Date],9)),
"Jahr Monat", YEAR([Date]) &"."& MONTH([Date]),
"Quartal", QUARTER([Date]),
"Monat", MONTH([Date]),
"Monatsname", FORMAT(MONTH([Date]),"mmmm"),
"Tag", DAY([Date]),
"KW", WEEKNUM([Date],1),
"Jahr Monat Sortierung", YEAR([Date]) & UNICHAR(MONTH([Date]) + 64),
"Datenschnitt Letzten 12 Monate", IF(DATEDIFF([Date],EndDatum,MONTH) <=6,"JA","NEIN"),
"Datenschnitt Heute Gestern", IF([Date]=TODAY(), "HEUTE",
IF([Date] = TODAY()-1, "Gestern",
FORMAT([Date],"dd.mm.yyyy")
)
)
)
--- SCHNAPP ---
DAX Kalender mit Geschäftsjahr
(hier auf Basis Abfrage (Power Query) Name financials, Feldname [Date],
entsprechend anpassen bei Übernahme in eigenes Datenmodell)
--- SCHNIPP mit CALENDERAUTO() und ROW() ---
Kalender_GJ_DAX =
VAR FirstFiscalMonth = 4 -- Erster Monat des Geschäftsjahres GJ
VAR FirstDayOfWeek = 1 -- 0 = Sonntag, 1 = Montag, ...
VAR FirstYear = -- setzt das erste Jahr
YEAR ( MIN ( financials[Date] ))
RETURN
GENERATE (
FILTER (
CALENDARAUTO (),
YEAR ( [Date] ) >= FirstYear
),
VAR Yr = YEAR ( [Date] ) -- Jahr Nummer
VAR Mn = MONTH ( [Date] ) -- Monat Nummer (1-12)
VAR Qr = QUARTER ( [Date] ) -- Quartal Nummer (1-4)
VAR MnQ = Mn - 3 * (Qr - 1) -- Monat im Quartal (1-3)
VAR Fyr = -- Geschäftsjahr Nummer
Yr + 1 * ( FirstFiscalMonth > 1 && Mn >= FirstFiscalMonth )
VAR Fqr = -- Geschäftsjahres Quartal (Zeichen)
FORMAT ( EOMONTH ( [Date], 1 - FirstFiscalMonth ), "\QQ" )
RETURN ROW (
"KJ Enddatum", DATE ( Yr, 12, 31 ),
"Quartal KJ", FORMAT ( [Date], "\QQ-YYYY" ),
"KJ Quartal kurz", FORMAT ( [Date], "\QQ" ),
"KJ Quartal Enddatum", EOMONTH ( [Date], 3 - MnQ ),
"KJ Monatsende", EOMONTH ( [Date], 0 ), -- Monat Enddatum
"KJ Monatsanfang", EOMONTH ( [Date], -1 ) + 1, -- Monat Startdatum
"GJ Enddatum", DATE ( Fyr + (FirstFiscalMonth = 1), FirstFiscalMonth, 1 ) - 1,
"GJ Quartal kurz", Fqr,
"GJ Quartal Enddatum", EOMONTH ( [Date], 3 - MnQ ),
"GJ", (Fyr - 1) & "/"& Fyr
)
)
--- SCHNAPP ---
Kalender (Name Kalender_Filter) für relative Zeiträume (letzten 12 Monate usw.)
verknüpft über Spalte Kalender[Date] mit anderem Kalender (Name des Kalenders = Kalender),
Kreuzfilterrichtung BEIDE
siehe https://www.youtube.com/watch?v=fKygF7VEJnQ&t=525s
--- SCHNIPP mit UNION() und ADDCOLUMNS() ---
Kalender_Filter =
UNION(
ADDCOLUMNS(
DATESMTD(Kalender[Date]),
"Filter","MTD (Month-to-date)","Sortierung",1
),
ADDCOLUMNS(
DATESQTD(Kalender[Date]),
"Filter","QTD (Quarter-to-date)","Sortierung",2
),
ADDCOLUMNS(
DATESYTD(Kalender[Date]),
"Filter","YTD (Year-to-date)","Sortierung",3
),
ADDCOLUMNS(
PREVIOUSYEAR(DATESYTD(Kalender[Date])),
"Filter","letztes Jahr","Sortierung",4
),
ADDCOLUMNS(
PREVIOUSQUARTER(DATESQTD(Kalender[Date])),
"Filter","letztes Quartal","Sortierung",5
),
ADDCOLUMNS(
PREVIOUSMONTH(DATESMTD(Kalender[Date])),
"Filter","letzter Monat","Sortierung",6
),
ADDCOLUMNS(
CALENDAR(MIN(Kalender[Date]),Max(Kalender[Date])),
"Filter","Alle","Sortierung",7
),
ADDCOLUMNS(
DATESINPERIOD(Kalender[Date],MAX(Kalender[Date]),-12,MONTH ),
"Filter","letzten 12 Monate","Sortierung",0
)
)
--- SCHNAPP ---
Kommentare
Kommentar veröffentlichen