【问题标题】:Excel, Libreoffice/Openoffice Calc: count 'right' answersExcel、Libreoffice/Openoffice Calc:计算“正确”答案
【发布时间】:2014-10-27 10:51:08
【问题描述】:

我有一张表格,上面有学生对 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))+...
...但这不是最好的方法:)
    

【问题讨论】:

  • 您可以在 Excel 2007+ 中使用 =countifs() 将其浓缩一点,它看起来像 =countifs(D$3,D4,E$3,E5,F$3,F4,...) 不确定 LibreOffice 是否有类似的功能。想一想,您可以在这里使用一些布尔逻辑并执行=(D$3=D5)+(E$3=E5)+(F$3=F5)+... 每个项目将返回 0 或 1 并添加到总数中。

标签: excel libreoffice-calc


【解决方案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 行前的 $ 确保正确答案的行不会改变。

问候

阿克塞尔

【讨论】:

  • 效果很好,谢谢!有一些额外的 $ 符号可以删除,例如 g =SUMPRODUCT(B$2:E$2=B3:E3)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2013-10-16
  • 2016-04-11
相关资源
最近更新 更多