Google 从选项卡名称列表中提取的工作表 QUERY 将在添加新选项卡时提取新选项卡数据
Google Sheets QUERY pulling from a list of tab names which will pull new tab data as new tabs are added
我有一个 Google Apps 脚本将 Google Sheet 中每个选项卡的名称拉到一个列表中。这些选项卡按月份和年份(即 2020 年 2 月)标记,但自 2 月以来我没有每个月的选项卡。当我有新数据时,我会为几个月创建一个新选项卡,而新数据并不总是每个连续的月份。
对于这些选项卡,我想在每个选项卡的 D 列中查询所有选项卡中的所有唯一值。我想知道是否可以在预期潜在的新选项卡时执行此操作,这样我就不必在每次添加新选项卡时都去更新查询?
目前我有现有选项卡的列表,并连接起来以包括单元格 C2:C6 中的范围(因此每个 tab/range 都列为 2020 年 1 月!例如 A:D)。我拥有的正确提取唯一值的查询是:
=UNIQUE(QUERY({INDIRECT(C2);INDIRECT(C3);INDIRECT(C4);INDIRECT(C5);INDIRECT(C6)},"Select Col4 where Col4 is not null",1))
有没有办法将新的 month/dates 添加到现有选项卡的列表中,以预期将来可能会添加该选项卡名称,并将那些尚不存在的选项卡名称添加到查询中, 但告诉它如果在 sheet?
中找不到该选项卡则忽略它
提前致谢!
有几种方法可以解决这个问题:
- 使用将选择 sheet 个名称的脚本
- 没有脚本只使用公式
- 如果可以预测 sheet 的创建,则具有逻辑
non-existing sheets可以这样忽略:
=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 个空位 {"","","",""}
参见:
我有一个 Google Apps 脚本将 Google Sheet 中每个选项卡的名称拉到一个列表中。这些选项卡按月份和年份(即 2020 年 2 月)标记,但自 2 月以来我没有每个月的选项卡。当我有新数据时,我会为几个月创建一个新选项卡,而新数据并不总是每个连续的月份。
对于这些选项卡,我想在每个选项卡的 D 列中查询所有选项卡中的所有唯一值。我想知道是否可以在预期潜在的新选项卡时执行此操作,这样我就不必在每次添加新选项卡时都去更新查询?
目前我有现有选项卡的列表,并连接起来以包括单元格 C2:C6 中的范围(因此每个 tab/range 都列为 2020 年 1 月!例如 A:D)。我拥有的正确提取唯一值的查询是:
=UNIQUE(QUERY({INDIRECT(C2);INDIRECT(C3);INDIRECT(C4);INDIRECT(C5);INDIRECT(C6)},"Select Col4 where Col4 is not null",1))
有没有办法将新的 month/dates 添加到现有选项卡的列表中,以预期将来可能会添加该选项卡名称,并将那些尚不存在的选项卡名称添加到查询中, 但告诉它如果在 sheet?
中找不到该选项卡则忽略它提前致谢!
有几种方法可以解决这个问题:
- 使用将选择 sheet 个名称的脚本
- 没有脚本只使用公式
- 如果可以预测 sheet 的创建,则具有逻辑
non-existing sheets可以这样忽略:
=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 个空位 {"","","",""}
参见: