Google 工作表:使用间接函数提取唯一数据的查询中排除隐藏行

Google Sheets: EXCLUDE hidden rows in query pulling unique data using indirect function

我有一个 Apps 脚本将 Google Sheet 中的每个选项卡名称拉入列表。然后,我使用查询从每个选项卡中使用间接函数提取所有唯一名称(来自名称列)。

目前每个选项卡中都有隐藏的行(总共有 15 个选项卡)。我的查询当前正在提取那些隐藏选项卡中的名称。

我如何告诉查询提取除隐藏行之外的所有唯一数据?这是我现有的查询公式,其中包括隐藏的行数据(我在这里只包括 2 个数据选项卡以缩短此示例的公式):

=UNIQUE(QUERY({IF(B2="", {"","","",""}, INDIRECT(B2));IF(B3="", {"","","",""}, INDIRECT(B3))},"Select Col4 where Col4 is not null order by Col4 label Col4 'Names'",1))

{"","","",""} 是因为我有用于未来预期选项卡的间接公式,这些公式在选项卡列表中尚不存在,因此我不必更新每次添加新选项卡时的公式。为了排除隐藏数据,我研究了 SUBTOTAL 公式,但我无法将其应用于这种情况。

Here's 我正在使用的 sheet 的模型,较小比例的示例。在 Tabs 选项卡上的 Names 列表中以“Hidden”开头的所有名称都位于查询所在选项卡之一的隐藏行中从拉。我想从查询输出中排除那些 Hidden names/rows。

提前致谢!

SUBTOTAL 是一种方法,但它不适用于 arrayformula,因此您需要将其向下拖动到每一行中。看看你的 sheet.

=UNIQUE(QUERY({
 IF(B2="",  {"","","","",""}, INDIRECT(B2));
 IF(B3="",  {"","","","",""}, INDIRECT(B3));
 IF(B42="", {"","","","",""}, INDIRECT(B4))},
 "Select Col4 
  where Col4 is not null 
    and Col5 = 1 
  order by Col4 
  label Col4 'Name'", 1))

还要注意范围从 A:D 到 A:E