我在Google工作簿中有动态的工作表列表。我希望创建一个从这些不同工作表中提取的查询-尽管我经常添加和删除工作表。
现在我查询的样子,和它的伟大工程:
=query({'1.17 invoice'!A25:N;'1.31 invoice'!A25:N;'2.1 invoice'!A25:N;'invoice 2.1 (2)'!A25:N},"SELECT Col1, Col2, Col3, Col7, Col12, Col13 where Col1 <> ''",0)
我可以创建一个单元格A1,其值是:'1.17发票'!A25:N;'1.31发票'!A25:N;'2.1发票'!A25:N;'发票2.1(2)'! A25:N
但是现在我必须将A1的结果复制并粘贴到查询公式中以便对其进行更新。当我尝试创建如下公式时:
=query({indirect(A1)},"SELECT Col1, Col2, Col3, Col7, Col12, Col13 where Col1 <> ''",0)
我只是得到一个错误,“间接结果不是有效的单元格范围”。有没有什么好办法可以自动将工作表列表放入查询功能?
答案 0 :(得分:1)
OP试图使数组范围更加灵活。原始公式:
=query({'1.17 invoice'!A25:N;
'1.31 invoice'!A25:N;
'2.1 invoice'!A25:N;
'invoice 2.1 (2)'!A25:N},
"SELECT Col1, Col2, Col3, Col7, Col12, Col13 where Col1 <> ''",0)
OP在单元格A1中输入了数组范围,并修改了公式:
A1 = '1.17 invoice'!A25:N;'1.31 invoice'!A25:N;'2.1 invoice'!A25:N;'invoice 2.1 (2)'!A25:N
修改后的公式:
=query({indirect(A1)},"SELECT Col1, Col2, Col3, Col7, Col12, Col13 where Col1 <> ''",0)
这不起作用,因为INDIRECT
返回单个数组值,但是A1包含多个范围。但是,如果分别声明每个范围,该查询将起作用。
布局:
A1 = '1.17 invoice'!A25:N
A2 = '1.31 invoice'!A25:N
A3 = '2.1 invoice'!A25:N
A4 = 'invoice 2.1 (2)'!A25:N
公式:
=query({indirect(A1);
Indirect(A2);
indirect(A3);
Indirect(A4)},
"SELECT Col1, Col2, Col3, Col7, Col12, Col13 where Col1 <> ''",0)
信用:
鲁本(https://webapps.stackexchange.com/a/88726/196152)
Karl_S(https://webapps.stackexchange.com/a/104517/196152)