Havi dátum tábla generálása DAX-ból
Dátum táblát generálhatunk Power Query-vel és DAX-szal is. Mindkét módszernek vannak előnyei és hátrányai is, egetverő különbségek (kis adatmodelleknél) nincsenek. Az on-the-job Power BI / Power Pivot tréningeken mindig azt mondom a hallgatóknak, hogy válaszzák azt az eszközt, amelyben otthonosan mozognak. Ha DAX-ban erősebbek, mint Power Query-ben, akkor használják a DAX-ot, ellenkező esetben a Power Query-t
Mikor érdemes a dátum táblát generálni?
Mindig, de különösen akkor, ha a fejlesztések gyorsításához és az arculat egységesítéséhez template fájlokat használunk. A template fájl egy olyan fájl, amely tartalmazza a vállalat arculati elemeit (szín, betűtípus, logó, struktúra, stb.), kapcsolatokat a fő forrásrendszerekhez, templéteket az utolsó frissítés dátumának kiírásához, dinamikis fejléccímeket, és azokat a táblákat, amely minden riport előállításához kellenek. És a Dátum tábla pont ilyen. Nincs olyan Power BI / Power Pivot riport, amely előállításához ne lenne szükség a dátum táblára.
Dátum tábla generálásához Power BI-ban kattintson a kezdőlap fülön lévő „Új tábla” gombra
és illessze be a szerkesztőlécbe az alábbi DAXkódot:
Dátum =
VAR BaseCalendar =
FILTER (
CALENDAR ( DATE ( 2020, 1, 1 ), DATE ( 2021, 12, 31 ) ),
DAY ( [Date] ) = 1
) -- Ha a legkisebb és legnagyobb dátum között akarsz generálni akkor ezt használd a fenti helyett:
-- VAR BaseCalendar = FILTER ( CALENDARAUTO ( 12 ), DAY ( [Date] ) = 1 )
RETURN
GENERATE (
SELECTCOLUMNS (BaseCalendar, "Dátum", [Date]),
VAR BaseDate = [Dátum]
VAR YearDate =
YEAR ( BaseDate )
VAR MonthNumber =
MONTH ( BaseDate )
VAR YearMonthNumber = YearDate * 100 + MonthNumber
VAR MonthName_HUN =
SWITCH (
MonthNumber,
1, "Január",
2, "Február",
3, "Március",
4, "Április",
5, "Május",
6, "Június",
7, "Július",
8, "Augusztus",
9, "Szeptember",
10, "Október",
11, "November",
12, "December"
)
VAR MonthNameShort_HUN =
SWITCH (
MonthNumber,
1, "Jan",
2, "Feb",
3, "Márc",
4, "Ápr",
5, "Máj",
6, "Jún",
7, "Júl",
8, "Aug",
9, "Szept",
10, "Okt",
11, "Nov",
12, "Dec"
)
VAR YearMonthName_HUN =
SWITCH (
MonthNumber,
1, YearDate & ". január",
2, YearDate & ". február",
3, YearDate & ". március",
4, YearDate & ". április",
5, YearDate & ". május",
6, YearDate & ". június",
7, YearDate & ". július",
8, YearDate & ". augusztus",
9, YearDate & ". szeptember",
10, YearDate & ". október",
11, YearDate & ". november",
12, YearDate & ". december"
)
VAR YearMonthNameShort_HUN =
SWITCH (
MonthNumber,
1, YearDate & ". jan",
2, YearDate & ". febr",
3, YearDate & ". márc",
4, YearDate & ". ápr",
5, YearDate & ". máj",
6, YearDate & ". jún",
7, YearDate & ". júl",
8, YearDate & ". aug",
9, YearDate & ". szept",
10, YearDate & ". okt",
11, YearDate & ". nov",
12, YearDate & ". dec"
)
VAR Quarter =
"Q" & FORMAT ( BaseDate, "Q" )
VAR YearQuarter = YearDate & ". " & Quarter /* Ide bemásolom az angol megnevezéseket is:
VAR YearMonthName = FORMAT ( BaseDate, "yyyy mmmm" )
VAR YearMonthNameShort = FORMAT ( BaseDate, "yyyy mmm" )
VAR MonthName = FORMAT ( BaseDate, "mmmm" )
VAR MonthNameShort = FORMAT ( BaseDate, "mmm" )
*/
RETURN
ROW (
"Év hó srsz", YearMonthNumber,
"Év hónap", YearMonthName_HUN,
"Év hónap rövid", YearMonthNameShort_HUN,
"Év negyedév", YearQuarter,
"Hónap srsz", MonthNumber,
"Hónap", MonthName_HUN,
"Hónap rövid", MonthNameShort_HUN,
"Negyedév", Quarter,
"Év", YearDate
)
)
Ez le fog Önnek generálni egy olyan dátum táblát, amely kiszedi az Power BI / Power Pivot adatbázisban tárolt legkorábbi és legkésőbbi dátumokat, és erre az intervallumra legenerálja és feltölti a havi bontású dátum táblát. Ezt aztán már játszi könnyedséggel saját képére formálhatja :-)
Felhasznált irodalom: Using generate and row instead of addcolumns in DAX
Kővári Attila - BI projekt
POWER BI WORKSHOP
Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2024. január 24.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>
Új hozzászólás