基于双事实表创建符合过滤需求的新度量求助
解决方案
基于你的需求,调整DAX度量即可实现两个场景的要求,以下是具体步骤和代码:
假设模型关系
默认你的数据模型是:维度表dim_p的name字段关联两个事实表fact1(存储V1)和fact2(存储V2)的对应名称字段。
创建所需度量
1. 全量V1总和(不受名称过滤影响)
这个度量确保无论是否过滤名称,都返回所有名称对应的V1总和:
Total V1 = CALCULATE(SUM(fact1[V1]), ALL(dim_p[name]))
2. 动态V2总和(适配过滤场景)
去掉你原来的REMOVEFILTERS,直接使用基础求和,这样无过滤时返回全量V2,过滤名称时返回对应筛选后的V2总和:
Total V2 = SUM(fact2[V2])
3. 关联名称拼接
返回当前上下文的名称集合,无过滤时显示所有名称,过滤时显示选中的名称:
Associated Names = CONCATENATEX(VALUES(dim_p[name]), dim_p[name], ", ")
场景验证
- 场景1(无过滤):将三个度量添加到报表(行区域无需放任何字段),会返回一行数据:
Total V1为所有V1的总和,Total V2为所有V2的总和,Associated Names拼接所有名称。 - 场景2(过滤名称A、B):在报表中筛选
dim_p[name]为A和B,返回一行数据:Total V1仍为全量总和,Total V2为A、B对应的V2之和(3+4),Associated Names显示"A, B"。
补充说明
如果你的V1总和在场景2中需要跟随名称过滤(即只计算A、B的V1总和),只需将Total V1修改为SUM(fact1[V1])即可。
内容的提问来源于stack exchange,提问作者Emna
相关产品推荐
相关产品推荐

