如何在Excel中内联(例如使用VLOOKUP)
有没有办法使用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或更高版本,则在Sheet 3 A2中input以下公式:
=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离开编辑模式。
然后根据需要复制尽可能多的行。 这将创build两个列表中的ID'd列表。 这确实假定ID是一个数字而不是文本。
然后用这个列表我们使用vlookup:
=IF(A2<>"",VLOOKUP(A2,Sheet1!A:B,2,FALSE),"")
这将返回匹配的Sheet 1的值。
您可以使用Microsoft Query获得此结果。
首先,selectData > From other sources > From Microsoft Query
然后select“Excel文件*”。
在“select工作簿”窗口中,您必须select当前的工作簿。
接下来,在查询向导窗口中,selectsheet1 $和sheet2 $,然后单击“>”button。
单击下一步,查询可视化编辑器将打开。
点击SQLbutton并粘贴这个查询:
SELECT `Sheet1$`.ID, `Sheet1$`.Name, `Sheet2$`.Age FROM`Sheet1$`, `Sheet2$` WHERE `Sheet1$`.ID = `Sheet2$`.ID
最后closures编辑器,把表格放在你需要的地方。
结果应该是这样的: