我无法在Google Spreadsheets中找出一个相当简单的QUERY语句。我试图使用单元格引用而不是静态值,我遇到了麻烦。下面是我使用的代码,但我一直得到一个"错误:公式解析错误。"
=QUERY(Responses!B1:I, "Select B where G contains"& $B1 &)
我确定这是一个简单的错误,但有人可以告诉我如何编写上面的内容,以便QUERY从B中提取数据,其中G包含单元格B1中的值(单元格引用)?
答案 0 :(得分:46)
从Web应用程序复制:
=QUERY(Responses!B1:I, "Select B where G contains '"&$B1&"'")
答案 1 :(得分:19)
我这里只有一个解决方法。
在这种特殊情况下,我会使用FILTER
函数而不是QUERY
:
=FILTER(Responses!B:B,Responses!G:G=B1)
假设您的数据位于“回复”表格中,但您的条件(单元格引用)位于实际工作表的B1单元格中。
希望它有所帮助。
更新:
在搜索原始问题之后:您的公式问题肯定是第二个&
符号,它假设您希望将更多内容连接到您的WHERE
语句。尝试删除它。如果它仍然不起作用,那么试试这个:
=QUERY(Responses!B1:I, "Select B where G matches '^.\*($" & B1 & ").\*$'")
- 我没有尝试过,但它在另一篇文章中提供了帮助:Query with range of values for WHERE clause?
答案 2 :(得分:5)
我知道这是一个老话题,但我和OP有同样的问题并找到答案:
你几乎就在那里,你可以在查询语言中包含单元格引用的方式是将整个事物包装在语音标记中。因为整个查询是用语音标记写的,所以你需要在'之间交替。和"如下图所示。
你需要的是:
=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' ")
如果您想引用多个单元格,可以添加更多这样的单元格
=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' and G contains '"& B2 &"' ")
以上内容将根据B1和B2的内容进一步过滤您的结果。
答案 3 :(得分:2)
上述答案都不适合我。这个做了:
= QUERY(复制!A1:AP,“选择AP,E,F,AO,其中AP =”& E1&“”,1)
答案 4 :(得分:2)
我发现用&符号包裹的单引号>双引号确实有效。所以,对我来说,看起来像这样:
=QUERY('Youth Conference Registration'!C:Y,"select C where Y = '"&A1&"'", 0)
答案 5 :(得分:1)
旧线程但我在下面的答案之旅中发现了这一点,并认为其他人也可能需要它。
=IFERROR(ArrayFormula(query(index(Sheet3!A:C&""),"select* Where Col1="""&B1&""" ")), ARRAYFORMULA({"* *","no cells","match"}));
这是一个简单构建的文本过滤器,来自3列数据集(A,B和C),位于" sheet3"进入当前工作表并调用与当前工作表中的单元格的比较以在Col1(A)
内进行过滤。
如果过滤器没有结果#N/A
//ARRAYFORMULA({"* *","no cells","match"}))
错误
答案 6 :(得分:1)
这是工作代码:
=QUERY(Sheet1!$A1:$B581, "select B where A = '"&A1&"'")
在这种情况下,我需要使间隔保持固定,并在拖动时更改参考值。
答案 7 :(得分:0)
要同时使用文字和数字,请执行以下操作:
完全匹配:
=query(D:E,"select * where D like '"&C1&"'", 0)
将搜索字符串转换为小写:
=query(D:E,"select * where D like lower('"&C1&"')", 0)
转换为小写并包含搜索字符串的一部分:
=query(D:E,"select * where D like lower('%"&C1&"%')", 0)
A1 =查询/公式
黄色/ A:B =结果区域
绿色/ C1 =搜索区域
蓝色/ D:E =数据区域
如果输入的是文本而不是数字,则出现错误;移动数据并删除(现在为空)列。然后将数据移回。