首页 > 解决方案 > Google Sheets 在查询功能中的动态数据范围

问题描述

在 Google 表格中使用查询功能时是否可以有动态数据范围?

我想做的是,使用保管箱更改查询功能中使用的数据范围。

例如,我在 4 张不同的表格中有 4 张桌子。在我的主工作表上,我想使用我的保管箱,对我选择的表执行查询。有必要用脚本来做吗?

标签: google-sheetsgoogle-sheets-formula

解决方案


您可以在不使用脚本的情况下进行动态查询。

查询字符串可以包含对其他单元格的引用。

表格中的示例。

此示例对 B2 中的数据集有一个下拉列表,对 B4 中的值集有一个下拉列表。数据范围包括另一个工作表中的一个。我正在使用命名范围来简化查找过程。每个数据集 n 被命名为 DataN。

您可以使用实际的查询函数调用将查询字符串从单元格中分离出来。诀窍是使用 INDIRECT、COLUMN 和 VALUE 构建查询字符串。我把它放在单元格 A10 中:

="select " & mid("ABCDEFGH",COLUMN(INDIRECT(B2)),1) & " where " & mid("ABCDEFGH",VALUE(COLUMN(INDIRECT(B2)))+1,1) & "=" & """" & B4 & """"

四个引号让我们在查询字符串中放置一个文字引号。'&' 字符进行字符串连接。使用 MID 将 COLUMN 函数转换为我从这里得到的一封信。

然后带有查询的单元格使用数据集下拉 (B2) 的值和查询字符串 (A10) 的值,如下所示:

=QUERY(INDIRECT(B2),A10,1)

推荐阅读