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

在DAX计算列中实现Excel SUMIFS功能的技术咨询

SUMIFS逻辑的DAX计算列实现

你需要的DAX计算列要复刻Excel中按CustomerType、Family、MPF分组,计算每行Qty占分组年度总量百分比的逻辑,对应Excel公式为:=E2/SUMIFS($E$2:$E$25,$A$2:$A$25,A2,$B$2:$B$25,B2,$C$2:$C$25,C2)。

方案1:使用ALLEXCEPT(推荐)

创建计算列时使用以下DAX表达式:

Allocation = 
DIVIDE(
    [Qty],
    CALCULATE(
        SUM('Table'[Qty]),
        ALLEXCEPT('Table', 'Table'[CustomerType], 'Table'[Family], 'Table'[MPF])
    )
)
  • ALLEXCEPT会移除除指定分组列之外的所有筛选上下文,确保计算的是当前行所属分组的总Qty。
  • DIVIDE函数自动处理除零场景,避免出现计算错误。

方案2:使用EARLIER引用当前行值

如果你更习惯类似Excel的匹配逻辑,也可以用EARLIER引用当前行的分组字段值:

Allocation = 
DIVIDE(
    [Qty],
    CALCULATE(
        SUM('Table'[Qty]),
        'Table'[CustomerType] = EARLIER('Table'[CustomerType]),
        'Table'[Family] = EARLIER('Table'[Family]),
        'Table'[MPF] = EARLIER('Table'[MPF])
    )
)
  • EARLIER用于在嵌套上下文里引用外部行上下文的列值,筛选出与当前行分组字段完全匹配的所有行后求和。

效果验证

以下是对应你提供的Excel表格的计算结果示例:

CustomerTypeFamilyMPFDateQtyAllocation
SHRFamily1MPF11-Jan-2218,6687%
SHRFamily1MPF11-Feb-2212,9175%
SHRFamily1MPF11-Mar-2220,1508%
SHRFamily1MPF11-Apr-2220,4478%
SHRFamily1MPF11-May-2226,59110%
SHRFamily1MPF11-Jun-2226,48210%
SHRFamily1MPF11-Jul-2225,39810%
SHRFamily1MPF11-Aug-2226,71810%
SHRFamily1MPF11-Sep-2223,2759%
SHRFamily1MPF11-Oct-2217,3577%
SHRFamily1MPF11-Nov-2222,3609%
SHRFamily1MPF11-Dec-2215,4386%
SUBFamily2MPF21-Jan-2215,4077%
SUBFamily2MPF21-Feb-2214,4866%
SUBFamily2MPF21-Mar-2219,8889%
SUBFamily2MPF21-Apr-2219,2389%
SUBFamily2MPF21-May-2221,76510%
SUBFamily2MPF21-Jun-2220,3679%
SUBFamily2MPF21-Jul-2218,3568%
SUBFamily2MPF21-Aug-2223,16110%
SUBFamily2MPF21-Sep-2219,6239%
SUBFamily2MPF21-Oct-2217,5598%
SUBFamily2MPF21-Nov-2218,3308%
SUBFamily2MPF21-Dec-2216,1757%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:19:32