如何在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编辑器,把表格放在你需要的地方。

结果应该是这样的: 在这里输入图像描述