使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

DAX (数据分析) 有 35 个函数,专门用于聚合和比较一段时间的数据。 与 DAX 的日期和时间函数不同,时间智能函数在函数中实际上Excel。 这是因为时间智能函数处理不断变化的数据,具体取决于在数据透视表中选择的上下文和Power View可视化效果。

若要使用时间智能函数,需要在数据模型中包含一个日期表。 日期表必须包含一列,其中一行用于数据中包含的每年每一天。 此列被视为"日期"列 (但可以命名为你喜欢的任何) 。 许多时间智能函数需要日期列才能根据选择为报表字段的日期进行计算。 例如,如果你有一个使用 CLOSINGBALANCEQTR 函数计算季度末余额的度量值,为了使 Power Pivot 知道该季度的结束时间,它必须引用日期表中的日期列,以便知道该季度的开始和结束时间。 若要了解有关日期表的信息,请看一下在 Power Pivot中了解和创建日期表Excel。

函数

返回单个日期的函数

此类别中的函数返回单个日期。 然后,结果可以用作其他函数的参数。

此类别中的前两个函数返回当前上下文中Date_Column或最后一个日期。 当您想要查找您具有特定类型的事务的第一个或最后一个日期时,这非常有用。 这些函数仅接受一个参数,即日期表中日期列的名称。

此类别中的后两个函数查找第一个或最后一 (或任何其他列值,) 表达式具有非空白值。 这通常在库存等情况下使用,在这种情况下,你想要获取最后一个库存量,并且不知道最后一个清单的取货时间。

返回单个日期的另外六个函数是在当前计算上下文中返回月份、季度或年份的第一个或最后一个日期的函数。

返回日期表的函数

有 16 个返回日期表的时间智能函数。 通常,这些函数将用作 CALCULATE 函数的 SetFilter 参数。 与 DAX 中的所有时间智能函数一样,每个函数都采用日期列作为参数之一。

此类别中的前八个函数从当前上下文中的日期列开始。 例如,如果在数据透视表中使用度量值,则列标签或行标签上可能有一个月或一年。 净效果是筛选日期列以仅包括当前上下文的日期。 从当前上下文开始,这八个函数随后计算上一 (或) 日、月、季度或年份,并返回单个列表形式的日期。 "previous"函数从当前上下文中的第一个日期向后工作,"next"函数从当前上下文中的最后一个日期向前移动。

此类别中的后四个函数类似,但它们不是计算上一个 (或下一个) 期间,而是计算"本月到日期"期间的日期集 (或季度到日期、年至今或上一年) 的同一期间。 这些函数都使用当前上下文中的最后一个日期执行计算。 请注意,SAMEPERIODLASTYEAR 要求当前上下文包含一组连续的日期。 如果当前上下文不是连续的日期集,则 SAMEPERIODLASTYEAR 将返回错误。

此类别中的最后四个函数稍微复杂一些,也更强大一些。 这些函数用于从当前上下文中的日期集转移到新的日期集。

  • DATEADD (Date_Column、Number_of_Intervals、Interval)

  • DATESBETWEEN (Date_Column、Start_Date、End_Date)

  • DATESINPERIOD (Date_Column、Start_Date、Number_of_Intervals、Interval)

DATESBETWEEN 计算指定开始日期和结束日期之间的日期集。 其余三个函数从当前上下文转移一些时间间隔。 时间间隔可以是天、月、季度或年。 通过这些函数,可以轻松将计算的时间间隔按以下任一项进行移动:

  • 返回两年

  • 返回一个月

  • 前进三个季度

  • 返回 14 天

  • 前进 28 天

在每种情况下,只需指定要移动的时间间隔和间隔数。 正间隔在时间中向前移动,而负间隔将移回时间。 间隔本身由关键字 DAY、MONTH、QUARTER 或 YEAR 指定。 这些关键字不是字符串,因此它们不应用引号引起来。

计算一个时间段中的表达式的函数

此类别函数计算指定时间段的表达式。 可以使用 CALCULATE 和其他时间智能函数完成相同的操作。 例如,

= TOTALMTD (Expression,Date_Column [, SetFilter])

与以下完全相同:

= CALCULATE (Expression, DATESMTD (Date_Column) [, SetFilter])

但是,当这些时间智能函数非常适合需要解决的问题时,可以更轻松地使用这些函数:

  • TOTALMTD (Expression,Date_Column [, SetFilter])

  • TOTALQTD (Expression,Date_Column [, SetFilter])

  • TOTALYTD (Expression, Date_Column [, SetFilter] [,YE_Date]) *

此外,此类别中还有一组函数,用于计算打开和关闭余额。 这些特定函数应该理解某些概念。 首先,您可能认为很明显,期初余额期的余额与上一期的收盘余额相同。 收尾余额包括期结束后的所有数据,而期初余额不包括来自该时段内的任何当前期间。

这些函数始终返回针对特定时间点计算表达式的值。 我们关注的时间点始终是日历周期中最后一个可能的日期值。 该期初余额基于上一期间的最后一个日期,而收结余额基于最后一个交易日当前期间。 该当前期间始终由当前日期上下文中的最后一个日期确定。

其他资源

文章:在 Power Pivot in Excel

参考:Office.com上的 DAX 函数参考

示例:使用 Microsoft PowerPivot 中的利润和损失数据建模Excel

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×