为什么我的 gsheet select 仅在查询函数中指定为嵌入字符串时才起作用,而在单元格中作为值引用时则不起作用?

问题描述 投票:0回答:1

文档说查询函数的 select 参数可以是带引号的字符串,也可以是包含该字符串的单元格引用。 但是,当在每个场景中使用相同的选择字符串时,我会得到不同的结果。

我想要实现的结果是有一个地方来更新 select 语句。 我在一个大型工作簿的很多地方使用这个查询(以及几个类似的查询),并且希望在数据表的几何形状发生变化时有一个地方可以对查询进行更改。

参考gsheet: https://docs.google.com/spreadsheets/d/1vwZYlc4vPwP7R7m34oWQEPREeoxWWxctx_Y5JeI4zQU/edit?usp=sharing

数据:

A B C
约翰 椅子1 椅子3
比尔 椅子2 椅子4
椅子5 椅子6

查询函数使用偏移量来确定 where 子句中其上方单元格的值,以便查找人名:

A
椅子2
查询

首先,我在 gsheet 的单元格 E8 中创建了以下 gsheet 查询函数,该函数按预期工作并返回 Bill 值。

=query(A6:C8,"选择 A,其中 B='"&OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),-1,0)&"' 或 C='"&OFFSET(INDIRECT(ADDRESS) (ROW(), COLUMN())),-1,0)&"' 限制 1",0)

接下来,我将查询的选择部分放入单元格 A14 中,然后在单元格 E12 中显示的查询公式中引用它,结果是 N/A(没有返回值):

=查询(A6:C8,A14,0)

A14 中的值:选择 A,其中 B='"&OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),-1,0)&"' 或 C='"&OFFSET(INDIRECT(ADDRESS(ROW()) , COLUMN())),-1,0)&"' 极限 1

我预计这两种情况下的结果是相同的。

google-sheets google-sheets-formula
1个回答
0
投票

这是您可以测试的一种方法:

  • 使用现有的语句字符串创建一个命名函数(菜单选项数据>命名函数),然后直接调用它进行迭代(如屏幕截图中

公式定义:

="Select A where B='"&OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),-1,0)&"' or C='"&OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),-1,0)&"' Limit 1"

公式

=query(A6:C8, Σ())

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.