时间智能函数

Power BI 中级 DAX

Maarten Van den Broeck

Content Developer at DataCamp

时间智能函数

  • 使用时间段来处理和比较数据

销售数据随时间变化的折线图

  • 存在许多时间智能函数

$$ $$ $$

  • 将本期与上期比较
  • 估算月/季/年目标
Power BI 中级 DAX

返回日期的时间智能函数

  • NEXTDAY(<dates>)
    • 返回下一天
dates NEXTDAY
2009-07-07 2009-07-08
2009-07-08 2009-07-09
2009-07-09 2009-07-10
Power BI 中级 DAX

返回日期的时间智能函数

  • NEXTDAY(<dates>)
    • 返回下一天
  • SAMEPERIODLASTYEAR(<dates>)

    • 返回上一年同期 $$ $$ $$ $$
  • DATESBETWEEN(<dates>, <start_date>, <end_date>)

    • 返回起止日期之间的日期
dates NEXTDAY LASTYEAR
2009-07-07 2009-07-08 2008-07-07
2009-07-08 2009-07-09 2008-07-08
2009-07-09 2009-07-10 2008-07-09
Power BI 中级 DAX

返回日期的时间智能函数

  • NEXTDAY(<dates>)
    • 返回下一天
  • SAMEPERIODLASTYEAR(<dates>)

    • 返回上一年同期 $$ $$ $$ $$
  • DATESBETWEEN(<dates>, <start_date>, <end_date>)

    • 返回起止日期之间的日期
dates NEXTDAY LASTYEAR
2009-07-07 2009-07-08 2008-07-07
2009-07-08 2009-07-09 2008-07-08
2009-07-09 2009-07-10 2008-07-09

$$

dates DATESBETWEEN
2009-07-07
2009-07-08 2009-07-08
2009-07-09 2009-07-09
2009-07-10
Power BI 中级 DAX

返回日期的时间智能函数

Mid Season Sales =
CALCULATE(
    SUM(Fact_Table[Sales]), 
    DATESBETWEEN(Dim_Date[Date Key], 
                 DATE(2014, 10, 04),
                 DATE(2014, 10, 26)
                 )
)
Power BI 中级 DAX

返回日期的时间智能函数

TOTALYTD(<expression>, <dates> [,<filter>])
TOTALQTD(<expression>, <dates> [,<filter>])
TOTALMTD(<expression>, <dates> [,<filter>])

返回表达式的年/季/月度至今值。

Sum_YTD = 
TOTALYTD(
    SUM(Fact_Table[Value]),
    Dim_Date[Date Key]
)
Power BI 中级 DAX

返回日期的时间智能函数

TOTALYTD(<expression>, <dates> [,<filter>])
TOTALQTD(<expression>, <dates> [,<filter>])
TOTALMTD(<expression>, <dates> [,<filter>])

返回表达式的年/季/月度至今值。

Sum_YTD = 
TOTALYTD(
    SUM(Fact_Table[Orders]),
    Dim_Date[Date Key]
)
Year Month Value Sum_YTD
2021 Jan 6,532 6,532
2021 Feb 4,263 10,795
2021 Mar 1,256 12,051
Total 12,051 12,051
Power BI 中级 DAX

时间智能函数的最佳实践

  • 使用单独的日期维度表

事实表与日期维度表的简单关系

事实表中的日期列可能有缺失日期!

Power BI 中级 DAX

Let's practice!

Power BI 中级 DAX

Preparing Video For Download...