Установите значения, отличные от label в Google Forms


Есть ли способ с помощью скрипта Google Forms Apps или формул Google Sheets установить значение, отличное от метки в нескольких вариантах выбора в Google Forms?

Я ищу что-то похожее на это в html:

<select name="cartype" form="myform">
  <option value="33">Volvo - $33</option>
  <option value="34">Saab - $34</option>
  <option value="35">Opel - $35</option>
  <option value="36">Audi - $36</option>
</select>

В скрипте Apps (docs ) я могу задать значения множественного выбора с помощью setChoiceValues(values), но это дает одну и ту же строку для входного значения и отображаемого текста.

values String[] массив значений выбора, которые видят респонденты как метки при просмотре формы

С другой стороны, было бы неплохо, если бы можно было удалить значения валют только из ячейки в Google Sheets и использовать в Формуле суммы.

Конечный результат, который я ищу, - это форма Google, которая перечисляет варианты с ценами, а затем выводит в электронную таблицу, которая может автоматически суммировать итоговые цены.

Редактировать:

Можно ли сделать ссылку на список в листах, чтобы получить числовое значение?

Лист 1 - Результаты из таблицы Google Form:

| Name | Car        | Days |
| Foo  | Saab - $34 | 4    |
| Bar  | Volvo - $33| 2    |

Лист 2-списки ссылок:

| Car         | Price |
| Volvo - $33 | 33    |
| Saab - $34  | 34    |
| Opel - $35  | 35    |
| Audi - $36  | 36    |

Лист 3-Итоги:

| Name | Car                         | Days | Total |
| Foo  | {price from reference list} | 4    | B1*C1 |
1 2

1 ответ:

Я извлекаю цены из ответа в другой колонке. Сценарий, редактирующий данные в столбце, изменит это, и последующие изменения или повторный импорт данных могут вызвать конфликты. Я считаю, что лучше использовать другой столбец для измененных данных. Имея это в виду:

Если вы используете переключатель, позволяющий выбрать только один элемент, эта функция, помещенная в ячейку 2 соответствующего столбца, должна хорошо работать. Заменить A2:A в обоих местах столбцом, содержащим ответ на вопрос. Просто убедитесь, что у вас уже есть один ответ в таблице:

=ARRAYFORMULA(IF(ISTEXT( A2:A),  REGEXEXTRACT(A2:A,"\$(\d*)"), ))

ARRAYFORMULA заставляет формулу работать для каждой ячейки в столбце. IF () используется для применения формулы к соответствующим строкам. REGEXEXTRACT() извлекает время из текста.

Если вы допускаете множественные выборки (флажки) в форме, то вам нужно извлечь каждое значение и суммировать их, чтобы получить итог. Это не звучит так, как будто вы делаете это. Есть решения чтобы это произошло, но используйте очень сложную формулу. Возможно, было бы лучше использовать специальную формулу для разделения всего текста и сложения его вместе.

Править: Из комментария следует, что форма может фактически заполнить поле пустым текстовым элементом. Чтобы обойти ячейку, содержащую текст и не содержащую чисел, мы используем функцию IFERROR() для исключения ошибок:

=ARRAYFORMULA(IF(ISTEXT( A2:A),  IFERROR( REGEXEXTRACT(A2:A,"\$(\d*)")), ))

Правка 2: Измените полученный текст на числовое значение, чтобы мы могли использовать математические формулы для результатов:

=ARRAYFORMULA(IF(ISTEXT( B2:B),  IFERROR( VALUE(REGEXEXTRACT(B2:B,"\$(\d*)"))), ))