从数据到信息
从信息到洞察

DATESINPERIOD

返回给定区间中的所有日期组成的单列形式的表。

语法

DATESINPERIOD ( <日期列>, <起始日期>, <偏移量>, <间隔单位> )
参数 属性 描述
日期列 包含日期的列
起始日期 日期表达式或 Blank()
偏移量 一个整数,从日期列中添加或减去的时间间隔数;正数向未来推移,反之向过去推移
间隔单位 日期偏移的间隔,可以是以下值之一:yearquartermonth

返回值

 包含单列日期值的表。

备注

DATESINPERIOD 函数应用偏移量到参数所在的日期列,返回<间隔数>所指定区间中包含的所有日期。

<日期列>参数可以是以下任一项 :

  • 对日期/时间列的引用
  • 返回单列日期/时间值的表表达式

结果表只包含日期列中存在的日期。

起始日期使用 Blank()等价于使用日期列的最小值作为起始日期,即 MIN(日期列)

DATESINPERIOD未针对 DirectQuery 进行优化,在计算列和行级别安全性公式中完全不受支持。 但可以在度量值和查询公式中使用,只不过无法保证性能。

示例

下面的表达式计算从筛选上下文中该期间的最后一天开始的最近 12 个月的销售额:

Sales Moving Annual Total =
CALCULATE (
    [Sales Amount],
    DATESINPERIOD (
        'Date'[Date],
        MAX ( 'Date'[Date] ),
        -1,
        YEAR
    )
)

扩展阅读:

 

6
说点什么

1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
2 评论数
4 被回复的评论
2 订阅评论的人数
 
查看最近回复
查看最热评论
  订阅本文评论  
最新 最旧 得票最多
提醒
成员
状态的状

老师,这个函数第一个参数日期列的引用还有必要 被替换为CALCULATETABLE ( DISTINCT ( ) )嘛?
应该和DATESBETWEEN一样,没必要对第一个参数的日期列的引用进行上下文转换了吧?

就像文中例子:
DATESINPERIOD (
‘Date'[Date],
MAX ( ‘Date'[Date] ),
-1,
YEAR
)

如果返回的是日期列中当前可见内容,那上面的例子无法获取过去一年的日期。

游客
状态的状

老师,这个函数第一个参数日期列的引用还有必要 被替换为CALCULATETABLE ( DISTINCT ( ) )嘛?
应该和DATESBETWEEN一样,没必要对第一个参数的日期列的引用进行上下文转换了吧?

DAX 圣经

DAX 函数大全

DAX 查询

DAX 运算符