我有一张桌子,左边的调查表参与者组成的列说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
答案 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。然后可以将其相加。