官术网_书友最值得收藏!

DAX時間智能函數可在任何標準公歷日歷表上使用。如果你已經有一個Date表,則可以將其導入并使用,而不會出現任何問題。如果沒有Date表,則可以使用DAX計算表來創建。例如,以下DAX表達式定義了本章中使用的簡單Date表。

計算表

Date = 
VAR FirstFiscalMonth = 7    -- 會計年度的第一個月
VAR FirstDayOfWeek = 0      -- 0 = 周日, 1 = 周一, ...
VAR FirstYear =             -- 自定義使用的第一個年份
    YEAR ( MIN ( Sales[Order Date]  ))
RETURN
GENERATE (
    FILTER (
        CALENDARAUTO (),
        YEAR ( [Date] ) >= FirstYear
    ),
    VAR Yr = YEAR ( [Date] )             -- 年份編號
    VAR Mn = MONTH ( [Date] )            -- 月份編號(1-12)
    VAR Qr = QUARTER ( [Date] )          -- 季度編號(1-4)
    VAR MnQ = Mn - 3 * (Qr - 1)          -- 季度中的月份編號(1-3)
    VAR Wd = WEEKDAY ( [Date], 1 ) –1    -- 星期幾(0 = 周日,1 = 周一,...)
    VAR Fyr =                            -- 會計年度編號
        Yr + 1 * ( FirstFiscalMonth > 1 && Mn >= FirstFiscalMonth )
    VAR Fqr =                            -- 會計季度(字符串)
        FORMAT ( EOMONTH ( [Date], 1 - FirstFiscalMonth ), "\QQ" )
    RETURN ROW (
        "Year", DATE ( Yr, 12, 31 ),
        "Year Quarter", FORMAT ( [Date], "\QQ-YYYY" ),
        "Year Quarter Date", EOMONTH ( [Date], 3 - MnQ ),
        "Quarter", FORMAT ( [Date], "\QQ" ),
        "Year Month", EOMONTH ( [Date], 0 ),
        "Month", DATE ( 1900, MONTH ( [Date] ), 1 ),
        "Day of Week", DATE ( 1900, 1, 7 + Wd + (7 * (Wd < FirstDayOfWeek)) ),
        "Fiscal Year", DATE ( Fyr + (FirstFiscalMonth = 1), FirstFiscalMonth, 1 ) - 1,
        "Fiscal Year Quarter", "F" & Fqr & "-" & Fyr,
        "Fiscal Year Quarter Date", EOMONTH ( [Date], 3 - MnQ ),
        "Fiscal Quarter", "F" & Fqr
    )
)

你可以自定義前3個變量以創建滿足特定業務需求的Date表。為了獲得正確的結果,當列不是文本格式,而是具有標準或自定義格式的“日期”數據類型時,必須按以下方式在數據模型中對列進行設置。

● Date:m/dd/yyyy(8/14/2007),用作標記為日期表的列。

● Year:yyyy(2007)。

● Year Quarter:文本(Q3-2008)。

● Year Quarter Date:隱藏(9/30/2008)。

● Quarter:文本(Q1)。

● Year Month:mmm yyyy(Aug 2007)。

● Month:mmm(Aug)。

● Day of Week:ddd(Tue)。

● Fiscal Year:\F\Y yyyy(FY 2008)。

● Fiscal Year Quarter:文本(FQ1-2008)。

● Fiscal Year Quarter Date:隱藏(9/30/2008)。

● Fiscal Quarter:文本(FQ1)。

此模式中的Date表具有兩個層次結構。

● 日歷:年(Year)、季度(Year Quarter)和月(Year Month)。

● 會計:年(Fiscal Year)、季度(Fiscal Year Quarter)和月(Year Month)。

不管來源如何,若要使用此模式的公式,Date表必須包括一個隱藏的DateWithSales計算列。

Date表中的計算列

DateWithSales = 
'Date'[Date] <= MAX ( Sales[Order Date] )

如果日期早于或等于Sales表中的最后交易日期,則Date[DateWithSales]列是TRUE,否則為FALSE。換句話說,“過去”日期的DateWithSales為TRUE,“未來”日期的DateWithSales為FALSE,這里的“過去”和“未來”均是相對于Sales中的最后交易日期來定義的。

主站蜘蛛池模板: 隆化县| 临颍县| 聂荣县| 垦利县| 饶河县| 崇信县| 永吉县| 新田县| 琼结县| 丽水市| 江西省| 乐亭县| 民丰县| 禹州市| 嘉峪关市| 海兴县| 沐川县| 大兴区| 济宁市| 四平市| 双鸭山市| 水富县| 锡林郭勒盟| 蒙自县| 凤山市| 宁德市| 商洛市| 青浦区| 延津县| 西峡县| 邮箱| 双辽市| 吉隆县| 关岭| 易门县| 秦皇岛市| 科尔| 平定县| 青州市| 黄山市| 徐闻县|