【问题标题】:Selecting Multiple Values from a Dropdown List in Google Spreadsheet and Printing Alphabatically从 Google 电子表格的下拉列表中选择多个值并按字母顺序打印
【发布时间】:2023-03-21 20:30:01
【问题描述】:

我正在关注此链接Selecting Multiple Values from a Dropdown List in Google Spreadsheet,它运行良好。例如,如果我有三个值的下拉菜单,如“红色、黑色、绿色”,并且我选择“红色和黑色”,它会完美地打印红色和黑色,现在如果我选择“黑色和红色”,它会分别打印。现在的问题是,如果我在电子表格中过滤此列,这些“红色和黑色”、“黑色和红色”将被视为没有意义的单独值,因为两者都是相同的。如果我以任何方式选择它应该按字母顺序打印,怎么办?有什么线索吗? 谢谢。

【问题讨论】:

  • 你有这么多,你不能将它们的组合添加到列表中。例如像这样的列表["1","2","3","1&2","1&3","2&3","1&2&3"]。如果选择的数量是 x,则组合的数量是(2 到 x 次方)-1,因为不进行选择也是选项之一。因此,四个将有 15 个,而 5 个将是 31 个,所以一段时间后它会变得笨拙。但是你总是可以用真值表来计算它们,或者编写一个函数来为你做这件事。当然,列宽也开始成为一个问题,但我想你可以留一个空间以便换行
  • 我会考虑使用 x 列。

标签: javascript google-apps-script google-sheets


【解决方案1】:

这是可能的解决方案。

您可以将此函数添加到multi-select.gs 文件的末尾:

function sort_contents() {
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  var sorted_values = values.map(row => [row[0].split(',').sort().join(',')]);
  range.setValues(sorted_values);
}

将此函数添加到dialog.html文件中,在函数function reset() {...}之后:

function sort_contents() {
  google.script.run.withSuccessHandler(x=>{}).sort_contents()
}

并在dialog.html 中再添加一个按钮:

<input type="button" value="Sort" onclick="sort_contents()" />

之后,您将拥有“排序”按钮,该按钮将按字母顺序对选定单元格(以及单元格,您可以选择多个单元格)的内容进行排序。因此,您可以随时将“红、黑”分类为“黑、红”。

【讨论】:

  • 完美!!非常感谢@Yuri Khristich
猜你喜欢
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
相关资源
最近更新 更多