注意
不建议将此函数用于 视觉计算,因为它可能会返回毫无意义的结果。
对于日期列输入,返回一个表,该表包含一列日期,该列表示与当前上下文中指定 dates 列中的日期平行的时间段,日期将按时间或时间向后移动一些间隔。
对于日历输入,返回一个表,该表代表与当前上下文中的日期并行的时间段(基于日历),日期在时间或时间上移出多个间隔。 该表包含所有主标记列和所有时间相关列。
语法
PARALLELPERIOD(<dates> or <calendar>,<number_of_intervals>,<interval>)
参数
| 术语 | 定义 |
|---|---|
dates or calendar |
包含日期或日历引用的列 |
number_of_intervals |
一个整数,指定要在日期中添加或减去的间隔数。 |
interval |
要移动日期的间隔。 间隔的值可以是下列值之一:year、、quartermonthweek、 。 仅当使用日历语法时,周值才适用。 |
返回值
对于日期列输入,包含单个日期值的列的表。
对于日历输入,包含所有主标记列和所有时间相关列的表。
言论
对于日期列输入,此函数采用指定的
dates列中的当前日期集,将第一个日期和最后一个日期移出指定的间隔数,然后返回两个移位日期之间的所有连续日期。 如果间隔是月份、季度或年份的部分范围,则结果中的任何部分月份也会填写,以完成整个间隔。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 日之间的日期。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
例
以下示例公式创建一个度量值,用于计算 Internet 销售额的上一年销售额。
= CALCULATE (
SUM ( InternetSales_USD[SalesAmount_USD] ),
PARALLELPERIOD ( DateTime[DateKey], -1, YEAR )
)
基于日历的时间智能示例
以下示例公式创建一个度量值,该度量值使用会计日历计算 Internet 销售额的上一年销售额。
= CALCULATE (
SUM ( InternetSales_USD[SalesAmount_USD] ),
PARALLELPERIOD ( FiscalCalendar, -1, YEAR )
)