只算期末考的加权平均(SUMPRODUCT)

困难 数学
题目说明
提示 0/4
官方解法 2
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

题目

题目说明

成绩表 A2:C5 把平时考与期末考混在一起,各自有权重。董事会只要一个数字:**只看 Final 那几行**的加权平均。请填在 Final grade 单元格 E2——平时考的权重不能把它拉下来。

分母要用「筛选后的权重和」,不是全部权重的总和——用全部权重的话,用例 1 会算出 52 而不是 86。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
ABCE
1TypeScoreWeightFinal grade
2Final900.3
3Quiz700.3
4Final800.2
5Quiz880.2

知识点

像 (A2:A5="Final") 这种比较会返回 TRUE/FALSE,放进 SUMPRODUCT 会被当成 1/0,所以乘上条件就等于只留下要的行。分母也必须用同一个条件:只平均一部分数据时,权重要重新归一化。AVERAGEIF 做不到——它只平均数值,不吃第二列的权重。

解题思路

答案写在 E2。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。

  1. 目标单元格是 E2
  2. 只有 A2:A5 为 Final 的行要算
  3. SUMPRODUCT 里的比较会变成 1/0,直接乘进乘积即可
  4. 公式形状:SUMPRODUCT((条件)*分数*权重) / SUMPRODUCT((同一个条件)*权重)

官方解法

展开 2 种解法(建议先自己试一次)

解法 1:把条件乘进去

=SUMPRODUCT(($A$2:$A$5="Final")*$B$2:$B$5*$C$2:$C$5)/SUMPRODUCT(($A$2:$A$5="Final")*$C$2:$C$5)

条件把平时考的行在分子与分母都归零,计算只看得到期末考:(90×0.3 + 80×0.2) ÷ (0.3 + 0.2) = 86。

解法 2:逗号语法搭配 -- 转换

=SUMPRODUCT(($A$2:$A$5="Final")*$B$2:$B$5,$C$2:$C$5)/SUMPRODUCT(--($A$2:$A$5="Final"),$C$2:$C$5)

SUMPRODUCT 可以用逗号接多个数组;两个减号先把 TRUE/FALSE 转成 1/0,再乘上权重。答案相同,而且条件变多时更好读。

相关 Excel 练习

常见问题

SUMPRODUCT 遇到 A2:A5="Final" 这种比较会怎么处理?

会把比较结果变成 1 和 0。乘上它就能保留匹配的行、其余归零,所以一条公式同时完成筛选与计算。

为什么分母只能用期末考的权重?

因为你只平均了其中一部分。期末考只占权重的 0.5,若除以 1.0,答案会被缩小;除以同条件的权重和才是重新归一化——这就是 86 与 43 的差别。

为什么不用 AVERAGEIF?

AVERAGEIF 只会平均数值,无法套用第二列的权重。加权平均需要「分数 × 权重」的乘积,而这正是 SUMPRODUCT 帮你做的。