【问题标题】:Quotation marks and apostrophes in the same string in QUERY Google Sheets functionQUERY Google Sheets函数中同一字符串中的引号和撇号
【发布时间】:2016-03-01 16:00:18
【问题描述】:
我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
需要将以下公式代入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
它会产生错误。
我的问题是:当我使用的字符串包含各种引号和撇号时,有什么方法可以避免查询出错?
【问题讨论】:
标签:
google-sheets
formulas
google-query-language
【解决方案1】:
简答
- 要转义单引号/撇号,请包含在双引号之间包含撇号的字符串 (
")。
- 要转义双引号,请应用双引号,首先删除双引号,然后再添加它们。
说明
Google 表格 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
【解决方案2】:
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:
以下是每种文字类型的格式:
字符串字面量应该用单引号或双引号括起来。示例:"fourteen"、'hello world'、"It's raining"。
如上面的参考资料中所述。