如何使用带有逗号分隔值的单元格通过apps脚本创建动态下拉列表

胸怀万里世界, 放眼无限未来。这篇文章主要讲述如何使用带有逗号分隔值的单元格通过apps脚本创建动态下拉列表相关的知识,希望能为你提供帮助。
下面的脚本允许我使用我根据在单元格上选择的值设置的命名范围自动创建动态下拉列表

function depDrop_(range, sourceRange){ var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build(); range.setDataValidation(rule); } function onEdit (){ var aCell = SpreadsheetApp.getActiveSheet().getActiveCell(); var aColumn = aCell.getColumn(); if (aColumn == 3 & & SpreadsheetApp.getActiveSheet()){ var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1); var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue()); depDrop_(range, sourceRange); } else if (aColumn == 4 & & SpreadsheetApp.getActiveSheet()){ var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1); var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue()); depDrop_(range, sourceRange); } }

我想要做的是使用一个逗号分隔值(而不是命名范围)的单元格作为动态下拉列表,我想根据另一个单元格上的选择值自动创建。任何想法将不胜感激!
答案我已经看到了这个代码所基于的YouTube video。对于非常非常复杂的问题,这是一个非常非常简单的解决方案。我强烈建议您尝试使用脚本,但要使用逗号分隔值作为输入范围。
我建议使用这个等式从各个单元格中提取csv值。
=TRANSPOSE(SPLIT(B3,","))

使用SPLIT分隔单元格中的各个元素。然后使用TRANSPOSE垂直定向数据。如果数据不是“正确”的顺序,你也可以抛出SORT。
如何使用带有逗号分隔值的单元格通过apps脚本创建动态下拉列表

文章图片

屏幕截图显示了csv格式的值; 它们是使用这个公式提取和转置的。然后按照YouTube视频的要求命名范围。
【如何使用带有逗号分隔值的单元格通过apps脚本创建动态下拉列表】这确实是创建动态多依赖下拉列表的最简单方法

    推荐阅读