Подведение итогов теста - PullRequest
1 голос
/ 03 апреля 2019

У меня есть таблица, левая колонка, состоящая из участников опросов, скажет 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 ]

2 голосов
/ 03 апреля 2019

Вы можете использовать:

=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)}

0 голосов
/ 03 апреля 2019

Используйте эту формулу для всех ответов, корректируя А1 до необходимой ячейки.

=CODE(UPPER(A1))-64

Это преобразует a или A в 1, b или B в 2 и т. Д. Это работает, потому что значение ASCII верхнего регистра A65. Затем вы можете добавить значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...