基于DAX实现矩阵中每日资源请求量变动展示的技术求助
矩阵中展示每日资源请求量变动的DAX实现方案
核心逻辑
通过定位事实表的最新版本日期和前N日版本日期,分别计算两个版本对应的资源请求量,最终得出变动差值。利用已配置的日期表关系(活动关系关联岗位需求月份,非活动关系关联表更新日期)实现上下文过滤。
分步实现DAX度量值
1. 获取最新版本日期
最新版本日期 = MAX('事实表'[versioned_date])
该度量返回事实表中最新的表更新日期,作为基准对比日期。
2. 定义前N日版本日期(以昨日为例,N=1)
前N日版本日期 = [最新版本日期] - 1
若需支持动态调整N值,可创建整数参数(如N_对比天数),将公式替换为:
前N日版本日期 = [最新版本日期] - SELECTEDVALUE('N_对比天数'[N_对比天数], 1)
3. 计算当前版本请求量
当前版本请求量 = CALCULATE( SUM('事实表'[申请数量]), '事实表'[versioned_date] = [最新版本日期] )
通过筛选最新版本日期的记录,汇总对应资源请求量。
4. 计算前N日版本请求量
前N日版本请求量 = CALCULATE( SUM('事实表'[申请数量]), '事实表'[versioned_date] = [前N日版本日期] )
筛选前N日版本日期的记录,汇总对应请求量。
5. 计算变动差值
请求量变动差值 = [当前版本请求量] - [前N日版本请求量]
直接通过两个版本的请求量相减,得到最终变动值(如示例中4-5=-1)。
矩阵配置建议
- 行字段:放置团队(如A团队、B团队)
- 列字段:放置岗位需求月份(关联日期表的Date列,利用活动关系自动过滤)
- 值字段:添加
请求量变动差值度量
注意事项
- 确保
versioned_date字段为日期/时间类型,无格式错误 - 若同一
versioned_date存在多版本记录,MAX('事实表'[versioned_date])会自动取最新日期,需保证每日仅一个版本的事实表数据 - 若需处理前N日无数据的场景,可使用
IFERROR包裹差值度量,返回空值或0:
请求量变动差值 = IFERROR( [当前版本请求量] - [前N日版本请求量], BLANK() // 或返回0,根据需求调整 )
内容的提问来源于stack exchange,提问作者Samuel Begmetov
相关产品推荐
相关产品推荐

