PARALLELPERIOD 函数

返回一个表,该表包含由日期构成的一列,这些日期表示与当前上下文中指定的 dates 列中的日期并行的期间,该列中具有在时间中前移或后移某个数目的间隔的日期。

语法

PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)

参数

术语

定义

dates

包含日期的列。

number_of_intervals

一个整数,指定要从日期中加上或减去的间隔数。

interval

日期按其轮换的间隔。 间隔值可以是以下值之一:year、quarter、month。

返回值

包含由日期值构成的单列的表。

注释

此函数获取 dates 指定的列中的当前日期集,将第一个日期和最后一个日期移动指定的间隔数目,然后返回这两个移动后的日期之间的所有连续日期。 如果间隔是月份、季度或年份的部分范围,则结果中的任何部分月份也会填满以完成整个间隔。

备注

若要了解有关上下文如何影响公式结果的详细信息,请参阅Context

dates 参数可以是以下任何项:

  • 对日期/时间列的引用

  • 返回由日期/时间值构成的单列的表表达式

  • 定义由日期/时间值构成的单列表的布尔表达式

备注

CALCULATE 函数 一文中介绍了针对布尔表达式的约束。

如果为 number_of_intervals 指定的数目是正数,则 dates 中的日期将在时间中向前移;如果该数目是负数,则日期 dates 中的日期将在时间中向后轮换。

interval 参数是枚举,而非字符串集;因此,不应该用引号将值引起来。 此外,值 year、quarter、 month 在使用时应该完整拼写。

结果表只包括在基础表列的值中出现的日期。

PARALLELPERIOD 函数与 DATEADD 函数类似,只是 PARALLELPERIOD 始终按给定的粒度级别返回完整期间,而非 DATEADD 返回的部分期间。 例如,如果您具有在 6 月 10 日开始和在同一年的 6 月 21 日结束的日期选择,并且想要将该日期选择前移一个月,则 PARALLELPERIOD 函数将返回下个月(7 月 1 日到 7 月 31 日)中的所有日期;但是,如果改为使用 DATEADD,则结果将只包括从 7 月 10 日到 7 月 21 日的日期。

如果当前上下文中的日期未构成连续间隔,则该函数将返回错误。

不支持在 DirectQuery 模式下使用此 DAX 函数。 有关 DirectQuery 模型中的限制的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=219172

示例

下面的公式示例创建一个度量值,该度量值为 Internet 销售计算上一年的销售额。

为了阐释此示例的工作方式,创建一个数据透视表,并且向该数据透视表的**“行标签”区域添加两个字段:CalendarYear 和 CalendarQuarter。 然后使用在代码部分中定义的公式,将名为 Previous Year Sales 的度量值添加到该数据透视表的“值”**区域。

备注

上面的示例使用 DAX 示例工作簿中的表 DateTime。有关示例的详细信息,请参阅获取示例数据

=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year))

请参阅

参考

DATEADD 函数

其他资源

时间智能函数 (DAX)

日期和时间函数 (DAX)

获取示例数据