![如何在 Excel 中无需复杂代码即可从文本单元格中获取分数?](https://linux22.com/image/1406607/%E5%A6%82%E4%BD%95%E5%9C%A8%20Excel%20%E4%B8%AD%E6%97%A0%E9%9C%80%E5%A4%8D%E6%9D%82%E4%BB%A3%E7%A0%81%E5%8D%B3%E5%8F%AF%E4%BB%8E%E6%96%87%E6%9C%AC%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%88%86%E6%95%B0%EF%BC%9F.png)
我想指出一个问题,那就是我不知道如何在 Excel 中恢复分数(满分 5 分),而不需要使用大量的 if。
即是否有可行的方法可以从中得出分数?(无需使用大量的if):
答案1
Excel 中的函数CHOOSE
应该可以完成您要做的事情。
从http://office.microsoft.com/en-us/excel-help/choose-HP005209013.aspx:
使用 index_num 从值参数列表中返回一个值。使用 CHOOSE 根据索引号从最多 29 个值中选择一个。例如,如果 value1 到 value7 是星期几,则当使用 1 到 7 之间的数字作为 index_num 时,CHOOSE 将返回其中一天。
句法
选择(索引号,值1,值2,...)
Index_num 指定选择哪个值参数。Index_num 必须是 1 到 29 之间的数字,或者是包含 1 到 29 之间的数字的公式或单元格引用。
因此,例如,如果正确答案是第二个答案,则可以使用:
=CHOOSE(A1, "Incorrect", "Correct", "Incorrect, "Incorrect", "Incorrect")
Correct
并且仅当单元格A1
包含时,该函数才会返回2
。但是,CHOOSE
仅适用于数字。如果您的答案以字母形式给出,您可以使用以下公式将 A、B、C... 映射到 1、2、3...:
=CODE(UPPER(A1))-64
这会将单元格中的字母转换A1
为大写(如果它还不是大写),然后找到其 ASCII 码。大写字母的 ASCII 码从 65 开始,因此如果我们希望编号从 1 开始,只需减去 64。