5

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

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

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

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

它会产生错误。

我的问题是:当我使用的字符串包含任何种类的引号和撇号时,有什么方法可以避免查询出错?

4

2 回答 2

9

简短的回答

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

解释

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

单引号/撇号的示例

下表表示包含的电子表格范围

  • A 列:数据源
  • 单元格 B1:要在条件表达式中使用的数据值
  • 单元格 C1:以下公式=QUERY(A:A,"SELECT * WHERE A = """&B1&""" ")
+---+---------+-----+------+
| | 一个 | 乙| C |
+---+---------+-----+------+
| 1 | 我是 | 我是 | 我是 |
| 2 | 你是 | | |
| 3 | 它是 | | |
| 4 | 我是 | | |
| 5 | 你是 | | |
| 6 | 是| | |
+---+---------+-----+------+

单引号/撇号和双引号的示例

=替换(
   询问(
     替代(A:A,"""","''"),
     "SELECT * WHERE Col1 = """&SUBSTITUTE(B1,"""","''")&""""
    ),
    "''",""""
 )

请注意,它不是使用字母 A 作为数据源列的标识符,而是使用 Col1。

参考

https://developers.google.com/chart/interactive/docs/querylanguage

于 2016-03-12T15:59:18.150 回答
-1
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:

以下是每种文字类型的格式:

字符串文字应该用单引号或双引号括起来。例子:"fourteen", 'hello world', "It's raining".

如上面的参考资料所述。

于 2020-09-29T21:37:35.153 回答