You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为现有SUMX函数添加ALLSELECTED以支持切片器筛选?

解决方案

完全可行,调整后的DAX公式可以同时实现按ASIN和Name聚合sold_count,并响应切片器的筛选。

先看你的原公式,里面的Title[ASIN] = Title[ASIN] && Title[Name] = Title[Name]是冗余条件——对表中每一行来说,这两个等式永远成立,所以原FILTER实际返回整个Title表,SUMX的结果等价于直接SUM(Title[sold_count])。之所以你觉得它能按ASIN和Name聚合,是因为可视化组件(比如矩阵、表格)的行上下文自动帮你做了筛选,但如果要显式控制并确保切片器生效,需要调整公式。

方法1:修改SUMX+FILTER的写法

SUMX(
    FILTER(
        ALLSELECTED(Title),
        Title[ASIN] = EARLIER(Title[ASIN])
            && Title[Name] = EARLIER(Title[Name])
    ),
    Title[sold_count]
)
  • ALLSELECTED(Title):限定FILTER的数据源是经过切片器筛选后的Title表,确保切片器的选择会影响聚合范围。
  • EARLIER():引用当前行上下文的ASIN和Name值,让FILTER只筛选出与当前行同ASIN、同Name的行,实现按这两个字段聚合。

方法2:更简洁的CALCULATE写法

如果不需要用SUMX做复杂迭代,用CALCULATE配合SUM会更高效:

CALCULATE(
    SUM(Title[sold_count]),
    ALLSELECTED(Title),
    VALUES(Title[ASIN]),
    VALUES(Title[Name])
)
  • ALLSELECTED(Title)保留切片器的筛选上下文;
  • VALUES(Title[ASIN])和VALUES(Title[Name])固定当前行的ASIN和Name维度,确保聚合仅针对当前组的数据。

内容的提问来源于stack exchange,提问作者konsama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:55:30