【发布时间】:2021-04-24 13:07:10
【问题描述】:
我已经编写了这些查询,但我想我可能在 Google 表格中发现了一个错误:
=IFERROR(QUERY(QUERY({Sheet1!$A$2:$E},"select Col2, sum(Col4) where Col5 is null group by Col2 label sum(Col4) ''"), "Select Col1"))
另一个是相同的,不同的列:
=IFERROR(QUERY(QUERY({Sheet1!$A$2:$E},"select sum(Col4) where Col5 is null group by Col2 label sum(Col4) ''"), "Select Col1"))
删除 E 列中的 X 会显示 F:G 中的查询数据,但删除 X 会保留其中一个值。这是live example。
如果我移动列或删除 G 列或删除标签 hack,该错误就会消失。
不幸的是,虽然这个例子看起来很做作,但它来自一个更复杂的电子表格,我无法轻易修改,所以我坚持使用列/行排列。
假设这是 Google 表格团队应该修复的错误(可能是由 label sum(Col4) '' hack 引起的),是否有其他方法可以做到这一点?
- 给定一个包含多个产品、数量和发票状态的表
- 获取尚未开票的行(这可能是 0,因为它们都已开票,也可能是 0,因为没有产品,因此
IFERROR调用和label sum(Col4) ''hack)- 将产品数组(来自过滤的行)放在特定的单元格中(因此是第二个查询调用)
- 对数量做同样的事情
- 获取尚未开票的行(这可能是 0,因为它们都已开票,也可能是 0,因为没有产品,因此
根据 MattKing 和 player0 的建议进行编辑
这是未开具发票时的预期状态(请参阅live example)
但是,当我为所有项目开具发票时,会发生这种情况(有时,因为我注意到错误来来去去):
请注意,单元格 F7 中的值是 QUERY 剩余的文字“p3”。这不应该存在,这让我认为这是一个 Google 表格错误
【问题讨论】:
-
您可能需要使用查询函数的第三个 [可选] 参数。如果不这样做,该函数将“猜测”哪些行是“标题”行并且应该被排除在外,哪些是真正的值行,应该包括在内。由于您有一个嵌套查询,因此您的目标并不完全清楚,但请尝试对 query() 的第三个参数使用 0。
-
请在您的示例电子表格中显示您手动输入的示例数据的预期结果。
-
@MattKing 我在两者中都将其更改为 -1(0 会在下面添加一行),这似乎可以解决它????
-
@MattKing 我试过你的建议来解决我的尝试,但不是你的 ????查看 OP 中的更新
-
抱歉,我无法从截图中看到发生了什么。在这里看到它的帮助。 docs.google.com/spreadsheets/d/…
标签: arrays google-sheets sum google-sheets-formula google-query-language