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

DAX问题:如何获取对应ID的Lead_Weight总和作为计算分母?

解决DAX中按ID计算权重占比的问题

你之前用SUMMARIZE报错,是因为这个函数返回的是表对象(多列结构),而DIVIDE的两个参数都需要是标量值(单个数字),类型不匹配导致报错。直接用上下文控制函数就能解决,不需要创建虚拟表。

方法一:用ALLEXCEPT简化写法

创建新度量值,替换其中的Leads为你的实际表名,ID为你的唯一ID列名:

Lead_Weight_Ratio = 
DIVIDE(
    [Lead_Weight],
    CALCULATE(
        SUM([Lead_Weight]),
        ALLEXCEPT(Leads, Leads[ID])
    )
)
  • ALLEXCEPT(Leads, Leads[ID]):保留当前行的ID筛选上下文,移除其他所有筛选条件,确保计算的是当前ID对应的所有Lead_Weight总和。
  • DIVIDE自动处理除零场景,避免报错。

方法二:用VAR+FILTER(更直观,适合新手理解)

如果想更清楚看到逻辑,用变量定义当前ID和对应总和:

Lead_Weight_Ratio = 
VAR Current_ID = MAX(Leads[ID]) // 获取当前行的ID值
VAR Total_Weight_For_ID = 
    CALCULATE(
        SUM([Lead_Weight]),
        FILTER(
            ALL(Leads), // 忽略当前行的其他筛选条件
            Leads[ID] = Current_ID // 筛选出和当前行ID相同的所有行
        )
    )
RETURN
    DIVIDE([Lead_Weight], Total_Weight_For_ID)

两种方法都能实现“每行[Lead_Weight]除以对应ID的总和”的需求,选你觉得容易理解的就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:13