【问题标题】:Why does Query drop values with dashes when using ImportRange in Google Sheets?为什么在 Google 表格中使用 ImportRange 时,Query 会删除带有破折号的值?
【发布时间】:2020-01-15 00:47:10
【问题描述】:

我在 Google 表格中使用 IMPORTRANGE() 从另一个电子表格中获取一些数据。身份验证已完成,看起来一切正常。到目前为止它工作正常,我不知道发生了什么。

当我只使用 IMPORTRANGE 时,输出与我预期的一样。我有一个“绘图编号”列表,主要是数字,但可以添加 -a 或 -1c。 (例如:1234、1234-a、1234-1a)。这些数字有一些状态信息,只是文本。导入后,我看到了我期望的正确列表(我省略了导入范围内的其他一些列,但内容并不重要):

+---------+--------+
|  Col1   |  Col2  |
+---------+--------+
| Status1 | 3701-L |
| Status2 | 3302-G |
| Status1 | 3769   |
| Status2 | 3156   |
| Status1 | 3515   |
| Status2 | 3301-C |
+---------+--------+

但是,当我对来自 IMPORTRANGE() 的数据集使用 QUERY() 函数时,其中一些“绘图编号”消失了,同时保持状态值(和其他列数据值)正常(再次,一些列被遗漏了,但我确实需要它们,它们工作得很好):

=QUERY(IMPORTRANGE("url"; "Data!A4:Y"); "SELECT Col2, Col1")

输出:

+------+---------+
| Col1 |  Col2   |
+------+---------+
|      | Status1 |
|      | Status2 |
| 3769 | Status1 |
| 3156 | Status2 |
| 3515 | Status1 |
|      | Status2 |
+------+---------+

如您所见,非数字值为空(或 null?),但正确的状态仍然存在(以及我遗漏的其他数据)。我无法以任何方式控制源数据,但是我能做些什么来让它工作吗?我想这与 QUERY 处理“多种数据类型”的方式有关,但在这种情况下,我希望它被视为文本..

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas google-sheets-query importrange


    【解决方案1】:

    这是查询公式的自动转换/假设。使用:

    =ARRAYFORMULA(QUERY(TO_TEXT(IMPORTRANGE("url"; "Data!A4:Y")); "SELECT Col2,Col1"))
    

    【讨论】:

      【解决方案2】:

      您可以添加(“”)和数组公式:

      =ARRAYFORMULA(QUERY(IMPORTRANGE("url"; "Data!A4:Y") &""; "SELECT Col2, Col1"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        相关资源
        最近更新 更多