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

如何在Power BI中转换SUMPRODUCT公式?基于CI值计算最终得分

在Power BI中实现基于CI值的加权平均得分

先明确你原Excel公式的核心逻辑:只计算CI值大于0的行,用CI值乘以对应权重的总和,除以这些行的权重总和,得到加权平均得分。下面是Power BI中的两种实现方式:

方式1:创建度量值(推荐用于报表汇总)

度量值是Power BI中动态计算汇总值的最佳选择,会根据报表上下文自动调整计算范围:

最终得分 = 
VAR 有效权重总和 = CALCULATE(SUM('你的数据表名'[权重列名]), '你的数据表名'[CI列名] > 0)
VAR 加权CI总和 = CALCULATE(SUMX('你的数据表名', '你的数据表名'[CI列名] * '你的数据表名'[权重列名]), '你的数据表名'[CI列名] > 0)
RETURN
DIVIDE(加权CI总和, 有效权重总和, 0)
  • 替换代码中的'你的数据表名'、[权重列名]、[CI列名]为你实际的表和列名称
  • DIVIDE是DAX的安全除法函数,避免分母为0时出错,最后一个参数0是无有效数据时的默认返回值,可根据需求改成BLANK()或其他值

方式2:创建计算列(仅需每行显示固定汇总得分时使用)

如果需要在数据表的每行都显示这个全局汇总得分,可以用计算列(不推荐用于超大型数据表,会增加内存占用):

最终得分_计算列 = 
VAR 有效权重总和 = CALCULATE(SUM('你的数据表名'[权重列名]), ALL('你的数据表名'), '你的数据表名'[CI列名] > 0)
VAR 加权CI总和 = CALCULATE(SUMX('你的数据表名', '你的数据表名'[CI列名] * '你的数据表名'[权重列名]), ALL('你的数据表名'), '你的数据表名'[CI列名] > 0)
RETURN
DIVIDE(加权CI总和, 有效权重总和, 0)
  • ALL('你的数据表名')用于忽略当前行的上下文,确保计算的是整个表的有效数据总和

逻辑对应说明

  • CALCULATE(SUM(...), [CI]>0) 对应Excel的SUMIF(H4:H20,">0",E4:E20),计算CI>0的权重总和
  • SUMX(...)结合筛选条件,对应Excel的SUMPRODUCT(--(H4:H20>0),H4:H20,E4:E20),计算符合条件的CI×权重总和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:18:10