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

標準時間智能函數(shù)是表函數(shù),該函數(shù)返回在CALCULATE中用作篩選器的日期列表。通過編寫更復雜的篩選器表達式可以獲得時間智能函數(shù)的結果。例如,DATESYTD函數(shù)可以返回篩選上下文中從顯示的日期所在年份的第一天到顯示的最后一天之間的所有日期。下方的表達式:

DATESYTD ( 'Date'[Date] )

對應下方的FILTER表達式:

VAR LastDateAvailable = MAX ( 'Date'[Date] )
VAR FirstJanuaryOfLastDate = DATE ( YEAR ( LastDateAvailable ), 1, 1 )
RETURN
    FILTER (
        ALL ( 'Date'[Date] ),
        AND (
            'Date'[Date] >= FirstJanuaryOfLastDate,
            'Date'[Date] <= LastDateAvailable
        )
    )

時間智能函數(shù)有很多,大多數(shù)時間智能函數(shù)是以這種方式呈現(xiàn)的。請注意:時間智能函數(shù)應用作CALCULATE的篩選器參數(shù),有時你會通過使用變量來實現(xiàn)這一點。在迭代器中使用時間智能函數(shù)是很危險的,因為會觸發(fā)隱式上下文轉換,從而導致從篩選上下文中檢索有效日期。DAX指南文檔中提供了更多詳細信息。

以下是使用時間智能函數(shù)時最佳做法的快速指南。

● 僅在CALCULATE / CALCULATETABLE的篩選器參數(shù)中使用諸如DATESYTD之類的時間智能函數(shù),或給變量分配篩選器。

● 在返回值的DAX公式中使用EDATE和EOMONTH之類的標量函數(shù)(也稱為標量表達式)。這些函數(shù)不是時間智能函數(shù),可以用于以行上下文執(zhí)行的表達式中。

● 使用CONVERT將日期轉換為數(shù)字,反之亦然。

● 有關時間智能函數(shù)的完整最新列表,請訪問DAX GUIDE網(wǎng)站。

DAX初學者經(jīng)常將時間智能函數(shù)與常規(guī)(標量)時間函數(shù)混淆。這種混淆導致出現(xiàn)常見錯誤,可以通過遵循以下建議來避免。

不要使用DATEADD來返回前一天或后一天。可以使用簡單的數(shù)學運算符來做到這一點。

不要使用PREVIOUSDAY來計算標量表達式中的前一天。從日期中減1,即可獲得標量表達式中的前一天。

不要將EOMONTH用作篩選器,而應使用ENDOFMONTH。EOMONTH是標量表達式。ENDOFMONTH是時間智能函數(shù)。請始終注意函數(shù)的返回類型:只有表函數(shù)是時間智能函數(shù),因此不應當用于標量表達式中。

主站蜘蛛池模板: 宣汉县| 顺昌县| 孝感市| 井研县| 丹棱县| 新宁县| 闻喜县| 巩留县| 甘孜县| 新蔡县| 志丹县| 灵石县| 五峰| 常宁市| 平乡县| 托克逊县| 台前县| 石柱| 固镇县| 邻水| 榆林市| 射洪县| 仁寿县| 昆明市| 文山县| 宕昌县| 龙胜| 上虞市| 高青县| 兰考县| 东乌珠穆沁旗| 璧山县| 伊宁市| 天祝| 泽库县| 浪卡子县| 格尔木市| 昌吉市| 蓬莱市| 大兴区| 伊宁市|