无活动关系时,能否创建度量值实现双事实表的位置动态切片?
问题描述

我拥有两张事实表,希望添加一个切片器对两张表的位置进行筛选。两张事实表均包含二进制属性(Loc)Location VMI Flag(0代表已定位,1代表未定位)。为此我创建了一张包含ALL locations字段(含"已定位""未定位"两个值)及Index字段(值为0或1)的表。请问能否创建一个度量值,在无活动关系的情况下动态切片这两张事实表?
实现方案
可以通过创建动态筛选度量值实现无活动关系下的切片,具体操作如下:
- 确保切片器使用新建的
ALL locations表中的ALL locations或Index字段作为筛选依据。 - 为每张事实表分别创建筛选度量值,通过DAX逻辑匹配切片器选中的索引与事实表的Flag值:
针对事实表1的度量值(替换某数值字段为你实际需要聚合的字段):
事实表1_位置筛选 = VAR 选中索引 = SELECTEDVALUE('ALL locations'[Index]) RETURN CALCULATE( SUM('事实表1'[某数值字段]), FILTER( '事实表1', '事实表1'[Location VMI Flag] = 选中索引 ) )
针对事实表2的度量值:
事实表2_位置筛选 = VAR 选中索引 = SELECTEDVALUE('ALL locations'[Index]) RETURN CALCULATE( SUM('事实表2'[某数值字段]), FILTER( '事实表2', '事实表2'[Location VMI Flag] = 选中索引 ) )
- 在报表中使用这两个度量值展示数据,切片器选择“已定位”或“未定位”时,度量值会自动匹配对应Flag值,实现对两张事实表的动态筛选。
如果需要处理切片器未选中任何值时显示全部数据的场景,可修改度量值逻辑:
事实表1_位置筛选 = VAR 选中索引 = SELECTEDVALUE('ALL locations'[Index]) RETURN IF( ISBLANK(选中索引), SUM('事实表1'[某数值字段]), CALCULATE( SUM('事实表1'[某数值字段]), FILTER( '事实表1', '事实表1'[Location VMI Flag] = 选中索引 ) ) )
内容的提问来源于stack exchange,提问作者Nassim Saddiki
相关产品推荐
相关产品推荐

