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上面给出的第一个公式,然后复制到右边。 每个副本将自动移动列号到最后。