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:计算“正确”答案的主要内容,如果未能解决你的问题,请参考以下文章