Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5272|回复: 6

[分享] LOOKUP函数二分法原理讲解

[复制链接]
发表于 2017-7-18 18:08 | 显示全部楼层 |阅读模式
首先从字面理解二分,二分就是一分为二,对折的意思,那么这个一分为二和二分法查找有什么关联?
举一个简单的例子,比如说你家里的电路坏了,找一个电工给你修理,但电工也不知道是哪里的线路出了问题,这个时候他会先从电线的中间先检查,
第一种情况,如果中间的电路是没问题的,那么可以判断前面的一段都没问题,所以有问题是在后面那一段,这个时候他又从后面这段的中间位置找,如果仍然没有问题 再往后面的中间位置找 以此类推!
第二种情况,如果中间的电路是有问题的,那么可以判断问题出现在前面的那一段,这个时候他又从前面这段的中间位置找,如果仍然有问题 再往前面的中间位置找 以此类推!
相信通过上面的题外话 应该能理解大概了
进入主题
lookup要求按升序排序,当你是乱序是他也会认为是升序排序的
1 中值的理解
计算中值公式INT((总个数+1)/2)
2当查找值与中值相等时,继续往下(右)查找
LOOKUP(40,{20,30,40,40,50},{"A","B","C","D","E"})
查找值为40,第一个40为中值 但返回结果不是中值所对应的C,而是第二个40所对应的D
结果返回D
3,当查找值大于了中值,继续往下(右)查找
LOOKUP(40,{10,20,30,40,50},{"A","B","C","D","E"})
查找值为40,30为中值,40>30,继续往下(右)查找,找到40,结果返回D
4,当查找值小于了中值,继续往上(左)查找
LOOKUP(10,{10,20,30,40,50},{"A","B","C","D","E"})
查找值为10,中值为30,10<30,继续往上(左)查找,找到10,结果返回A
5,如果查找值比第2参数最大的值还大,则返回最后一个对应的值
LOOKUP(9999,{10,20,30,40,50},{"A","B","C","D","E"})
查找值为9999,中值为30,后面没有一个值是9999,他会返回最后一个对应的值E
同理当看到很多同学写lookup(1,0/区域,返回区域)为什么查找值为1,为什么用0/
这里做详细的解释
0/任何数为0 那么它会得出{0,0,0,0}这么一个数组,现在查找值是1, 1大于0,后面没有一个是1 他同样的会返回最后一个对应的值
总结(LOOKUP忽略错误值,当看见别人写9e+307(座/々)时 其实他要找的就是最后一个值)9e307是针对数字 座针对文本



评分

参与人数 4 +91 金币 +90 收起 理由
望帝春心 + 30 + 30 来学习~
枫竹 + 1 很给力
笨笨四 + 30 + 30 我和小伙伴都惊呆了
Excel学徒123 + 30 + 30 赞一个

查看全部评分

发表于 2017-7-19 22:36 | 显示全部楼层
回复

使用道具 举报

发表于 2017-11-29 10:27 | 显示全部楼层
回复

使用道具 举报

发表于 2019-2-21 08:52 | 显示全部楼层
好好研究下
回复

使用道具 举报

发表于 2019-5-4 21:36 | 显示全部楼层
1111111111111111
回复

使用道具 举报

发表于 2020-11-26 08:37 | 显示全部楼层
明白了
回复

使用道具 举报

发表于 2020-12-17 16:32 | 显示全部楼层
重点:lookup要求按升序排序,当你是乱序是他也会认为是升序排序的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 20:30 , Processed in 0.396895 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表