在 度量值 中,如果你想:
- ❌ 去掉当前表格行的型号筛选(Row Context → Filter Context)
- ✔️ 但保留切片器/页面/报表级筛选器对型号的筛选
这是一个典型需求:
移除视觉对象里"行的型号"造成的行级筛选,但不移除用户的 slicer 筛选。
✅ 最正确和安全的写法:
使用 REMOVEFILTERS( 表[列] ) 或 ALLSELECTED(...)
关键点:
| 方法 | 去掉当前行筛选 | 保留切片器筛选 | 保留交互 | 备注 |
|---|---|---|---|---|
ALL(B_models[型号]) |
✔ | ❌ | ❌ | 会把切片器清掉(不符合你的需求) |
REMOVEFILTERS(B_models[型号]) |
✔ | ✔ | ✔ | 最佳, 用于仅移除当前视觉对象的行筛选 |
ALLSELECTED(B_models[型号]) |
✔ | ✔ | ✔ | 也是可用方案 |
🟦 推荐方式 1(最佳):REMOVEFILTERS
如果你有一个度量:
css
[量_roll]
你想在计算时:
- 忽略当前行的型号(例如视觉对象的每一行型号 A/B/C/...)
- 但是保留切片器中对型号的筛选(如只选品牌A下的型号)
写法如下:
css
测算值 =
CALCULATE(
[量_roll],
REMOVEFILTERS('B_models'[型号]) -- 去掉当前行的型号筛选
)
✔ 切片器选了哪些型号 → 保留
✔ 行上下文型号 → 移除
✔ 品牌/日期等其他筛选 → 保留
🟦 推荐方式 2:ALLSELECTED
如果你还想保留 图表之间的交互(例如交叉筛选),用:
css
测算值 =
CALCULATE(
[量_roll],
ALLSELECTED('B_models'[型号]) -- 保留切片器但忽略行过滤
)
这个会保留切片器和页面层级筛选,但仍然脱离表格自身每一行的型号过滤。
🟥 错误示例(不要这样用)
css
CALCULATE([量_roll], ALL('B_models'))
这会:
- 去掉 所有切片器
- 去掉 所有维度筛选
导致完全错误的结果。
🧪 验证方式
你可以在一个表格里放:
- 行:B_models[型号]
- 列:你写的度量
如果写法正确:
- 所有型号行都显示同样的汇总值(因为忽略了行型号过滤)
- 切片器选择某些型号 → 这些型号以外的不会显示,且度量值变化(因为保留切片器过滤)