从 Google 电子表格的下拉列表中选择多个值
Posted
技术标签:
【中文标题】从 Google 电子表格的下拉列表中选择多个值【英文标题】:Selecting Multiple Values from a Dropdown List in Google Spreadsheet 【发布时间】:2014-06-15 15:56:57 【问题描述】:Google 电子表格看起来只能在下拉列表中选择一个值。
有没有办法从谷歌电子表格的下拉列表中选择多个值?
【问题讨论】:
【参考方案1】:我看到您已使用google-spreadsheet-api
标签标记了这个问题。那么“下拉”是指 Google App Script 的 ListBox 吗?如果是这样,您可以使用简单的真/假值来切换用户从 ListBox 中选择多个项目的能力。
这是一个例子:
var lb = app.createListBox(true).setId('myId').setName('myLbName');
请注意,由于单词 true 启用了多选。
【讨论】:
是否可以在 TamperMonkey 脚本中实现它(这样它可以改变 google sheet 的工作方式)?你试过了吗?【参考方案2】:您将为此使用数据验证。单击要具有多个下拉列表的单元格> DATA > Validation > Criteria (List from a Range) - 在此处从下拉列表中选择所需的项目列表。而且..你很好。我在reference 中包含了一个示例。
【讨论】:
这只能让他们一次选择一项。 OP 要求提供从一个下拉列表中选择多个项目的选项。 答案不符合问题 - 需要多选,而不是从下拉列表中单选。 答案与其他人确定的问题无关。此外,提供的链接无效。【参考方案3】:我在https://www.youtube.com/watch?v=dm4z9l26O0I找到了解决方案
您需要使用工具 > 脚本编辑器。在那里创建 .gs 和 .html 文件。请参阅http://goo.gl/LxGXfU 的示例(链接也可以在 Youtube 视频下找到)。直接复制
当您拥有 .gs 和 .html 文件后,保存它们并重新加载您的电子表格。您将看到“自定义菜单”作为顶部菜单的最后一项。选择您要管理的单元格并单击此菜单项。
在第一次它会要求您授权应用程序 - 继续这样做。
注意(1):确保您的单元格在单击“自定义菜单”之前定义了“数据验证”。
注意 (2):似乎解决方案适用于数据验证的“范围列表”标准(它不适用于“项目列表”)
【讨论】:
这很好用,虽然它不是很人性化。使用 JS/GA/php 有改进的空间。【参考方案4】:我找到了一个很好的解决方法。只有当您希望能够从下拉列表中选择最多 4 个左右的选项时,它才真正有效,但这里是:
为每个“项目”创建与您希望能够选择的下拉项目一样多的行。因此,如果您希望能够从给定的下拉列表中为列表中的每个人选择最多 3 个特征,请为每个人创建总共 3 行。然后合并 A:1-A:3、B:1-B:3、C:1-C:3 等,直到到达您希望下拉列表成为的列。不要合并这些单元格,而是将您的数据验证下拉菜单放在每个单元格中。
希望这很清楚!
【讨论】:
我知道这不像其他答案那样花哨,但它非常强大。它 1) 不需要脚本,2) 其他人无需培训即可使用,3) 如果有人做错了也不会破坏(严重),4) 轻松支持过滤、搜索等,5) 使用标准验证,所以如果谷歌改变了一些东西,它仍然可以工作。谢谢! 由于 A、B、D 和 E 列中的垂直合并,在这种情况下过滤似乎不起作用? (虽然我还是很喜欢这个解决方案=) 图片真的一点都帮不上我,你能一步一步做吗?结果如何?【参考方案5】:添加到 AlexG 的答案中,可以在以下链接中找到更好且增强的多选版本(我尝试过并按预期工作):
https://gist.github.com/coinsandsteeldev/4c67dfa5411e8add913273fc5a30f5e7
有关在 Google 表格中设置脚本的一般指导,请参阅quickstart guide.
要使用这个脚本:
-
在您的 Google 表格中,为一个(或多个)单元格设置数据验证,
使用范围内的数据。在单元格验证中,不要选择“拒绝”
输入'。
转到工具 > 脚本编辑器...
在脚本编辑器中,转到文件 > 新建 > 脚本文件
将文件命名为 multi-select.gs 并粘贴到
多选.gs。文件 > 保存。
在脚本编辑器中,转到文件 > 新建 > Html 文件命名文件
dialog.html 并粘贴到 dialog.html 的内容中。文件 > 保存。
回到您的电子表格,您现在应该有一个名为的新菜单
'脚本'。如有必要,请刷新页面。
从您的
验证范围。
转到脚本 > 多选此单元格...并且侧边栏应该
打开,显示有效项目清单。
勾选您想要的项目,然后单击“设置”按钮以填写您的
包含这些选定项目的单元格,以逗号分隔。
您可以让脚本侧边栏保持打开状态。当您选择任何具有验证的单元格时,单击脚本侧栏中的“刷新验证”以显示该单元格的清单。
上述步骤取自link
【讨论】:
与您共享工作表的用户可能会收到红色警告you do not have access to perform this action. Please ask the owner of this item to grant access to you
。要解决此问题,您需要将脚本部署为 Web 应用程序:***.com/a/57071543/3154274
伟大的工作,但因为它基本上只复制过去的列表项,玩了几个小时后,我发现从我的列表中简单地复制过去我需要的单元格更容易(如果你不有太多的数据,它更加灵活和快速)。 不要忘记将此功能请求发送给 Google:please allow selecting multiple values from a dropdown list
。
这真的很有帮助。非常感谢。
@parishodak,这太棒了。如果我是提问者,我会将此标记为解决方案。只是为了设置更高的栏,是否可以在 html 正文中包含一个搜索栏?从 1000 多个选择中过滤项目的东西?我在谷歌上搜索过,但无济于事。
@J.Mapz。您可能必须实现自己的 javascript 自动完成搜索算法并将其链接到搜索框。例如w3schools.com/howto/howto_js_autocomplete.asp【参考方案6】:
如果必须将答案限制在 Google 表格中,this answer 可以工作,但它有局限性,而且用户体验不够笨拙,可能很难让其他人采用。在尝试解决这个问题时,我发现对于许多应用程序,Airtable 通过允许多选列解决了这个问题,并且用户体验更好。
【讨论】:
以上是关于从 Google 电子表格的下拉列表中选择多个值的主要内容,如果未能解决你的问题,请参考以下文章