关于excel中lookup函数,当要查找的值出现重复时,是按啥原则返加结果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于excel中lookup函数,当要查找的值出现重复时,是按啥原则返加结果?相关的知识,希望对你有一定的参考价值。

之前问的同样的问题莫名违规了,再问一遍。例如:用lookup函数查找一群学生中名字是张三的学生的考试分数,但是这群学生中有多个名字是张三的学生,这些张三的分数各不相同,那这样查找会按照什么原则来返还结果?我自己试了一下,发现改一下名字,张三改为小李结果又会不一样,这又是什么原因呢?

应该使用VLOOKUP函数,

具体公式为:=VLOOKUP(C1,$A$1:$B$2,2,FALSE)

有重复值的情况下,只返回第一个对应的数据。

对于有重复值的情况,可以这么处理,

如图

如有疑问可以继续交流!!!

参考技术A

一、先说下原则:

    用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是字母最大的,按前述的方式逐步对分查找,最后找到了最后一个“小张”的位置。

本问题远比一个求公式的要复杂得多,是求“渔”,如果觉得解惑了,就增加些悬赏吧,哈哈。

本回答被提问者采纳
参考技术B

LOOKUP要求查找的区域是已经排序的,否则找到或找不到、重复或不重复的结果都可能是错的,升序以后,重复的结果也是不确定的,具体原因请搜索二分查找算法。

参考技术C

你要选中整列,她会返回最后一个值,如果区域选择的话下拉会改变区域,所以值会不一样

追答

如果你想要的是这样的效果,可以开启宏使用自定义函数

参考技术D lookup要求搜索的目标列是升序排列的,规则应该是折半查找,如果比较的数小于目标则继续折半查找前一半,如果大于则查找后一半,如果等于则顺序比较下一个数是否等于,如果等于继续往后比较,如果不等于则取当前位置
你这个不适合用lookup,建议用vlookup,然后vlookup会返回第一个符合的结果
=vlookup(c1,$a$1:$b$8,2,false)

逆向查询:LOOKUP函数

目的:根据学生姓名查询对应的学号。

 

方法:

在目标单元格中输入公式:=LOOKUP(1,0/(B3:B9=H3),A3:A9)。

解读:

公式LOOKUP函数的语法结构为:LOOKUP(查找的值,查找的条件,返回值的范围)。本示例中使用的位变异用法。查找的值为1,条件为0。根据LOOKUP函数的特点,如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。

技术图片
 
备注:
1、参数1,0均是固定数值,不用关注
2、B3:B9等要采用绝对值方法引用,比如$B$3:$B$9
3、关注匹配的数据类型是否相同

以上是关于关于excel中lookup函数,当要查找的值出现重复时,是按啥原则返加结果?的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL中MATCH函数lookup_array的排序问题

excel lookup查找 返回多个值

excel中lookup函数如何精确匹配查找

在excel中,关于函数描述正确的是()。

excel中函数lookup查询函数用法详细步骤实例

Excel中的LOOKUP函数是怎样应运的?