【问题标题】:Google Sheets formula explanation谷歌表格公式解释
【发布时间】:2020-09-09 09:05:39
【问题描述】:

我在 StackOverflow 上问了一个问题:Google Sheets: Join two tables together

我必须弄清楚如何动态地将两个表连接在一起。我从@MattKing 那里得到了关于如何解决我的问题的答案,他的解决方案适用于我创建的示例数据。但是,他的解决方案将两个表合并到一个 query() 中,我无法理解它是如何工作的,所以我需要帮助理解该公式。除非我了解它是如何工作的,否则我无法在我的实际工作表上实现它。

实现公式的样本表:https://docs.google.com/spreadsheets/d/1nKQXHwVO8KjsOy5qvjzh-s-YYRUYlAoH-3aXYbwcKsA/edit?usp=sharing

我需要理解的公式:=ARRAYFORMULA(QUERY({A3:G;{H4:I,IFERROR(ROW(H4:H)/{0,0,0,0}),J4:J}},"select Col1,Col2,SUM(Col3),SUM(Col4),SUM(Col5),SUM(Col6),SUM(Col7) where Col1 is not null group by Col1,Col2 label SUM(Col3)'Impressions',SUM(Col4)'Clicks',SUM(Col5)'Cost',SUM(Col6)'Leads',SUM(Col7)'Offline Leads'"))

我对这个公式的一部分感到困惑:QUERY({A3:G;{H4:I,IFERROR(ROW(H4:H)/{0,0,0,0}),J4:J}}

非常感谢您帮助我们找出这个很棒的公式!

【问题讨论】:

  • 为什么不在原帖上问他?
  • 我做了,他还没有回复,所以我希望得到更多帮助

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


【解决方案1】:

如果你运行这个公式,你可以看到发生了什么:

=ARRAYFORMULA({A3:G10; {H4:I10, IFERROR(ROW(H4:H10)/{0,0,0,0}), J4:J10}})

但基本上它是一种用零除法来偏移列的方法,这将输出#DIV 错误,因为任何除以 0 的东西在谷歌表格中都被认为是不合逻辑的。所以……

=ROW(H4:H)

将为您提供从 4 开始的每行的行号,例如:

4
5
6
...

然后除以 4 列 / 4 个零,得到数组:

#DIV | #DIV | #DIV | #DIV
#DIV | #DIV | #DIV | #DIV
#DIV | #DIV | #DIV | #DIV
...

包裹在IFERROR 中,所以所有#DIV 错误都无效,这意味着您剩下4 个空列

所以我们有 H4:I 中的任何内容,然后我们继续使用 4 个空列,然后最后一列是 J4:J,所以这样你总共有 7 个列

然后将这 7 列再次放入数组中,其中包含 A3:G 列中的任何内容,例如:

A:A   B:B   C:C   D:D   E:E   F:F   G:G
H:H   I:I   #DIV  #DIV  #DIV  #DIV  J:J

之所以需要像上面介绍的那样是因为QUERY 在使用summinmaxavg 等操作时需要聚合列

【讨论】:

  • 感谢您的深入解释,我的报告得到了公式:)
猜你喜欢
  • 2021-05-03
  • 2021-12-03
  • 1970-01-01
  • 2021-08-05
  • 2019-02-17
  • 2019-07-29
  • 2020-07-02
相关资源
最近更新 更多