Не откладывая в долгий ящик, специально для +Boris Yarmakhov сделал небольшой скрипт, который позволяет подсчитать результаты тестирования. Проверил в режиме инкогнито для Таблицы - скрипт работает.
И так, тестирование...
Исходные данные:
Создадим новый лист "Таблица баллов". Добавим в него баллы. В одну строку, в 3 ячейки: Вопрос как в Форме, ответ как в Форме, баллов за ответ. Необходимо перечислить все варианты.
Теперь на новом листе "Результаты через скрипт", добавим две формулы:
Пожалуй, это все.
И так, тестирование...
Исходные данные:
- Предыдущий пост Как автоматически подсчитать новые ответы Формы в Таблице Google
- Форма Определятор настроения
- Таблица результатов
Задача:
- Написать программу, которая будет подсчитывать результаты теста аналогично ARRAYFORMULA
- Ограничимся итогами, без промежуточных данных
Меню Таблицы - Инструменты - Редактор скриптов...
Необходимо создать пустой проект. В него добавить код:
function ResultsOfTests(responds, balls) {Сохранить проект под именем, я обычно пишу тоже что и имя Таблицы. Ничего авторизировать не надо.
var balls_ = {};
balls.forEach(function(row){
if(!balls_.hasOwnProperty(row[0])) balls_[row[0]] = {};
if(!balls_[row[0]].hasOwnProperty(row[1])) balls_[row[0]][row[1]] = row[2];
});
var responds_ = responds.slice(1);
var result = responds_.map(function(respond){
var ball = 0;
responds[0].forEach(function(qw, i){
if(balls_.hasOwnProperty(qw)){
if(balls_[qw].hasOwnProperty(respond[i])) ball += balls_[qw][respond[i]]
}
});
return ball;
});
return result;
}
Создадим новый лист "Таблица баллов". Добавим в него баллы. В одну строку, в 3 ячейки: Вопрос как в Форме, ответ как в Форме, баллов за ответ. Необходимо перечислить все варианты.
Теперь на новом листе "Результаты через скрипт", добавим две формулы:
- В ячейку A2 имена респондентов
=ARRAYFORMULA('Ответы на форму'!E2:E1500)
- В ячейку B2 результаты тестирования
=ResultsOfTests('Ответы на форму'!B1:D1500;'Таблица баллов'!A1:C10)
Пожалуй, это все.
Комментарии
Отправить комментарий
Спасибо за ваше сообщение. Оно может быть не опубликовано сразу из-за того, что попало на предмодерацию. Дождитесь публикации сообщения. Спасибо за понимание.
Thank you for your message. It may not be published immediately due to the fact that it got to pre-moderation. Wait for the message to be published. Thank you for understanding.