首页 > 解决方案 > 如何在谷歌表格中附加3个不同列数的表格?

问题描述

在此处输入图像描述

大家好,

我有 3 个具有不同列数的表,其中一些列实际上在这 3 个表中重复(如上面的屏幕截图所示)。

Table 1: Col A to Col D

Table 2: Col F to Col H

Table 3: Col J to Col L

我想将这 3 个表合并在一起,以减少我的谷歌表中的列数。下面的截图是我在合并之前如何处理这 3 个表。

在此处输入图像描述

QUERY用来为每个表创建额外的列,以便列数和位置在 3 个表之间对齐。之后,我QUERY再次使用附加 3 个已处理的表,如下面的屏幕截图所示:

在此处输入图像描述

但是,当我有 10 个或更多表时,这种方法非常繁琐。是否有任何其他更简单的方法或技巧可以使用,以便我可以实现与第三个屏幕截图所示相同的预期输出?

这是我的工作表:

https://docs.google.com/spreadsheets/d/1H1gJAhp1RVax2fy8D-uEtFxdjb-zAHutkPFv5WZT_TY/edit#gid=0

任何帮助将不胜感激!

标签: google-sheetsappendformula

解决方案


您需要一个非常复杂的公式来获得所需的输出,该输出是多个公式的组合

我在您的 Google 表格中添加了一个名为“解决方案”的新标签,其中包含此公式

=QUERY(ARRAYFORMULA({
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3&"~"&Sheet1!A4:A&"~"&Sheet1!B4:D),"~")),"");
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!G3:H3&"~"&Sheet1!F4:F&"~"&Sheet1!G4:H),"~")),"");
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!K3:L3&"~"&Sheet1!J4:J&"~"&Sheet1!K4:L),"~")),"")}), 
"SELECT Col2, SUM(Col3) WHERE Col2 is not null GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")

脚步:

  1. 取消透视每个表 =IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3&"~"&Sheet1!A4:A6&"~"&Sheet1!B4:D6),"~")),"")
  2. 将所有表合并为一张表:=ARRAYFORMULA({__Unpivot1__; __Unpivot2__, __Unpivot3__})
  3. 在 Step2 中透视以上数据:=Query(__Step2__, "SELECT Col2, SUM(Col3) GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")
  4. 添加WHERE Col2 is not null查询以删除任何可能的空白行

推荐阅读