【问题标题】:Google Sheets query doesn't display all values谷歌表格查询不显示所有值
【发布时间】:2017-05-01 15:27:25
【问题描述】:

我有一个Google Sheet,其查询公式如下:

=QUERY('Contact Changes'!B1:T,"SELECT C,D,E,F,G,H,I,J,K,L,M,N,O,R,S WHERE T='RMT'")

当按RMT 过滤列T 时,源工作表显示以下结果。因此,Query 公式应该产生相同的结果。

但是,当字段值是文本值时,L 列不显示字段值:

如果您查看J126(城市列),您可以看到asdf 的值正确显示在结果H2 中。但是,L126 中的相同值不会显示在结果L2 中。我可以在此列中显示值的唯一方法是输入数字。

我有:

  • 检查列数据格式
  • 尝试删除并重新添加Query 中的列
  • 更改列顺序
  • 在不同的列中输入相同的值(它们会显示在结果中)
  • 在同一列中手动重新输入值(它们不会显示在结果中)

我是否遗漏了一些明显的东西?我还能尝试什么?

【问题讨论】:

    标签: google-sheets google-sheets-query


    【解决方案1】:

    Google 表格query 每列只接受一种数据类型,它会自动检测:

    • 如果 Col 包含更多taxt 值:返回文本
    • 如果 Col 包含更多数字:返回数字。

    我用两种解决方法解决了同样的问题:

    • 使用filter 或将filterquery 结合使用
    • 制作额外的列并将所有值转换为文本,方法是使用任何字符,然后将其删除。

    https://support.google.com/docs/answer/3093343?hl=en

    在单个列中混合数据类型的情况下,大多数数据类型 为查询目的确定列的数据类型。少数民族 数据类型被视为空值。

    【讨论】:

    • 了解 Query 自动设置数据类型并且只接受一种是很有帮助的。但是,过滤器或添加和删除列似乎是很多额外的工作。为什么不将源列值设置为plain text
    • 你可以尝试在谷歌论坛上问这个Q:productforums.google.com/forum/#!topic/docs/…
    • 我正在尝试将filterquery 结合起来...你能举个例子吗?我应该使用 ArrayFormula 吗?附言我正在通过importRange 在其他 GSheet 中这样做。看起来没有解决方法:(
    • 我也有类似的问题,但似乎并没有以同样的方式解决。当查询结果少于三行时,只显示带数字的列,不显示带文本的列。有人知道为什么会这样吗?
    【解决方案2】:

    除了 Max 的贡献之外,您还可以对数据进行预处理,以便将其全部转换为文本,然后围绕此输出包装查询。类似的东西

    =QUERY(ArrayFormula(TO_TEXT('Contact Changes'!B1:T)),"SELECT Col3, Col4,    Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12, Col13, Col14, Col17, Col18 WHERE Col19='RMT'")
    

    【讨论】:

      【解决方案3】:

      我过去也遇到过同样的问题,今天我尝试将整个列的格式设置为“纯文本”,并且效果很好。

      没有问题了,每个值都会显示出来。

      【讨论】:

      • 请注意,必须定期更新该格式,因为数据库中的新条目通常会丢失它。
      【解决方案4】:

      一个将过滤器与查询结合使用的示例,供那些可能觉得有帮助的人使用:

      =QUERY(FILTER('Original Statement'!A:Z, 'Original Statement'!A:A = "Trades"), "select *")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多