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

如何用DAX计算忽略筛选的去重值总计百分比

修正DAX公式实现行占总计百分比

场景1:分母为整个数据集的固定总计(不受筛选影响)

如果需要不管怎么筛选,分母始终是所有数据的总和,修正公式如下:

% Grandtotal = 
VAR CurrentRowTotal = SUMX(
    DISTINCT('Combine Payroll + Payout'[EMP&KEY]),
    CALCULATE(SUM('Combine Payroll + Payout'[SBS]))
)
VAR OverallTotal = CALCULATE(
    SUMX(DISTINCT('Combine Payroll + Payout'[EMP&KEY]), SUM('Combine Payroll + Payout'[SBS])),
    ALL('Combine Payroll + Payout')
)
RETURN DIVIDE(CurrentRowTotal, OverallTotal, 0)

修正点说明:

  • 用SUMX迭代唯一的EMP&KEY,确保每个员工的SBS只被计算一次,避免重复行导致的数值错误
  • 分母同样用SUMX+DISTINCT计算全局唯一员工的SBS总和,保证和分子的统计逻辑一致
  • 使用DIVIDE函数避免除零错误,第三个参数为除零时的默认返回值(此处设为0)

场景2:分母为当前筛选上下文的总计(随筛选变化,比如筛选部门后分母为该部门的总计)

如果需要分母随外部筛选(如部门、时间等)动态变化,仅移除当前行EMP&KEY的筛选,修正公式如下:

% Grandtotal = 
VAR CurrentRowTotal = SUMX(
    DISTINCT('Combine Payroll + Payout'[EMP&KEY]),
    CALCULATE(SUM('Combine Payroll + Payout'[SBS]))
)
VAR FilteredTotal = CALCULATE(
    SUMX(DISTINCT('Combine Payroll + Payout'[EMP&KEY]), SUM('Combine Payroll + Payout'[SBS])),
    ALLSELECTED('Combine Payroll + Payout'[EMP&KEY])
)
RETURN DIVIDE(CurrentRowTotal, FilteredTotal, 0)

修正点说明:

  • 替换ALL为ALLSELECTED('Combine Payroll + Payout'[EMP&KEY]),仅移除当前行员工的筛选,保留其他维度(如部门)的筛选条件
  • 统一分子和分母的统计逻辑,避免因重复行导致的计算偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:50:21