Excel 公式/解决方案,用于对具有多个答案的多项选择题进行评分

0 worksheet-function microsoft-excel

我有一个 Excel 表格,我可以在其中输入学生测试答案,如下所示:

  1. 一种
  2. 甲、乙
  3. 光盘

并将这些答案与正确答案进行比较:

  1. 一种
  2. 一种
  3. C、D、E

如果学生的答案是正确的(例如答案 1),我知道如何使用 IF 函数在单元格中输出“CORRECT”,否则会吐出“INCORRECT”。

我似乎无法找到一个公式,如果正确,它会吐出“正确”(1);'INCORRECT' 如果错误 (2); 'MISTAKE' 如果学生答对了其中一个,但同时答错了另一个选项 (3);如果学生回答正确但错过了答案 (4),则为“错过”。

有没有办法做到这一点?我试过使用通配符和计数,但它超出了我的 Excel 水平。

在此先感谢您的帮助!

Mob*_*bus 5

解决方案

让我们像这样用二进制表示答案,位序为 EDCBA,即

01010
Run Code Online (Sandbox Code Playgroud)

意味着答案是

B,D
Run Code Online (Sandbox Code Playgroud)

要转换文本答案(学生或答题纸),我们使用

=ISNUMBER(SEARCH("A", A1))*2^0 + ISNUMBER(SEARCH("B", A1))*2^1 + ISNUMBER(SEARCH("C", A1))*2^2 + ISNUMBER(SEARCH("D", A1))*2^3 + ISNUMBER(SEARCH("E", A1))*2^4
Run Code Online (Sandbox Code Playgroud)

现在来比较。假设我们有 C1 正确答案和 D1 学生答案,两者都是使用上述公式的“按位”形式。然后

=IF(C1 = D1, "Correct", IF(BITAND(BITXOR(C1,D1),C1)=C1, "Incorrect", IF(BITAND(BITXOR(C1,D1),C1)=BITXOR(C1,D1), "Missing", "Mistake")))
Run Code Online (Sandbox Code Playgroud)

说明

我可以试着解释一下,但我必须先杀了你,然后再杀了我自己。也许我可以尝试...将检测“错误”视为困难的错误会有所帮助,因此将其留给 if 的最后一个“全部捕获”情况。考虑跳过这个以支持下图:

    X XOR Y is a list of differences between lists X and Y
    X AND Z = X means the list Z must at least contain everything in list X
    X AND Z = Z means the list X must at least contain everything in list Z

Now lets say X is the list of correct answers (CA), Y is list of the student's answers (SA). Then:

    Z = X XOR Y is a list of differences between CA and SA

If Z = 0 then the list is empty and CA = SA i.e. "Correct", else if

    X AND Z = X 

then the list of differences must contain at least everything in list of correct answers (i.e. no correct answers = "incorrect"), else if

    X AND Z = Z 

then the list of correct answers must contain at least everything in the list of differences (i.e. no wrong answers = "missing", one or more correct), else

    NOT(all of the above)

then one or more correct answer and one or more incorrect answer = "Mistake".
Run Code Online (Sandbox Code Playgroud)

TL; 博士

如果你画它实际上很容易(睡觉后的洞察力!):

在此处输入图片说明