11

我有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'")

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

在此处输入图像描述

但是,当它们是文本值时,列L不显示字段值: 在此处输入图像描述

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

我有:

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

我错过了一些明显的东西吗?我还能尝试什么?

4

4 回答 4

12

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

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

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

  • 使用filterfilter结合query
  • 通过添加任何字符来制作额外的列并将所有值转换为文本,然后将其删除。

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

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

于 2017-05-01T16:48:12.860 回答
12

除了 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'")
于 2017-05-02T06:38:28.530 回答
5

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

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

于 2017-09-04T16:44:12.240 回答
0

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

=QUERY(FILTER('Original Statement'!A:Z, 'Original Statement'!A:A = "Trades"), "select *")
于 2019-11-17T20:21:24.547 回答