有没有办法使用VLOOKUP内连接两个不同的Excel电子表格?
在SQL中,我会这样做:
SELECT id, name
FROM Sheet1
INNER JOIN Sheet2
ON Sheet1.id = Sheet2.id;
Sheet 1中:
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
+----+------+
Sheet 2中:
+----+-----+
| ID | Age |
+----+-----+
| 1 | 20 |
| 2 | 21 |
| 4 | 22 |
+----+-----+
结果将是:
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
| 4 | D |
+----+------+
如何在VLOOKUP中执行此操作?或者除了VLOOKUP之外还有更好的方法吗?
感谢。
答案 0 :(得分:3)
首先让我们获取两个表中存在的值列表。如果您使用excel 2010或更高版本,则在Sheet 3 A2中输入以下公式:
=IFERROR(AGGREGATE(15,6,Sheet2!$A$1:$A$5000/(COUNTIF(Sheet1!$A$1:$A$5000,Sheet2!$A$1:$A$5000)>0),ROW(1:1)),"")
如果您使用的是2007或更早版本,请使用此数组公式:
=IFERROR(SMALL(IF(COUNTIF(Sheet1!$A$1:$A$5000,Sheet2!$A$1:$A$5000),Sheet2!$A$1:$A$5000),ROW(1:1)),"")
作为数组公式,复制并粘贴到公式栏中,然后按Ctrl-Shift-Enter而不是Enter或Tab离开编辑模式。
然后根据需要复制尽可能多的行。这将创建两个列表中的ID'd列表。这确实假设ID是数字而不是文本。
然后使用该列表我们使用vlookup:
=IF(A2<>"",VLOOKUP(A2,Sheet1!A:B,2,FALSE),"")
然后返回Sheet 1中匹配的值。
答案 1 :(得分:2)
您可以使用Microsoft Query获得此结果。
首先,选择Data > From other sources > From Microsoft Query
然后选择&#34; Excel文件*&#34;。
在&#34;选择工作簿&#34; Windows,您必须选择当前的工作簿。
接下来,在查询向导窗口中,选择sheet1 $和sheet2 $并单击&#34;&gt;&#34;按钮。
单击“下一步”,将打开查询可视化编辑器。
单击SQL按钮并粘贴此查询:
SELECT `Sheet1$`.ID, `Sheet1$`.Name, `Sheet2$`.Age
FROM`Sheet1$`, `Sheet2$`
WHERE `Sheet1$`.ID = `Sheet2$`.ID
最后关闭编辑器并将表放在您需要的位置。
答案 2 :(得分:0)
对于不带形式或Excel宏的基本Excel联接。请检查网站 http://exceljoins.blogspot.com/2013/10/excel-inner-join.html
联接可以在罕见的场合使用左外,右外和全外,但是我们可以在Excel Sheets中实现,有关更多信息,请检查以下内容 http://exceljoins.blogspot.com/