发布网友 发布时间:2022-04-23 22:26
共5个回答
热心网友 时间:2023-10-12 02:28
应该使用VLOOKUP函数,
具体公式为:=VLOOKUP(C1,$A$1:$B$2,2,FALSE)
有重复值的情况下,只返回第一个对应的数据。
对于有重复值的情况,可以这么处理,
如图
如有疑问可以继续交流!!!
热心网友 时间:2023-10-12 02:29
一、先说下原则:
用lookup时,为了准确地得到需要的结果,第2参数必须按升序排列,否则会得到意思不到的结果。
第2参数是乱序,而想要到某种结果,分两种情况:
(1)查找范围的数据具有唯一性时,可用类似如下的公式:
=LOOKUP(,0/(查找范围=查找值),返回的对应数据)
(2)查找范围中的数据有重复时,要返回最后一个与查找目标相同的,仍可用上面的公式,但某些情况下,忽略第1参数(相当于为“0”),因下面说lookup查找原理的原因,并不会返回最后一个值,这时需要把第1参数改为大于0的数字,如1;如要返回重复数据中的最前面一个,就改用:index+match的精确匹配。
二、再来简单说下lookup的查找原理:
因为lookup要求第2参数按升序排列,所以当你的数据是乱序时,它并不会感觉到是乱序的,而仍然认为是升序的。牢记这一点对理解和使用lookup是非常重要的!
既然第2参数是升序排列,为了提高查找效率,lookup查找是按二分法来查找的,即在第2参数中找到中数,与查找目标比较,如果大于查找目标,就再将第2参数的前半个部分对分后来比较;反之将后半个部分对分来比较,这样直到找到小于或等于查找目标的最大数据。对分时,如果数据个数是奇数,很好理解,就是中间一个,但当偶数时,Excel就取2个并列中间位置数据中前面一个。
有了上面的分析,来看你的问题,就很容易理解了,为什么找小李时会找到中间的,而找小张时会找到最后一个。Excel中“小李”、“小张”是如何分大小顺序的呢?是按拼音字母,小李和小张的第1个字符相同,就按第2个——“李”和“张”。
先看你的截图,接前面所说,8个数据,并列的中间2个是“小红”和“小李”,取前面的“小红”,“小红”与“小李”比较,第1个都是“小”,第2个比较,红的拼音道字母是H,李的拼音首字母是L,L在H后面,所以Excel按“升序”理解,小李在小红的后面!后面4个数据对分,中间并列是A6中的“小王”、A7中的“小绿”,取前面A6小王,王的拼音首字母W在L的后面,所以再A6的前面中对分查找,因为这时只A5一个数据了,不用对分,直接比较,正好相等,于是返回A5位置对应的B5数据。
把小李改成小张后,因为张的拼音首字母Z是字母最大的,按前述的方式逐步对分查找,最后找到了最后一个“小张”的位置。
本问题远比一个求公式的要复杂得多,是求“渔”,如果觉得解惑了,就增加些悬赏吧,哈哈。
热心网友 时间:2023-10-12 02:29
LOOKUP要求查找的区域是已经排序的,否则找到或找不到、重复或不重复的结果都可能是错的,升序以后,重复的结果也是不确定的,具体原因请搜索二分查找算法。
热心网友 时间:2023-10-12 02:30
你要选中整列,她会返回最后一个值,如果区域选择的话下拉会改变区域,所以值会不一样
追答
热心网友 时间:2023-10-12 02:31
lookup要求搜索的目标列是升序排列的,规则应该是折半查找,如果比较的数小于目标则继续折半查找前一半,如果大于则查找后一半,如果等于则顺序比较下一个数是否等于,如果等于继续往后比较,如果不等于则取当前位置