- DAX設計模式(第2版)
- (意)阿爾貝托·法拉里等
- 681字
- 2022-12-20 18:38:57
2.1.1 什么是標準DAX時間智能函數(shù)
標準時間智能函數(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ù),因此不應當用于標量表達式中。
- iPad+Procreate數(shù)字插畫設計案例教程(全彩微課版)
- 中文版After Effects CC實用教程
- CoffeeScript Application Development
- Microsoft SharePoint 2010 Administration Cookbook
- Rhino 6.0中文版入門、精通與實戰(zhàn)
- Python Text Processing with NLTK 2.0 Cookbook: LITE
- CorelDRAW X5實用教程(第2版)
- After Effects 2022從入門到精通
- AI繪畫+LoRA模型訓練從新手到高手
- MATLAB R2024a完全自學一本通
- 巧用ChatGPT高效搞定Excel數(shù)據(jù)分析
- Python氣象應用編程
- UG NX 12.0中文版實戰(zhàn)從入門到精通
- 中文版Photoshop CC 2018基礎培訓教程(全彩版)
- 手把手教你學成Excel高手