Excel数据透视表(Pivot Table):如何合并两个表格的数据?
Excel数据透视表(Pivot Table):如何合并两个表格的数据?
嘿,我来帮你搞定这个需求!你现在有两个关联的表格,想要做出ID和Col2只显示一次、对应Col1多行排列的透视表效果对吧?先把你的原始数据和目标效果理清楚,再一步步操作:
你的原始数据
第一个表(存有多条关联数据):
| ID (FK) | Col1 |
|---|---|
| 1 | A |
| 1 | B |
| 2 | C |
第二个表(存唯一ID对应的数据):
| ID (PK) | Col2 |
|---|---|
| 1 | AA |
| 2 | BB |
目标效果
| ID | Col2 | Col1 |
|---|---|---|
| [-] 1 | AA | A |
| B | ||
| 2 | BB | C |
操作步骤(两种方法任选)
方法一:用Power Query合并数据(高效推荐)
咱们先把两个表合并成一个统一的数据源,透视表才能正常工作:
- 选中第一个表的任意单元格,点击顶部「数据」选项卡 → 「从表格/区域」,把表导入Power Query编辑器
- 用同样的方法把第二个表也导入Power Query
- 回到第一个表的编辑器,点击「合并查询」→ 「合并查询作为新查询」
- 合并规则选:第一个表的「ID (FK)」匹配第二个表的「ID (PK)」,连接类型选「左外部」(保证第一个表的所有数据都保留)
- 展开合并后的列,只勾选「Col2」,然后点击「关闭并上载」,就能得到合并后的表格:
| ID (FK) | Col1 | Col2 |
|---|---|---|
| 1 | A | AA |
| 1 | B | AA |
| 2 | C | BB |
接下来做透视表:
- 选中合并后的表格,点击「插入」→ 「数据透视表」,放在新工作表里
- 把字段拖到对应区域:
- 「ID (FK)」拖到「行」区域
- 「Col2」拖到「行」区域(放在「ID (FK)」的下方)
- 「Col1」拖到「行」区域(放在「Col2」的下方)
- 调整布局:点击「设计」选项卡 → 「报表布局」→ 「以大纲形式显示」,再选择「不重复项目标签」,这样ID和Col2只会在第一次出现时显示,后续行自动空白
- 最后把「ID (FK)」重命名为「ID」,透视表自带的折叠/展开按钮(就是你要的[-])也会自动显示,点击就能收起/展开对应ID的Col1数据
方法二:用VLOOKUP手动合并数据
如果不想用Power Query,用函数也能搞定:
- 在第一个表的空白列(比如C列)表头输入「Col2」,然后在C2单元格输入公式:
=VLOOKUP(A2, 表2!$A:$B, 2, FALSE)
下拉填充后,就能得到和上面一样的合并表格 - 接下来按照方法一的透视表步骤操作即可
备注:内容来源于stack exchange,提问作者dom.atom




