在 Google 表单中设置与标签不同的值
Set values different from label in Google Forms
有没有办法使用 Google Forms Apps Script 或 Google Sheets 公式来设置不同于 Google 上多项选择中的标签的值表格?
我要找的是html中类似的东西:
<select name="cartype" form="myform">
<option value="33">Volvo - </option>
<option value="34">Saab - </option>
<option value="35">Opel - </option>
<option value="36">Audi - </option>
</select>
在 Apps 脚本 (docs) 中,我可以使用 setChoiceValues(values)
设置多项选择值,但这会为输入值和显示文本提供相同的字符串。
values String[]
the array of choice values, which respondents see as
labels when viewing the form
或者,如果可以仅从 Google Sheet 中的单元格中去除货币值并用于求和公式,那就更好了。
我要寻找的最终结果是一个 Google 表格,其中列出了带有价格的选项,然后输出到可以自动对总价格求和的电子表格。
编辑:
是否可以引用工作表中的列表来获取数值?
Sheet 1 - 来自 Google 表格电子表格的结果:
| Name | Car | Days |
| Foo | Saab - | 4 |
| Bar | Volvo - | 2 |
Sheet 2 - 参考列表:
| Car | Price |
| Volvo - | 33 |
| Saab - | 34 |
| Opel - | 35 |
| Audi - | 36 |
Sheet 3 - 总数:
| Name | Car | Days | Total |
| Foo | {price from reference list} | 4 | B1*C1 |
我从不同列的响应中提取价格。编辑列中数据的脚本将更改此内容,稍后编辑或重新导入数据可能会导致冲突。我发现最好为修改后的数据使用另一列。考虑到这一点:
如果您使用的单选按钮项目只允许选择一个项目,则此功能位于适当列的单元格 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*)"))), ))
有没有办法使用 Google Forms Apps Script 或 Google Sheets 公式来设置不同于 Google 上多项选择中的标签的值表格?
我要找的是html中类似的东西:
<select name="cartype" form="myform">
<option value="33">Volvo - </option>
<option value="34">Saab - </option>
<option value="35">Opel - </option>
<option value="36">Audi - </option>
</select>
在 Apps 脚本 (docs) 中,我可以使用 setChoiceValues(values)
设置多项选择值,但这会为输入值和显示文本提供相同的字符串。
values String[]
the array of choice values, which respondents see as labels when viewing the form
或者,如果可以仅从 Google Sheet 中的单元格中去除货币值并用于求和公式,那就更好了。
我要寻找的最终结果是一个 Google 表格,其中列出了带有价格的选项,然后输出到可以自动对总价格求和的电子表格。
编辑:
是否可以引用工作表中的列表来获取数值?
Sheet 1 - 来自 Google 表格电子表格的结果:
| Name | Car | Days |
| Foo | Saab - | 4 |
| Bar | Volvo - | 2 |
Sheet 2 - 参考列表:
| Car | Price |
| Volvo - | 33 |
| Saab - | 34 |
| Opel - | 35 |
| Audi - | 36 |
Sheet 3 - 总数:
| Name | Car | Days | Total |
| Foo | {price from reference list} | 4 | B1*C1 |
我从不同列的响应中提取价格。编辑列中数据的脚本将更改此内容,稍后编辑或重新导入数据可能会导致冲突。我发现最好为修改后的数据使用另一列。考虑到这一点:
如果您使用的单选按钮项目只允许选择一个项目,则此功能位于适当列的单元格 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*)"))), ))