如何将多个单元格引用添加到单个查询?

时间:2019-06-02 02:24:06

标签: google-sheets google-sheets-formula google-sheets-query

我正在尝试在Google表格中设置任务管理器。我为每个项目创建了一个新工作表,然后当我在单元格中输入工作表名称时,我将构建一个字符串,可用于查询并将所有数据提取到主工作表中。

当我添加一个项目ID时,我会使用串联来构建一个我想用作查询数据的字符串:

公式: =IFERROR(ARRAYFORMULA(if(isblank(A3),"",CONCATENATE("'", A3, "'", "!A87:M"))))

输入:

Cell A3 - Sheet1

Cell A4 - Sheet2

输出:

Cell B3 - 'Sheet1'!A87:M

Cell B4 - 'Sheet2'!A87:M

然后我使用该输出为查询建立数据。

方法1: =ARRAYFORMULA(FILTER(B3:B, NOT(B3:B = "")))

输出:

Cell C2 - 'Sheet1'!A87:M

Cell C3 - 'Sheet2'!A87:M

方法2: =join(";", filter(B2:B, not(B2:B = "")))

输出:

Cell C4 - '19654'!A87:M;'19984'!A87:M;'Sheet5'!A87:M

然后我将输出传递到查询中,以尝试从每个项目返回数据:

=query({INDIRECT(C2)},"Select Col1, Col2, Col3 where Col1 is not null")

如果我使用方法1,则输出只是第一个单元格的结果。它不会从整个arrayformula的结果中得到一切

如果我使用方法2,则输出将返回ref错误消息:

Function INDIRECT parameter 1 value is ''Sheet1'!A87:M;'Sheet2'!A87:M;'. It is not a valid cell/range reference.

如果我将每行手动输入到查询数据中,我就能使查询工作:

=query({INDIRECT(C2); INDIRECT(C3)},"Select Col1, Col2, Col3 where Col1 is not null")

但是我想这样做,以便每当我输入新的工作表名称时,公式都会更新并返回所有页面的结果。

任何帮助将不胜感激,并在此先感谢您。

0 个答案:

没有答案