是否可以使用VLOOKUP内部联接两个不同的Excel电子表格?
在SQL中,我会这样:
SELECT id, name
FROM Sheet1
INNER JOIN Sheet2
ON Sheet1.id = Sheet2.id;
Sheet1:
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
+----+------+
Sheet2:
+----+-----+
| ID | Age |
+----+-----+
| 1 | 20 |
| 2 | 21 |
| 4 | 22 |
+----+-----+
结果将是:
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
| 4 | D |
+----+------+
如何在VLOOKUP中执行此操作?还是除了VLOOKUP之外还有更好的方法?
谢谢。
首先让我们获取两个表中都存在的值的列表。如果您使用的是excel 2010或更高版本,则在工作表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的列表。这确实假定ID是数字而不是文本。
然后使用该列表,我们使用vlookup:
=IF(A2<>"",VLOOKUP(A2,Sheet1!A:B,2,FALSE),"")
这将返回表1中匹配的值。
您可以使用Microsoft Query达到此结果。
首先,选择Data > From other sources > From Microsoft Query
然后选择“ Excel Files *”。
在“选择工作簿”窗口中,您必须选择当前工作簿。
[下一步,在查询向导窗口中,选择sheet1 $和sheet2 $,然后单击“>”按钮。
单击下一步,查询视觉编辑器将打开。
单击SQL按钮并粘贴此查询:
SELECT `Sheet1$`.ID, `Sheet1$`.Name, `Sheet2$`.Age
FROM`Sheet1$`, `Sheet2$`
WHERE `Sheet1$`.ID = `Sheet2$`.ID
最后关闭编辑器,然后将表放在需要的位置。
对于不带形式或Excel宏的基本Excel连接。请检查网站http://exceljoins.blogspot.com/2013/10/excel-inner-join.html
Joins可以在很少的场合使用左外,右外和全外,但是我们可以在Excel Sheets中实现,有关更多信息,请检查以下内容http://exceljoins.blogspot.com/