当前位置: 首页 > 知识库问答 >
问题:

谷歌查询奇怪的行为

竺绍辉
2023-03-14

我已经在这个问题上绞尽脑汁好几天了,我正在使用google sheets表单中的查询功能来提取数据的子集,但是查询是有效的,如果我在特定的几个字段中添加一个值,查询结果都是不可靠的(技术术语)。公式如下:

=QUERY(A3: X,"SELECT F, P WHERE D='G'and P is not NULL ORDER BY P")

但是,如果我在P列(这些屏幕截图中的第5列)中添加另一个值,我会得到一些奇怪的行为:

数据本身是零星的,因为并非所有字段都将被填充,所以我的where子句只提取not空值。这些值也是数字和文本的混合,如屏幕截图所示。有些数据字段(在相同的列中)是数字,有些是文本-也许我需要使用更好的WHERE子句来选择字段?

在本文档中,我在几张纸上使用了=query函数和=filter函数的几个变体,这是唯一一个引起问题的。我已经创建了几份数据表副本,我用一份新的数据表重新开始,但继续遇到这个问题,我不知道为什么会发生这种情况。

TIA需要任何帮助吗

共有3个答案

鲜于玮
2023-03-14

正如我所怀疑的,因为数据集是一种混合数据类型,我需要更深入地挖掘方程的复杂性。我最终使用混合数据列上的TO_TEXT重写函数,将非文本字段转换为文本,这样WHERE子句就可以编写,只需检查非空文本字段,并且更简洁地构建我的数据集。

=ArrayFormula(查询({A3:F,TO_TEXT(P3:P)},“选择Col6、Col7,其中Col4='G'和Col7按Col7的顺序不为空”)

感谢两位@Douleunary

华善
2023-03-14

QUERY函数不能很好地处理包含混合数据类型的列。QUERY将自动确定列类型并忽略异常。因此,如果您有一个主要包含数字的列,QUERY将忽略几个文本项。

严繁
2023-03-14

query()函数只支持每列一种数据类型。列的类型由列中的大多数值决定。

您的数据似乎在每列中将数字与文本字符串混合在一起。如果列中的大多数值是数字,则文本字符串将以空值返回。如果列中的大多数值是文本字符串,则这些数字将以空值返回。

一种解决方法是将列格式化为format

另一种解决方法是使用filter()而不是query()

 类似资料:
  • 问题内容: 我想在加载了感谢的场景中找到VBox节点,但出现以下异常: 代码 : fxml文件: 我想知道: 1.为什么查找方法返回a 而不是a ? 2.我怎样才能得到另一种方式? 提前致谢 问题答案: SplitPane将所有项目放在单独的堆栈窗格中(用表示)。出于未知原因,FXMLLoader为它们分配与root子代相同的ID。您可以通过下一个实用程序方法获得所需的VBox: } 并以其他方式

  • 我调用下面的方法来计算一些值。我提供agencyID和月份的整数表示来执行计算。 等等...直到我到达12月(值12)。然而,当我到达5月(月值5)时,代码给出了一个运行时错误。然而,奇怪的是这个错误被抛出 在我的查询中,我没有在查询中的任何位置包含shift\u dayId,如下所示: 我恳请帮助我确定为什么givenMonth在值大于4时抛出运行时异常。 谢谢你 编辑 这是我要求的ShiftD

  • 问题内容: 如果我在SQL Server Express 2008上运行此查询: 它将日期存储为2011年4月11日 我该如何预防呢? 问题答案: 使用ISO-8601格式:(或)-无论您使用哪种SQL Server语言和区域设置,它始终有效。 SQL Server中的日期 不 以任何特定的面向字符串的格式存储-日期即是日期即是日期,无论您看到什么。 您会看到日期的字符串表示形式-但又一次:日期

  • 我想创建一个页面,用户在其中输入一个位置,我搜索这个位置,我搜索数据库中属于该位置的所有对象,我还搜索距离该位置一英里以内的所有对象。我已经创建了一个结构,该结构允许我查找自动完成的位置,并使用以下代码在地图上指出: 但是在这一点上,我如何运行一个查询来返回所需的对象并更新地图? 感谢所有

  • 我有以下代码来解析一个JSON文件: 要处理以下JSON文件: 如果我执行此代码,我将收到以下错误: 所以我开始一步一步地调试应用程序,看看part processing()中的哪个代码部分抛出了这个异常。令人惊讶的是,那里的所有代码都正常执行:没有抛出异常,也没有返回结果I except。 更让我惊讶的是,当我稍微改变第一种方法的代码时,它可以在不产生异常的情况下工作。 我不知道println方

  • 我想在一个场景中找到一个VBox节点加载感谢,但我得到以下异常: 守则: fxml文件: 我想知道: 1。为什么查找方法返回的是,而不是 2。如何以另一种方式获取? 提前谢谢