![按匹配的行合并多个工作表](https://linux22.com/image/1573496/%E6%8C%89%E5%8C%B9%E9%85%8D%E7%9A%84%E8%A1%8C%E5%90%88%E5%B9%B6%E5%A4%9A%E4%B8%AA%E5%B7%A5%E4%BD%9C%E8%A1%A8.png)
我有四张来自世界银行的工作表,其中包含 217、198、136、204 个国家的 GDP、人均护士比例、人均医生比例和医疗费用信息。以下是部分数据的截图:
是否可以通过仅保留具有所有四项指标数据的国家(在本例中为 136 个国家)来合并工作表。
答案1
我假设所有四张表都是相同的,并且在 Range 中都有数据A2:B13
。
怎么运行的:
要复制国家名称,请在
A1
主表的单元格中输入此公式并向下填写。=INDEX(Sheet1!A1:A1,1,1)
在相应的行中创建适当的标题。
- 将此公式写入主表的单元格
B2
并向下填充。
=IFERROR(VLOOKUP(A2,Sheet1!A2:B13,2,FALSE),"")
单元格中的公式C2
:
=IFERROR(VLOOKUP(A2,Sheet2!A2:B13,2,FALSE),"")
注意:
- 对来自不同工作表的其他数据使用相同的公式。
- 工作表名称是可编辑的。
- 根据需要调整公式中的单元格引用。
編輯:
为了以更快的方式完成同样的工作,我想建议一些方便的 VBA 技巧。
- 创建新工作表并命名
MASTER
。 - 按下
ALT+F11
打开 VB 编辑器。 - 从
VIEW
菜单中查找并单击Immediate Window
。
按照显示的顺序写入以下 VBA 代码行。
Sheets("Sheet1").Range("A1:A13").Copy Destination:=Sheets("Master").Range("A1")
笔记,
上述代码将复制国家名称Col A
。
Sheets("Sheet1").Range("B1:B13").Copy Destination:=Sheets("Master").Range("B1")
Sheets("Sheet2").Range("B1:B13").Copy Destination:=Sheets("Master").Range("C1")
Sheets("Sheet3").Range("B1:B13").Copy Destination:=Sheets("Master").Range("D1")
笔记,
- 上述代码将从中复制列
GDP, Physician & Hexp
并创建一个类似表格的结构,如屏幕截图所示。Source Sheets
Master
注意:
工作表名称是可编辑的。
根据需要调整代码中的单元格引用。