google-sheets - 如何在谷歌表格中附加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 表格中添加了一个名为“解决方案”的新标签,其中包含此公式
=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' ")
脚步:
- 取消透视每个表
=IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3&"~"&Sheet1!A4:A6&"~"&Sheet1!B4:D6),"~")),"")
- 将所有表合并为一张表:
=ARRAYFORMULA({__Unpivot1__; __Unpivot2__, __Unpivot3__})
- 在 Step2 中透视以上数据:
=Query(__Step2__, "SELECT Col2, SUM(Col3) GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")
- 添加
WHERE Col2 is not null
查询以删除任何可能的空白行
推荐阅读
- flutter - Flutter - DropdownButton onChanged 不调用函数
- python - 从 2 列创建一个包含列表的新列 - python
- laravel - 在扩展控制器中调用 Auth:user() Laravel
- javascript - 自定义 fs.readfile 回调函数中的错误以返回 SUCCESS 或 ERROR
- package - if (type == "package") package <- topic 中的错误:参数长度为零
- javascript - PWA 可以自动添加到 macOS 应用程序 Dock 中,还是在登录时自动启动?
- vue.js - Vue.js 在用户刷新页面时显示应由 v-if 标记隐藏的内容
- sql - 连接并转换单独存储为日期和时间的数据,并与 SQL Server 中类似存储的另一条数据进行比较
- cypress - Cypress - 返回包含多个特定字符串的元素
- javascript - 为什么这不将 console.log(score) 打印到控制台?