总结考试成绩

时间:2019-04-03 12:36:46

标签: excel vba

我有一张桌子,左边的调查表参与者组成的列说1-20。紧随其后的是10列,回答了10个可能的问题。

让我们说问题的答案范围是a-e,其中a = 1分,e = 5分。

总结每个人分数的最简单,最快的方法是什么。

我尝试使用Sumifs,给每个字母打一个分数(a = 1,b = 2 ...),但是,我不知道我该如何计算sumif。

我已经考虑过VBA对每个问题逐一评分,然后将它们加总-但是我觉得这很漫长。

示例表(您可以使用'= CHAR(RANDBETWEEN(97,101))'来随机化每个问题的字母)

Questionnaire / Question 1 / Question 2/ ... / Question 10
1                 a            c                d
2                 d            e                b
...               ...          ...              ...
20

2 个答案:

答案 0 :(得分:2)

您可以使用:

=SUMPRODUCT(CODE(UPPER(B2:K21))-64)

在VBA中:

Total = Evaluate("=SUM(CODE(UPPER(B2:K21))-64)")

这是一个数组公式,这就是SUMPRODUCT()在工作表上更好的原因,但是VBA可以在不作为数组输入的情况下使用数组,因此SUM()通过VBA可以工作。相当于工作表为:{=SUM(CODE(UPPER(B2:K21))-64)}

答案 1 :(得分:0)

在将A1调整为所需单元格的所有响应上使用此公式。

=CODE(UPPER(A1))-64

这会将a或A转换为1,将b或B转换为2等。这是有效的,因为大写A的ASCII值为65。然后可以将其相加。