Google Form случайные вопросы из банка, каждый раз разные. - PullRequest
0 голосов
/ 16 января 2020

У меня есть список из 14 вопросов в Google Sheet, которые я хотел бы использовать 5 из случайных, чтобы заполнить форму Google. Мне удалось сделать это с помощью надстройки FormCreator в некоторой степени, но я бы хотел, чтобы вопросы генерировались случайным образом каждый раз, когда форма открывается. На данный момент форма заполняется 5 случайными вопросами, но всегда будет придерживаться исходных 5, независимо от того, изменяется ли выбор.

Формула, которую я использовал, чтобы выбрать случайную 5 из моих 14 (в листах):

=ArrayFormula(Array_Constrain(vlookup(Query({ROW($A$2:$A$16),randbetween(row($A$2:$A$16)^0,9^9)},"Select Col1 order by Col2 Asc"),{row($A$2:$A$16),$A$2:$A$16},2,FALSE),5,1))

Я пытаюсь создать одну форму, которая будет отличаться каждый раз, когда мои студенты открывают ее, вместо того, чтобы кропотливо создавать более 100 «случайных» форм вручную для использования.

Ответы [ 2 ]

1 голос
/ 16 января 2020

В настоящее время нет способа случайного изменения формы при каждом ее открытии. Google не предоставляет никаких механизмов для динамического изменения формы в ответ на поведение пользователя, поэтому теперь существует способ обновления или запуска logi c при открытии формы.

Существует несколько вариантов, которые может работать.

Вы можете настроить скрипт на триггер, который будет запускаться каждые X минут, который случайным образом обновляет список вопросов.

Этот подход требует некоторых пользовательских сценариев и может привести к некоторому странному поведению в листе ответов, поскольку столбцы ответов не будут использоваться повторно, как вы ожидаете.

Другой вариант - создать группу разделов со случайными наборами вопросов. Скажем, вы делаете 10 или 15 из этих разделов, каждый из которых состоит из 5 случайно выбранных вопросов. Затем для первого раздела вы создаете поле выбора со списком случайных чисел с вопросом, помеченным как «Выбрать любое число», и устанавливаете каждый параметр числа, чтобы перевести пользователя в другой раздел из 5 вопросов. Затем выберите опцию «перемешать опцию порядка» в этом исходном вопросе

Этот подход не требует написания сценариев и дает вам некий псевдослучайный процесс в одной форме. Это может подойти в зависимости от ваших потребностей.

0 голосов
/ 16 января 2020

в качестве отступления, можете ли вы изменить формулу, чтобы дубликаты не использовались? Это означает, что все пять в случайном диапазоне уникальны?

таким образом, 5 сгенерированных вопросов всегда будут уникальными / не дублируются

=ARRAYFORMULA(ARRAY_CONSTRAIN(VLOOKUP(QUERY({ROW(A2:A16), 
 RANDBETWEEN(ROW(A2:A16)^0, 9^9)},
 "select Col1 order by Col2"), {ROW(A2:A16), A2:A16}, 2, 0), 5, 1))

0

, но формула может быть короче:

=ARRAYFORMULA(QUERY({RANDBETWEEN(ROW(A2:A16), 999^99), A2:A16}, 
 "select Col2 order by Col1 limit 5", 0))

0

...