PowerBI产品版本响应时间对比功能异常问题求助
版本响应时间对比表异常排查与解决
问题现象
制作产品两个版本的响应时间对比表时出现异常:
- 当两个版本切片器选择相同版本时,对比表能正常加载并显示数据(如图1);
- 当选择不同版本时,对比表无任何数据返回(如图2)。
数据模型设置说明
- 基于
release表的release_id字段创建新版本切片器(new_release_id); - 复制
release表的release_id字段得到Rel_Column,作为旧版本切片器的数据源,计划通过DAX的SELECTEDVALUE函数获取选中的旧版本ID。
当前使用的DAX计算字段
NewReleaseAverage(新版本平均响应时间)
NewReleaseAverage = CALCULATE( AVERAGE('public response_time'[average]), 'public response_time'[release_id] = SELECTEDVALUE('public release'[release_id]) )
OldReleaseAverage(旧版本平均响应时间)
OldReleaseAverage = CALCULATE( AVERAGE('public response_time'[average]), 'public response_time'[release_id] = SELECTEDVALUE('public release'[Rel_Column]) )
问题原因
两个切片器均基于同一张release表的字段创建,当选择不同版本时,两个切片器会同时对release表施加互斥的筛选条件,导致release表中没有能同时满足两个不同release_id的记录,该筛选会传递到关联的response_time表,最终无符合条件的数据返回。
解决方案
为旧版本切片器创建独立的表副本,避免两个切片器的筛选互相干扰:
- 复制
release表生成新表(建议命名为release_old),确保新表与原release表无任何关联关系; - 将旧版本切片器的数据源替换为
release_old表的release_id字段; - 修改
OldReleaseAverage的DAX公式,引用新表的选中值:
OldReleaseAverage = CALCULATE( AVERAGE('public response_time'[average]), 'public response_time'[release_id] = SELECTEDVALUE('release_old'[release_id]) )
NewReleaseAverage的公式保持不变,仍引用原release表的release_id。
问题截图
- 图1:选择相同版本时正常显示数据

- 图2:选择不同版本时无数据

内容的提问来源于stack exchange,提问作者Biswajit Sharma
相关产品推荐
相关产品推荐

