Excel 中的 Power Pivot 内的时间智能

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

数据分析表达式 (DAX) 具有35函数, 专门用于一段时间内的数据聚合和比较。 与 DAX 的日期和时间函数不同, 在 Excel 中, 时间智能功能不是真正的任何内容。 这是因为时间智能功能可处理不断变化的数据, 具体取决于您在数据透视表和 Power View 可视化对象中选择的上下文。

为了使用时间智能功能, 你需要在数据模型中包含日期表。 "日期" 表必须包含一列, 其中包含在数据中的每一年的每一天都有一行。 此列被视为日期列 (虽然可以将其命名为任何所需内容)。 许多时间智能功能需要 "日期" 列, 以便根据您在报表中选择字段的日期进行计算。 例如, 如果你有一个通过使用 CLOSINGBALANCEQTR 函数来计算年末年末余额的度量值, 为了使 Power Pivot 能够了解季度结束时间, 它必须引用日期表中的 date 列, 以了解季度何时开始和结束。 若要了解有关日期表的详细信息, 请查看在 Excel 中的Power Pivot 中的理解和创建日期表

功能

返回单个日期的函数

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

此类别中的前两个函数返回当前上下文中的 Date_Column 中的第一个或最后一个日期。 当你想要查找第一个或最后一个特定类型的事务的日期时, 这可能很有用。 这些函数只采用一个参数, 即日期表中的日期列的名称。

此类别中的下两个函数查找第一个或最后一个日期 (或任何其他列值), 其中表达式具有非空值。 此情况最常用于库存的情况中, 你想要获取上一次盘点的时间, 你不知道上次盘点的时间。

返回单个日期的6个以上函数是在当前的计算上下文内返回一个月、季度或年的第一或最后一个日期的函数。

返回日期表的函数

有16个时间智能函数可返回一个日期表。 通常情况下, 这些函数将用作计算函数的 SetFilter 参数。 正如 DAX 中的所有时间智能函数一样, 每个函数都将一个日期列作为它的一个参数。

此类别中的前八个函数从当前上下文中的日期列开始。 例如, 如果在数据透视表中使用度量值, 则列标签或行标签上可能有月份或年份。 最终结果是对日期列进行筛选, 以仅包含当前上下文的日期。 从当前上下文开始, 这八个函数然后计算上一个 (或下一个) 日、月、季度或年, 并以单个列表的形式返回这些日期。 "上一个" 函数从当前上下文中的第一个日期倒推, 而 "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天

在每种情况下, 只需指定时间间隔以及要移位的这些间隔的数量。 正间隔将在时间向前推进, 而负间隔将随时间向后移动。 间隔本身由日、月、季度或年的关键字指定。 这些关键字不是字符串, 因此它们不应位于引号中。

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

此类函数在指定的时间段内计算表达式。 你可以使用计算和其他时间智能功能完成相同任务。 For example,

= TOTALMTD (Expression、Date_Column [、SetFilter])

与以下内容完全相同:

= 计算 (Expression, DATESMTD (Date_Column) [, SetFilter])

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

  • TOTALMTD(Expression、Date_Column [、SetFilter])

  • TOTALQTD(Expression、Date_Column [、SetFilter])

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

此类别中也是一组用于计算开始和期末余额的函数。 你应该了解这些特定功能的一些概念。 首先, 你可能会认为, 任何周期的期初余额与上一期的期末余额相同。 期末余额包括整个期间的期末的所有数据, 而期初余额不包括当前期间内的任何数据。

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

其他资源

文章:在 Excel 中了解和创建 Power Pivot 中的日期表

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

示例: 在 Excel https://www.microsoft.com/en-sg/download/details.aspx?id=38838 中与 Microsoft PowerPivot 进行的损益数据建模和分析

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

此信息是否有帮助?

谢谢您的反馈!

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

×