Excel、Libreoffice/Openoffice Calc:计算“正确”答案

Posted

技术标签:

【中文标题】Excel、Libreoffice/Openoffice Calc:计算“正确”答案【英文标题】:Excel, Libreoffice/Openoffice Calc: count 'right' answers 【发布时间】: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 并添加到总数中。 【参考方案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)

以上是关于Excel、Libreoffice/Openoffice Calc:计算“正确”答案的主要内容,如果未能解决你的问题,请参考以下文章

Excel表格自动排序的方法

如何在Delphi导入excel读取excel数据

excel表格怎样锁定表头前两行(怎样固定excel表头前两行)

excel文件加密怎么解密(excel文件加密怎么解除)

excel怎么把2个表合一起吗

如何在网页中嵌入excel控件,实现excel的在线编辑?