📅  最后修改于: 2020-12-01 04:53:08             🧑  作者: Mango
您已在“了解时间智能”一章中了解了DAX强大的功能“时间智能”。在本章中,您将学习如何在各种情况下使用DAX时间智能功能。
DAX时间智能功能包括-
帮助您从数据中检索日期或日期范围的函数,用于计算相似期间的值。
具有标准日期间隔的功能,可让您比较月份,年份或季度之间的值。
检索指定时间段的第一个和最后一个日期的函数。
帮助您处理期初和期末余额的功能。
您可以使用DAX时间智能功能来创建用于计算累计销售额的公式。以下DAX函数可用于计算期末余额和期初余额-
CLOSINGBALANCEMONTH(
OPENINGBALANCEMONTH(
CLOSINGBALANCEQUARTER(
OPENINGBALANCEQUARTER(
CLOSINGBALANCEYEAR(<表达式>,<日期>,[<过滤器>],[<年末日期>]) -在当前上下文中计算一年中最后一天的表达式。
OPENINGBALANCEYEAR(<表达式>,<日期>,<过滤器>],[
您可以使用以下DAX函数在指定的时间为产品库存创建以下计算字段:
Month Start Inventory Value: = OPENINGBALANCEMONTH (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Month End Inventory Value: = CLOSINGBALANCEMONTH (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter Start Inventory Value: = OPENINGBALANCEQUARTER (
SUMX ProductInventory, (ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Quarter End Inventory Value: = CLOSINGBALANCEQUARTER (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year Start Inventory Value: = OPENINGBALANCEYEAR (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
Year End Inventory Value: = CLOSINGBALANCEYEAR (
SUMX (ProductInventory, ProductInventory[UnitCost]*ProductInventory[UnitsBalance]), DateTime[DateKey]
)
DAX支持的默认时间段是月,季度和年。
您可以使用以下DAX时间智能功能来比较不同时间段的总和。
PREVIOUSMONTH(
PREVIOUSQUARTER(
PREVIOUSYEAR(
您可以使用DAX函数创建以下计算字段,以计算指定时间段内西部地区的销售总额,以进行比较-
Previous Month Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSMONTH (DateTime [DateKey])
)
Previous Quarter Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSQUARTER (DateTime [DateKey])
)
Previous Year Sales: = CALCULATE (
SUM (WestSales[SalesAmount]), PREVIOUSYEAR (DateTime [DateKey])
)
您可以使用DAX时间智能函数PARALLELPERIOD比较与指定时间段平行的时间段内的总和。
PARALLELPERIOD(<日期>,<间隔数>,<间隔>)
此DAX函数返回一个表,该表包含一个日期列,该日期列表示在当前上下文中与指定日期列中的日期平行的时间段,其中日期在时间上向前或向后移动了多个间隔。
您可以创建以下计算字段以计算上一年度在西部地区的销售额-
Previous Year Sales: = CALCULATE (
SUM (West_Sales[SalesAmount]), PARALLELPERIOD (DateTime[DateKey],-1,year)
)
您可以使用以下DAX时间智能功能来计算运行总计或运行总计。
TOTALMTD(
TOTALQTD(
TOTALYTD(<表达式>,<日期>,[<过滤器>],[<年末日期>]) -计算当前上下文中表达式的年初至今值。
您可以使用DAX函数创建以下计算字段,以计算指定时间段在西部地区的销售连续营业总额-
月运行总和:= TOTALMTD(总和(West_Sales [SalesAmount]),DateTime [DateKey])
季度运行总和:= TOTALQTD(总和(WestSales [SalesAmount]),DateTime [DateKey])
年度运行总和:= TOTALYTD(总和(WestSales [SalesAmount]),DateTime [DateKey])
您可以使用DAX时间情报功能检索自定义的日期集,您可以将其用作执行计算的DAX函数的输入,以创建跨时间段的自定义聚合。
DATESINPERIOD(<日期>,<开始日期>,<间隔时间>,<间隔>) -返回一个表,该表包含以开始日期开始并持续指定的间隔时间的日期列。
DATESBETWEEN(<日期>,<开始日期>,
DATEADD(
FIRSTDATE(
LASTDATE(
您可以使用DAX函数创建以下DAX公式,以计算指定日期范围内西部地区的销售总额-
DAX公式来计算2016年7月17日之前15天的销售额。
CALCULATE (
SUM (WestSales[SalesAmount]), DATESINPERIOD (DateTime[DateKey], DATE(2016,17,14), -15, day)
)
DAX公式可创建一个计算字段,用于计算2016年第一季度的销售额。
= CALCULATE (
SUM (WestSales[SalesAmount]),DATESBETWEEN (DateTime[DateKey], DATE (2016,1,1), DATE (2016,3,31))
)
DAX公式,用于创建一个计算字段,该字段获取针对当前上下文在西部地区进行销售的第一个日期。
= FIRSTDATE (WestSales [SaleDateKey])
DAX公式,用于创建一个计算字段,该字段获取针对当前上下文在西部地区进行销售的最后日期。
= LASTDATE (WestSales [SaleDateKey])
DAX公式,用于计算当前上下文中的日期之前一年的日期。
= DATEADD (DateTime[DateKey],-1,year)