Table_array的最后一列中的VLOOKUP

据我所知,VLOOKUPsearch表的第一列以查找值,然后从同一行和不同的用户指定的列中获取值。 以下代码返回第二列B列的数据。

VLOOKUP(5,$A$2:B100,2) 

有没有办法将返回列设置为input表的最后一列? 如下所示,它将分别从列B,P和AC返回数据。

 VLOOKUP(5,$A$2:B100,end) VLOOKUP(5,$A$2:P100,end) VLOOKUP(5,$A$2:AC100,end) 

或者,有没有办法抓住当前的列号,并将其用作索引?

 VLOOKUP(5,$A$2:B100,current_column_number) 

我想编写一个VLOOKUP公式,然后能够将它拖到电子表格中,以便B100变成C100,D100,E100等,并且列查找相应地改变。

更新

我可以使用COLUMN函数做替代方法,但它需要编程一个固定的偏移量,而且看起来并不健壮。 我仍然想知道是否有“结束”选项。

 =VLOOKUP(5,$A$2:B100,COLUMNS($A$2:B100)) 

不幸的是,你不能简单地拖动它,你需要replace,因为嵌套函数中有两个等效的范围。
COLUMNS有效地计算范围中的列,给出VLOOKUP 最终variables所需的确切结果。

编辑显示OP是一个简单的拖动function将是什么样的:

 Function VLOOKUP2(Expected As Variant, Target As Range) x = Target.Columns.Count VLOOKUP2 = Application.WorksheetFunction.VLookup(Expected, Target, x) End Function 

您可以使用Excel COLUMN()函数将列引用转换为VLOOKUP表中的数字索引。 尝试这个:

 VLOOKUP(5, $A$2:B100, COLUMN(B2)) VLOOKUP(5, $A$2:P100, COLUMN(P2) VLOOKUP(5, $A$2:AC100, COLUMN(AC2)) 

实际上,你可以input上面给出的第一个公式,然后复制到右边。 每个副本将自动移动列号到最后。