使用vlookup基于列值子集Excel行

我有一个工作簿:

sheet1: id name ...(100 columns) 1 a 2 b 3 c ... (about 300,000 rows) sheet2: id 3 4 ... (about 50,000 rows) 

我想在sheet2中select带有id的sheet1中的行,我尝试在sheet2中使用vlookup:

 VLOOKUP($A2, sheet1!$A:$CV, 1) 

问题是我有100列,水平自动填充单元格不会自动添加最后一个参数在vlookup,即,我不得不手动将其更改为2,3,…,100。 有没有更好的方法来做到这一点?

在表格上方添加值为2, 3, 4, ... , 100的辅助行。 说它将是第1行,所以你的目标表下移一行。

那么你的VLOOKUP公式就是这样的:

 =VLOOKUP($A3,sheet1!$A:$CV,B$1,0) 

因此,您可以dynamic指定VLOOKUP的结果列! 瞧!

变体2(无辅助行):

 =VLOOKUP($A2,sheet1!$A:$CV,COLUMN(),0) 

正如你所看到的, COLUMN()函数返回input公式的列数。 注意:只有在工作表上第2:2列第2:2列的目标表中写入该公式时,该公式才有效。 否则,您将需要应用这样的偏移量(例如,如果您从第5:5列开始编写公式):

 =VLOOKUP($A2,sheet1!$A:$CV,COLUMN()-3,0)