【发布时间】:2019-04-20 13:31:52
【问题描述】:
在谷歌表格中使用查询功能时是否可以有动态数据范围?
我想做的是,使用保管箱,更改查询功能中使用的数据范围。
例如,我在 4 张不同的工作表中有 4 张表格。在我的主工作表上,我想使用我的保管箱,对我选择的表执行查询。 有必要用脚本来做吗?
【问题讨论】:
-
我说的是源范围
标签: google-sheets google-sheets-formula
在谷歌表格中使用查询功能时是否可以有动态数据范围?
我想做的是,使用保管箱,更改查询功能中使用的数据范围。
例如,我在 4 张不同的工作表中有 4 张表格。在我的主工作表上,我想使用我的保管箱,对我选择的表执行查询。 有必要用脚本来做吗?
【问题讨论】:
标签: google-sheets google-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 函数转换为我从here 收到的一封信。
然后您的带有查询的单元格使用数据集下拉 (B2) 的值和查询字符串 (A10) 的值,如下所示:
=QUERY(INDIRECT(B2),A10,1)
【讨论】: