在Google表单中设置与标签不同的值

时间:2016-11-28 15:45:28

标签: javascript forms google-sheets google-form

使用Google表单应用程序脚本或Google表格公式是否可以设置与Google表单上的多项选择中的标签不同的值?

我正在寻找的内容类似于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>

在应用脚本(docs)中,我可以使用setChoiceValues(values)设置多项选择值,但这会为输入值和显示文本提供相同的字符串。

  

values String[]选择值数组,受访者认为   查看表单时的标签

或者,如果可以仅从Google表格中的单元格中剥离货币值并使用总和公式,那就没关系了。

我正在寻找的最终结果是一个Google表单,其中列出了价格选项,然后输出到可以自动汇总价格总和的电子表格。

修改

是否可以对工作表中的列表进行引用以获取数字值?

第1页 - Google表格电子表格的结果:

| 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 个答案:

答案 0 :(得分:2)

我从不同列中的响应中提取价格。编辑列中数据的脚本将更改此操作,稍后编辑或重新导入数据可能会导致冲突。我发现使用另一列来修改数据会更好。考虑到这一点:

如果您使用的单选按钮项目只允许选择一个项目,则放置在approriate列的单元格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*)"))), ))