0

我有一张表格,上面有学生对 20 个数学问题的答案,如下所示:

     一个 | 乙| C | D | E |...
---------+---+-----+------+-----+...
没有问题 | 1 | 2 | 3 | 4 |...
---------+---+-----+------+-----+...
正确答案| 3 | 2 | 一个 | 15 |...
---------+---+-----+------+-----+...
学生1 | 3 | 4 | 一个 | 12 |...
学生2 | 2 | 2 | C | 15 |...
学生3 | 3 | 2 | 一个 | 13 |...

现在需要一个列来计算每个学生的“正确”答案。

我可以这样做:

=(IF(D$3=D5;1;0))+(IF(E$3=E5;1;0))+(IF(F$3=F5;1;0))+...
...但这不是最好的方法:)

4

1 回答 1

1

这是 SUMPRODUCT 的典型用例:

  A             B  C  D  E   F  G
1 problem no    1  2  3  4      
2 right answer  3  2  A  15     right answers per student
3 student1      3  4  A  12     2
4 student2      2  2  C  15     2
5 student3      3  2  A  13     3

Formula in G3:
=SUMPRODUCT($B$2:$E$2=$B3:$E3)

如果有更多问题编号,则必须增加 $E$2 和 $E3 中的列字母。

工作原理: SUMPRODUCT 将其内部函数作为数组公式。因此 $B$2:$E$2=$B3:$E3 变为 {TRUE, FALSE, TRUE, FALSE} 的矩阵,具体取决于 $B$2=$B3, $C$2=$C3, $D$2=$ D3,$E$2=$E3。

在 Libreoffice 或 Openoffice 中,TRUE 为 1,FALSE 为 0。因此 SUMPRODUCT 将所有 TRUE 相加。

在 Excel 中,您必须首先在数字上下文中获取布尔值。所以 Excel 中的公式将是=SUMPRODUCT(($B$2:$E$2=$B3:$E3)*1).

然后可以为所有学生行填写第 3 行中的公式。第 2 行之前的 $ 确保正确答案的行不会改变。

问候

阿克塞尔

于 2014-10-27T15:29:53.363 回答