Query Google Sheets函数中同一字符串中的引号和撇号引号、字符串、函数、Query

2023-09-04 01:32:23 作者:是wǒ把太阳磨圆滴

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

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

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

=QUERY(importrange("KEY", "DATA!A1:Z1000"), "select Col24 where (Col1 = '"&A2&"')")
如何在 Microsoft Excel 中提取子字符串

它将产生错误。

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

推荐答案

简明答案

若要转义单引号/撇号,请将双引号(")之间包含撇号的字符串括起来。 若要转义双引号,请应用双引号替换,首先删除双引号,然后再次添加。

说明

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

单引号/撇号示例

下表表示包含

的电子表格范围 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