ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1003|回复: 4

[分享] 关于LOOKUP的分享

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-12-22 20:37 | 显示全部楼层 |阅读模式
最近在排序和提取的时候经常用到LOOKUP,于是就引发了一些思考

有人说LOOKUP是从右往左搜,直到搜到后,返回向量,然后就做了个实验发现很多情况都不是按这个规律,请看下图

image.png

按这个图的规律发现,LOOKUP都是从“中位数”开始搜

此“中位数”非彼中位数,此“中位数”的含义就是中间那个数,比如第四行,搜到了中间那个1,就能返回3
当给的数组数量为偶数时,“中位数”是靠左的那个,比如=LOOKUP(1,{2,1},{5,4}),也是返回NA

当搜到时,往右(下)探索,直到最右边满足自身条件的数,然后返回向量;
当搜不到时,就往左(上)搜,直到满足条件为止


为了验证这个想法,又增加了数列

image.png

数组总共有15个,第8个为“中位数”,所以能搜到,返回-2

image.png

当第8个搜不到的时候,自动往上(左)搜,所以下面再多的1,也直接被“抛弃”

image.png

所以第二次搜4号位也搜不到,第三次搜2号位也搜不到,最终返回NA

这就是传说中的“2分法”

那么0/(条件)就很坏,如果去搜0的话,不满足的错误值直接被抛弃,满足条件的会取最后一个数

这就是为什么提取数字{-lookup(,-left(row())}的时候会取比0更小的数字,而不是接近0的数字,因为这个数字本身排列在后面,符合条件

就这样,继续搬砖
Lookup.rar (67.32 KB, 下载次数: 12)
image.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-12-23 09:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
针对图一

语法LOOKUP(lookup_value,  lookup_vector,  [result_vector])
  • lookup_vector 中的值必须以升序排列:...,-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。否则,LOOKUP 可能无法返回正确的值。大写文本和小写文本是等同的。



TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-23 09:45 | 显示全部楼层
f8b1987 发表于 2020-12-23 09:27
针对图一

语法LOOKUP(lookup_value,  lookup_vector,  [result_vector])

当乱序的时候,或者相同的时候,LOOKUP会搜中位数,对了向右搜,错了向左搜,直到搜到最右边的正确值

TA的精华主题

TA的得分主题

发表于 2020-12-23 17:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习,相同体会

TA的精华主题

TA的得分主题

发表于 2020-12-23 19:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
几乎没有遇到过一次  lookup乱序使用的情况,所以每次看到二分讲解,都略过了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 03:09 , Processed in 0.036602 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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