1
如何在 Power BI Desktop 中使用 DAX 时间智能函数
大家知道 DAX 函数中有这样一类函数,专门用于聚合和比较一段日期的数据的函数——时间智能函数。为
了使用时间智能函数,数据模型中需要包含有一个日期表。日期表的数据中必须包含相关日期段不间断的
每天的日期数据类型的数据列,此列被称作日期列。时间智能函数分为两类:返回单个日期的函数,此类
别中用于返回单个日期的函数, 然后可将结果用作其他函数的参数;返回日期表的函数,此类函数通常用
作 CALCULATE 函数的筛选参数。所有时间智能函数都一样,每个函数将日期列用作自己的一个参数。
在 Excel 的 Power Pivot 和 Analysis Service Tabular 的建模过程中通过将与事实(数据)表格建立关系
的日期表标记为日期表,使得这些时间智能函数在数据分析诸如:“当年至今”或“上一年相同日期段”
聚合等等与日期相关的计算,无需再通过编写日期相关的复杂 DAX 函数表达式,使得数据建模变得更为简
单、高效和明了(自定义日期相关的 DAX 函数表达式的方法比较复杂,但有许多资料可在网上查寻,此处
不作描述)。
在建立数据模型中与日期表相关的关系,通常场景是使用日期相关的数据列与事实表中的日期数据列连
接。但是也有这种场景,与日期表建立的关系可能会通过其中的整数数据列或字符串数据列来连接事实
表。图 1 所示,数据模型中 Date 日期表通过整数型[DateKey]列与事实表 InternetSales 的
[OrderDateKey]列建立了关系。(本文采用的示例数据模型为:AdventureWorks)
图 1
对于后一种场景在 Excel 的 Power Pivot 和 Analysis Service Tabular 的建模中将日期表标记为日期表会
显得尤为重要了。使用过 Excel 的 Power Pivot 都知道,在标记日期表过程中系统会指示你唯一标识符的
列必须为日期数据类型。图 2 所示,数据模型中的 Date 日期表在标记为日期表的过程中,日期数据类型
评论0