在 Excel 中的 Power Pivot 内的时间智能

Data Analysis Expressions (DAX) 有 35 个专门用于聚合和比较一段时间的数据的函数。 与 DAX 的日期和时间函数不同,时间智能函数和在 Excel 中根本没有相似之处。 这是因为时间智能函数使用的数据在不断变化,具体取决于您在数据透视表和 Power View 可视化效果中选择的上下文。

为了使用时间智能函数,您需要有一个包含数据模型中的日期表。日期表的数据中包含的每年每一天中必须包括具有一行的列。此列被视为日期列 (尽管可以命名任何您想)。许多时间智能函数要求之中以计算根据选择作为报表中的字段的日期日期列。例如,如果您有顺序了解时的季度末真正的 Power pivot 中使用 CLOSINGBALANCEQTR 函数,计算期末季度末余额的度量值,它必须引用了解季度开始和结束时的日期表中的日期列。若要了解有关日期表的详细信息,请参阅了解并在 Excel 中的 Power Pivot 中创建日期表

函数

用于返回单个日期的函数

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

此类别中的前两个函数返回当前上下文中 Date_Column 内的第一个或最后一个日期。 如果希望查找具有特定类型事务的第一个日期或最后一个日期,这可能很有用。 这些函数仅采用一个参数,即日期表中的日期列的名称。

此类别中的下面两个函数用于查找表达式有非空值的第一个日期或最后一个日期(也可能还包括其他任何列值)。 这在库存之类的情况中用得最多,因为在这些情况中,您希望获取最后一次库存量,但是不知道最后一次库存的发生时间。

还有六个函数用于返回单个日期,这些函数返回计算的当前上下文中的月、季度、年的第一个或最后一个日期。

用于返回日期表的函数

有 16 个时间智能函数返回的日期表。大多数情况下,这些函数将用作CALCULATE函数集进行参数。一样 DAX 中的所有时间智能函数,每个函数作为其参数之一采用的日期列。

此类别中的前八个函数开始与当前上下文中的日期列。例如,如果在数据透视表中使用的度量值,可能有的月份或年份列标签或行标签上。最终结果是日期列的筛选包含当前上下文的日期。从该当前上下文,这些八个函数计算上一个 (或下一步) 日、 月、 季度或年份然后单个列的表的形式返回这两个日期。"以前"函数反过来从第一个日期在当前上下文中,并从当前上下文中的最后一个日期向前移动"下一步"的函数。

此类别中的下面四个函数类似,但不是计算上一个(或下一个)时间段,而是计算时间段中当月至今(或当季至今、当年至今或上一年的相同时间段中)的日期集。 这些函数全部使用当前上下文中的最后一个日期执行自己的计算。 请注意,SAMEPERIODLASTYEAR 要求当前上下文中包含一组连续日期。 如果当前上下文不是一组连续日期,则 SAMEPERIODLASTYEAR 会返回错误。

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

  • DATEADD(Date_Column,Number_of_Intervals,间隔)

  • DATESBETWEEN(Date_Column,Start_Date,End_Date)

  • DATESINPERIOD(Date_Column,Start_Date、 Number_of_Intervals,间隔)

DATESBETWEEN 用于计算指定的开始日期与结束日期之间的日期集。 其余三个函数切换当前上下文中的数个时间间隔。 时间间隔可以是日、月、季度或年。 这些函数通过执行以下任何操作,可以轻松地切换计算的时间间隔:

  • 后退两年

  • 后退一月

  • 前进三季度

  • 后退 14 天

  • 前进 28 天

在各种情况下,您只需指定要切换的时间间隔及其数量。 正时间间隔向前推进时间,而负时间间隔向后推进时间。 时间间隔本身由 DAY、MONTH、QUARTER 或 YEAR 的关键字指定。 这些关键字不是字符串, 因此不应使用双引号括起来。

用于在一段时间内对表达式求值的函数

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

= TOTALMTD (Expression, Date_Column [, SetFilter])

与以下公式完全相同:

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

但是,如果这些时间智能函数很适合要解决的问题,则用起来更轻松:

  • TOTALMTD(表达式,Date_Column [、 集进行])

  • TOTALQTD(表达式,Date_Column [、 集进行])

  • TOTALYTD(表达式、 Date_Column [、 集进行] [,YE_Date]) *

此类别中还有一组用于计算期初余额和期末余额的函数。 对于这些特殊函数,您应该了解某些概念。 首先,您可能也了解,任何时间段的期初余额显然与上一个时间段的期末余额相同。 期末余额中包含该时间段结束时的所有数据,而期初余额中不包含当前时间段内的任何数据。

这些函数始终返回为特定时间点求得的表达式值。 我们关心的时间点永远是日历时间段内的最后一个可能的日期值。 期初余额基于上一个时间段的最后一个日期,而期末余额基于当前时间段的最后一个日期。 当前时间段始终由当前日期上下文中的最后一个日期确定。

其他资源

文章︰了解并在 Excel 中的 Power Pivot 中创建日期表

在 Office.com 上的参考︰ DAX 函数参考

示例︰损益数据建模与分析 Microsoft PowerPivot 在 Excel 中

注释: 

  • 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

  • 请在 此处 中查找本文的英文版本以便参考。你和 Microsoft 社区的其他成员可以使用 Community Translation Framework (CTF) 来改进本文。只需将鼠标悬停在文章中的句子上,然后在 CTF 小组件中单击“IMPROVE TRANSLATION”即可。 单击此处了解有关 CTF 的详细信息。 使用 CTF 即表示你同意服务条款

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×