据我所知,VLOOKUP搜索表的第一列以查找值,然后它从同一行和不同的用户指定列中获取值。以下代码返回第2列B列的数据。
VLOOKUP(5,$A$2:B100,2)
有没有办法将返回列设置为输入表的最后一列?类似下面的内容,它将分别从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功能进行替代方法,但它需要编程固定的偏移并且看起来不那么健壮。我还是想知道是否有"结束"选项。
答案 0 :(得分:2)
=VLOOKUP(5,$A$2:B100,COLUMNS($A$2:B100))
不幸的是你不能简单地拖动它,你需要更换,因为嵌套函数中有两个等效范围。
COLUMNS有效地计算范围中的列,给出VLOOKUP的 end 变体所需的确切结果。
编辑以显示OP简单的拖动功能:
Function VLOOKUP2(Expected As Variant, Target As Range)
x = Target.Columns.Count
VLOOKUP2 = Application.WorksheetFunction.VLookup(Expected, Target, x)
End Function
答案 1 :(得分:1)
您可以使用Excel COLUMN()
函数将列引用转换为数字索引到VLOOKUP
表中。试试这个:
VLOOKUP(5, $A$2:B100, COLUMN(B2))
VLOOKUP(5, $A$2:P100, COLUMN(P2)
VLOOKUP(5, $A$2:AC100, COLUMN(AC2))
在实践中,您可以输入我上面给出的第一个公式,然后复制到右侧。每个副本都会自动将列号移到最后。
答案 2 :(得分:1)
您可以在持有($
)计数范围的一侧时使用计数功能,从而为您提供Vlookup
可以使用的整数。
类似的东西:
VLOOKUP(5,$A$2:B100,COUNT($A$2:A2))
您可能需要在计数功能中添加+
或-
1
,具体取决于您的范围的开始位置。
它有效地执行了与vlookup
的数组相同的操作