使用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)