我想知道如何处理这样的查询。我们假设我在电子表格的单元格A2中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
并需要将以下公式放入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
会产生错误。
我的问题是:当我使用的字符串包含任何各种引号和撇号时,有没有办法避免绊倒查询?
答案 0 :(得分:3)
"
)之间包含包含撇号的字符串。 Google表格QUERY内置函数通过在单引号之前在内部添加\
来自动转义某些字符,但是当要用作条件源的单元格值包含双引号时,它不起作用。作为一种解决方法,建议使用双替换。
下表表示包含
的电子表格范围=QUERY(A:A,"SELECT * WHERE A = """&B1&""" ")
+---+---------+-----+-----+ | | A | B | C | +---+---------+-----+-----+ | 1 | I'm | I'm | I'm | | 2 | You're | | | | 3 | It's | | | | 4 | I am | | | | 5 | You are | | | | 6 | It is | | | +---+---------+-----+-----+
=SUBSTITUTE( QUERY( SUBSTITUTE(A:A,"""","''"), "SELECT * WHERE Col1 = """&SUBSTITUTE(B1,"""","''")&"""" ), "''","""" )
请注意,不是使用字母A作为数据源列的标识符,而是使用Col1。
https://developers.google.com/chart/interactive/docs/querylanguage
答案 1 :(得分:-1)
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:
以下是每种文字类型的格式:
字符串文字应使用单引号或双引号引起来。示例:"fourteen"
,'hello world'
,"It's raining"
。
如上面参考中所述。