我知道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函数来实现另一种方法,但是它需要编程一个固定的偏移量,而且看起来不是很健壮。我还是想知道是否有“结束”的选项。
发布于 2015-05-04 02:31:19
=VLOOKUP(5,$A$2:B100,COLUMNS($A$2:B100))不幸的是,你不能简单地拖动它,你需要替换它,因为在嵌套函数中写了两个等价的范围。
这些列有效地对范围内的列进行计数,给出了VLOOKUP的end变量所需的确切结果。
编辑,向OP展示一个简单的拖动功能:
Function VLOOKUP2(Expected As Variant, Target As Range)
x = Target.Columns.Count
VLOOKUP2 = Application.WorksheetFunction.VLookup(Expected, Target, x)
End Function发布于 2015-05-04 02:30:41
您可以使用Excel COLUMN()函数将数值索引的列引用转换到VLOOKUP表中。试试这个:
VLOOKUP(5, $A$2:B100, COLUMN(B2))
VLOOKUP(5, $A$2:P100, COLUMN(P2)
VLOOKUP(5, $A$2:AC100, COLUMN(AC2))在实践中,你可以只输入我上面给出的第一个公式,然后复制到右边。每次复制都会自动将列号移到末尾。
发布于 2018-04-14 03:32:08
您可以在保持($)计数范围的一侧的同时使用count函数,从而给出一个Vlookup可以使用的整数。
类似于:
VLOOKUP(5,$A$2:B100,COUNT($A$2:A2))根据范围的开始位置,您可能需要将+或- 1添加到count函数。
它实际上正在对vlookup执行与数组相同的操作
https://stackoverflow.com/questions/30017588
复制相似问题