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

DAX時(shí)間智能函數(shù)可在任何標(biāo)準(zhǔn)公歷日歷表上使用。如果你已經(jīng)有一個(gè)Date表,則可以將其導(dǎo)入并使用,而不會(huì)出現(xiàn)任何問題。如果沒有Date表,則可以使用DAX計(jì)算表來創(chuàng)建。例如,以下DAX表達(dá)式定義了本章中使用的簡單Date表。

計(jì)算表

Date = 
VAR FirstFiscalMonth = 7    -- 會(huì)計(jì)年度的第一個(gè)月
VAR FirstDayOfWeek = 0      -- 0 = 周日, 1 = 周一, ...
VAR FirstYear =             -- 自定義使用的第一個(gè)年份
    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 =                            -- 會(huì)計(jì)年度編號
        Yr + 1 * ( FirstFiscalMonth > 1 && Mn >= FirstFiscalMonth )
    VAR Fqr =                            -- 會(huì)計(jì)季度(字符串)
        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個(gè)變量以創(chuàng)建滿足特定業(yè)務(wù)需求的Date表。為了獲得正確的結(jié)果,當(dāng)列不是文本格式,而是具有標(biāo)準(zhǔn)或自定義格式的“日期”數(shù)據(jù)類型時(shí),必須按以下方式在數(shù)據(jù)模型中對列進(jìn)行設(shè)置。

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

● 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表具有兩個(gè)層次結(jié)構(gòu)。

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

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

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

Date表中的計(jì)算列

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

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

主站蜘蛛池模板: 喀什市| 松滋市| 开封县| 固安县| 运城市| 延安市| 台江县| 德保县| 瑞昌市| 双鸭山市| 昌黎县| 肃宁县| 双牌县| 额济纳旗| 景洪市| 桐柏县| 奈曼旗| 烟台市| 临洮县| 木兰县| 宜城市| 西畴县| 天台县| 威远县| 宝坻区| 通州市| 北碚区| 玉山县| 新丰县| 长武县| 平陆县| 丰宁| 奉新县| 沙坪坝区| 阳西县| 青河县| 洛浦县| 甘泉县| 鄄城县| 邵阳市| 沭阳县|