我有一个 Google Apps 脚本,将 Google 表格中每个选项卡的名称拉入一个列表。这些选项卡按月份和年份标记(即 2020 年 2 月),但自 2 月以来我没有每个月的选项卡。当我有新数据时,我会创建一个新选项卡几个月,但并不总是每个连续的月份。
通过这些选项卡,我想查询所有选项卡中每个选项卡 D 列中的所有唯一值。我想知道是否可以在预期潜在的新选项卡时执行此操作,这样我就不必在添加新选项卡时都去更新查询?
目前,我有现有选项卡的列表,并连接到单元格 C2:C6 中的范围(因此每个选项卡/范围列为 2020 年 1 月!A:D)。我正确提取唯一值的查询是:
=UNIQUE(QUERY({INDIRECT(C2);INDIRECT(C3);INDIRECT(C4);INDIRECT(C5);INDIRECT(C6)},"Select Col4 where Col4 is not null",1))
是否有一种方法可以将新的月份/日期添加到现有选项卡列表中,以预期将来可能会添加该选项卡名称,并将这些尚不存在的选项卡名称添加到查询中,但告诉它如果在工作表中找不到该选项卡,是否忽略它?
提前谢谢您!
最佳答案
有几种方法可以解决这个问题:
- 使用一个可以选择工作表名称的脚本
- 没有仅使用公式的脚本
- 如果可以预测工作表的创建,则具有逻辑
不存在的工作表可以像这样被忽略:
=UNIQUE(QUERY({
IF(C2="", {"","","",""}, INDIRECT(C2));
IF(C3="", {"","","",""}, INDIRECT(C3));
IF(C4="", {"","","",""}, INDIRECT(C4));
IF(C5="", {"","","",""}, INDIRECT(C5));
IF(C6="", {"","","",""}, INDIRECT(C6))},
"select Col4 where Col4 is not null", 1))
注意 A:D 中的 4 列 = 4 个空槽{"","","",""}
参见:
<强> https://stackoverflow.com/a/69067831/5632629
<强> https://stackoverflow.com/a/57452968/5632629
<强> https://stackoverflow.com/a/58599649/5632629
关于arrays - Google Sheets QUERY 从选项卡名称列表中提取,这将在添加新选项卡时提取新选项卡数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71329143/