谷歌表格公式解释

问题描述 投票:0回答:1

我在StackOverflow上问了一个问题。Google Sheets: 将两张表连接在一起

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

实施该公式的示例表。https:/docs.google.comspreadsheetsd1nKQXHwVO8KjsOy5qvjzh-s-YYRUYlAoH-3aXYbwcKsAedit?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个回答
2
投票

你可以看到是怎么回事,如果你运行这个公式。

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

但基本上它是一种偏移列的方法,用0来划分,这将输出#DIV错误,因为任何被0划分的东西在google sheets中被认为是不合逻辑的,所以... ...

=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 等操作时,需要对列进行汇总。sum, min, max, avg

© www.soinside.com 2019 - 2024. All rights reserved.