如何在 google sheet 中附加 3 个列数不同的表?

How to append 3 tables with different number of columns in google sheet?

大家好,

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

Table 1: Col A to Col D

Table 2: Col F to Col H

Table 3: Col J to Col L

我想将这 3 个 table 合并在一起以减少我的 google sheet 中的列数。下面的截图是我在合并前如何处理这 3 tables。

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

但是,当我有 10 table 或更多时,这种方法非常乏味。是否有任何其他更简单的方法或技巧可以使用,以便我可以获得与第 3 个屏幕截图中所示相同的预期输出?

这是我的 sheet:

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

任何帮助将不胜感激!

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

我在你 Google Sheet 中添加了一个名为“Solution”的新选项卡,其中包含此公式

=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. Unpivot 每个 table =IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3&"~"&Sheet1!A4:A6&"~"&Sheet1!B4:D6),"~")),"")
  2. 将所有table合并为一个table:=ARRAYFORMULA({__Unpivot1__; __Unpivot2__, __Unpivot3__})
  3. Pivot 以上步骤2中的数据:=Query(__Step2__, "SELECT Col2, SUM(Col3) GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")
  4. 在查询中添加WHERE Col2 is not nullremove any possible blank rows