Table_array的最后一列中的VLOOKUP

时间:2015-05-03 18:16:21

标签: excel excel-formula vlookup

据我所知,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功能进行替代方法,但它需要编程固定的偏移并且看起来不那么健壮。我还是想知道是否有"结束"选项。

3 个答案:

答案 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

的数组相同的操作