QUERY Google Sheets 函数中同一字符串中的引号和撇号
Quotation marks and apostrophes in the same string in QUERY Google Sheets function
我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
需要将以下公式代入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
它会产生错误。
我的问题是:当我使用的字符串包含任何种类的引号和撇号时,有什么方法可以避免使查询出错?
简答
- 要转义单引号/撇号,请在双引号之间包含一个撇号 (
"
)。
- 要转义双引号,应用双替换,首先删除双引号,然后再次添加。
说明
Google Sheets QUERY 内置函数通过在单引号前内部添加 \
自动转义某些字符,但当单元格值用作条件源时它不起作用包括双引号。作为解决方法,建议使用双重替换。
单引号/撇号示例
以下 table 表示包含
的电子表格范围
- 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
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:
以下是每种文字的格式:
字符串文字应括在单引号或双引号中。示例:"fourteen"
、'hello world'
、"It's raining"
。
如上参考所述。
我想知道如何处理这样的查询。假设我在电子表格的单元格 A2 中包含以下文本:
Case Bakers' Flats 12" White Flour Tortillas 10/12ct
需要将以下公式代入B2:
=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
它会产生错误。
我的问题是:当我使用的字符串包含任何种类的引号和撇号时,有什么方法可以避免使查询出错?
简答
- 要转义单引号/撇号,请在双引号之间包含一个撇号 (
"
)。 - 要转义双引号,应用双替换,首先删除双引号,然后再次添加。
说明
Google Sheets QUERY 内置函数通过在单引号前内部添加 \
自动转义某些字符,但当单元格值用作条件源时它不起作用包括双引号。作为解决方法,建议使用双重替换。
单引号/撇号示例
以下 table 表示包含
的电子表格范围- 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
=query('Book list'!A:F,"select B,C,D,E where F=""free"" and D="""&E1&"""") - because:
以下是每种文字的格式:
字符串文字应括在单引号或双引号中。示例:"fourteen"
、'hello world'
、"It's raining"
。
如上参考所述。