QUERY Google表格功能中相同字符串中的引号和撇号

时间:2016-03-01 16:00:18

标签: google-sheets formulas google-query-language

我想知道如何处理这样的查询。我们假设我在电子表格的单元格A2中包含以下文本:

Case Bakers' Flats 12" White Flour Tortillas 10/12ct

并需要将以下公式放入B2:

=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")

会产生错误。

我的问题是:当我使用的字符串包含任何各种引号和撇号时,有没有办法避免绊倒查询?

2 个答案:

答案 0 :(得分:3)

简短回答

  • 要转义单引号/撇号,请在双引号(")之间包含包含撇号的字符串。
  • 要转义双引号,请应用双重替换,先删除双引号,然后再重新添加。

解释

Google表格QUERY内置函数通过在单引号之前在内部添加\来自动转义某些字符,但是当要用作条件源的单元格值包含双引号时,它不起作用。作为一种解决方法,建议使用双替换。

单引号/撇号的示例

下表表示包含

的电子表格范围
  • A栏:数据来源
  • 单元格B1:标准表达式中使用的数据值
  • 单元格C1:以下公式=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"

如上面参考中所述。