vlookup查找只会返回的最后一个数值?

我要查找Q1对应的货位号,但是查找到的结果只会返回a列中的最后一个数值,而且还不是对应的,如果下拉公式,只会所有的数值都是一样的,请问什么原因?

呃。你的VLOOKUP省略了最后一个参数,如果省略最后一个参数,则默认是模糊查找。所以会返回小于你查找数据的最大值。因为是文本,所以可能会出现错乱 。
另外,VLOOKUP只能从第一列查找对应的值,而不会从其他列查找,而你引用的部分,要查找的是第二列。所以根本就找不到。所以会返回小于你查找数值的最大值。在EXCEL中,所有文本都比数字大。所以只能找到你第一列中的最大值(而且还必须是升序排列。否则只找最后一个值了)。
如果你想利用第二列查找第一列的话, 可以构建的内存数组。
=VLOOUP(Q2,IF({1,0},B:B ,A:A),2,0)
当然也可以通过数组公式来解决。我通常是用数组公式直接得出,更方便。反正都要数组的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-22
首先,vlookup函数的一般方式是无法根据后面的列去查找前面列的内容,所以你想根据B列数值去查找A列数值用常规写法是无法满足的。
根据你的图片来看,你是想根据编码去找货位,是典型的依据后列查找前列。
那么使用vlookup得这么写:
=VLOOKUP($Q2,IF({1,0},$B:$B,$A:$A),2,0)
当然,也可以使用别的函数如:
lookup函数:
=LOOKUP(1,0/($B$2:$B$100=Q2),$A$2:$A$100),区域$B$2:$B$100,A$2:$A$100你自己改一下。
index+match函数:
=INDEX($A:$B,MATCH(Q2,$B:$B,0),1)
offset函数:
=OFFSET($A$1,MATCH(Q2,$B:$B,0)-1,0)
第2个回答  2019-10-24
要返回最后的最新值,不能用VLOOKUP,那只会返回第一个出现的值,改用LOOKUP函数
=lookup(,0/(要查找的单元格=查找范围),返回值的范围)
类似于=lookup(,0/(B2=sheet1!$A$1:$A$100),sheet1!$C$1:$C$100) 。
第3个回答  2019-10-22

    vlookup是无法在最后一列查找的 可以使用lookup函数,但lookup函数对于查找范围有顺序的要求 也可以使用match函数,然后通过offset,indirect等函数处理一下 最好的方法还是把查找范围C列放在最前面,然后用vlookup

本回答被提问者采纳
第4个回答  2019-10-23
建议把A列、B列对调位置