Google工作表中是否有一种方法可以选择单元格列表作为要用作连接工作表中参数的数组?

问题描述

我设置了一个新的Google工作表,以通过连接的工作表查询数据库

查询返回我们的商店及其每年销售额的列表。每个商店都有一个ID。

我能够将另一个参考表中的单元格A1设置为查询中的参数。这样,连接的查询仅返回该特定商店ID的结果。

使用此功能时,我真的很想在我的查询添加一个IN函数。连接的查询将看起来像这样。

SELECT * FROM shops where shops.id in (@RANGE) 

@RANGE作为数组将为A2:A。

我已经成功地将每个单元格命名为新参数,然后:

SELECT * FROM shops where shops.id in (@REFERENCE1,@REFERENCE2) 

有没有更优雅的解决方案?

解决方法

=QUERY(IMPORTRANGE("Google_Sheet_ID_Can_Be_Find_In_URL","Sheet_Name!Range(you want to query)"),"SELECT * ")

=QUERY(IMPORTRANGE("Google_Sheet_ID_Can_Be_Find_In_URL","Sheet_Name!A2:A"),"Sheet_Name!Range"),"SELECT * WHERE Col2='shops.id'")")

IMPORTRANGE()方法从另一个工作表导入数据。在参数中,您可以在网址中输入带引号的google工作表ID,然后输入所需的工作表名称,并以!结尾,然后输入要查询的工作表范围。当您使用外部QUERY()方法包装数据时,可以通过选择特定列来查询该范围内的数据,例如A2:A,包括该范围内的列或该工作表名称中的*

使用IMPORTRANGE()方法时,它将返回一个数组。选定的列必须用"SELECT Col 1,Col 2,Col 3"

这样的数字进行标记 ,

这可能对您有用。

=SUBSTITUTE(QUERY(FILTER(D3:D,D3:D<>"",E3:E),"WHERE Col1 <> ''",9^99)," ","|")

这将根据已选择的商店ID来过滤一列商店ID,并将其隐藏到类似于您所使用的查询的文本字符串中。产生类似"A1|A3|A7"的东西。

查询然后仅指向contains条件的结果。

请注意,如果您要报告的商店ID范围是以其他方式构建的,则只需指向其范围即可,而不是使用我拥有的过滤器。

在此处查看样本表。这也显示了两个公式的合并示例,可以从一个公式中生成全部报告。

https://docs.google.com/spreadsheets/d/11uMa7CNcTXBnnpWGSIC_WvGSa-P2GTLQ2T7GvTgY4oM/edit?usp=sharing

让我们知道这是否对您有帮助。

enter image description here