ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: e表格学习

[分享] 关于MATCH函数第3参数为-1时的查找策略( 在cleverzhzhf学导老师指导下完成)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 10:44 | 显示全部楼层
本帖已被收录到知识树中,索引项:MATCH
zhjlgaojuan 发表于 2016-8-8 10:32
明知道用0得不到你想要的正确值,那为什么还要用0而不用1呢?
还是说,通过研究二分法,能够使你在用0的情况 ...

没有错误值等"废值"时,0完全可以得到正确返回值.
知道了这类"没用"的情况,才能更深刻地理解并心中有数地运用查找函数.

TA的精华主题

TA的得分主题

发表于 2016-8-8 10:45 | 显示全部楼层
e表格学习 发表于 2016-8-8 10:34
您的解释,与我的解释完全一致!这个解释,正是降序二分法(查找不小于查找值的最小值)的解释!
因为,如果 ...

咱们先抛弃规则不说
当MATCH三参为-1的时候,默认序列是降序排序的,第一次查找二分位是7,查找值是8,那就认为7以上的才是第二次应该查找的序列
同样的,当MATCH三参为1或者省略的时候,默认序列是升序排序的,那就认为7以下的才是第二次应该查找的序列

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 11:10 | 显示全部楼层
天上的小云云 发表于 2016-8-8 10:45
咱们先抛弃规则不说
当MATCH三参为-1的时候,默认序列是降序排序的,第一次查找二分位是7,查找值是8, ...

您首先区分情况,然后再确定"方向",这不正是二分法与排序有关系的体现吗?!而方版例子只说了一个(默认)"方向".

TA的精华主题

TA的得分主题

发表于 2016-8-8 11:14 | 显示全部楼层
e表格学习 发表于 2016-8-8 11:10
您首先区分情况,然后再确定"方向",这不正是二分法与排序有关系的体现吗?!而方版例子只说了一个(默认)"方 ...

方版说的是LOOKUP查找,LOOKUP默认序列就是升序排序的呀,他当然没说错了
可是MATCH三参有-1的情况,就要变通了呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 11:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 e表格学习 于 2016-8-8 11:35 编辑
天上的小云云 发表于 2016-8-8 11:14
方版说的是LOOKUP查找,LOOKUP默认序列就是升序排序的呀,他当然没说错了
可是MATCH三参有-1的情况,就 ...


二分法其实是非常顺乎自然的算法,也相当容易理解和"变通".但是,对于初学的菜鸟,就不能让他们自己去变通了.换句话说,方版应该在其例子中直接采用升序区域(乱序可以作为补充示例),并附加注明,不能机械地用于降序区域,应该在理解二分法精髓\实质的基础上"变通"运用.
(声明:菜鸟无意对发布经典帖大师冒犯.本人一厢情愿,纯出于学习动机)

顺祝您高歌猛进,"中级"到"高级"的效率,也像二分法的效率----好快啊!

TA的精华主题

TA的得分主题

发表于 2016-8-8 11:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
e表格学习 发表于 2016-8-8 11:31
二分法其实是非常顺乎自然的算法,也相当容易理解和"变通".但是,对于初学的菜鸟,就不能让他们自己去变通 ...

二分法的高端是有些讲师级别的都无法很好解释的,更何况菜鸟了。
方版的帖子只是说明了LOOKUP的二分法查找方法,并未涉猎其他,故不能算作不严谨吧

TA的精华主题

TA的得分主题

发表于 2016-8-8 13:54 | 显示全部楼层
嘻嘻,又再聊了。上次不是已经解释得很清楚了吗

TA的精华主题

TA的得分主题

发表于 2016-8-8 14:13 | 显示全部楼层
数学上的二分法:
对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。

先学定理,再结合实际。
同一个定理可以运用到不同领域。但要放在具体的领域里重新诠释。
比如,计算机上的二分法原理,只说向左向右,没说向上向下的
其实向右向下,与向左向上是一样的道理,可以把数据倒转过来看。
关键是理解它的假设前提,就可以判断它的下一步应该如何处理了。

TA的精华主题

TA的得分主题

发表于 2016-8-8 14:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
另外要纠正一下,运用二分法的应该是近似匹配方式,而不是模糊查找。
模糊查找是指精确匹配方式下、对文本值使用通配符的查找。

TA的精华主题

TA的得分主题

发表于 2016-8-8 14:23 | 显示全部楼层
还有,LOOKUP仅支持升序近似匹配。
之前很多人以为只有LOOKUP才用二分法查找,所以以为LOOKUP是一个很高效的函数。

但事实上是:
1、所有近似匹配都是用二分法原理来查找的。

2、当LOOKUP函数里使用内存数组的话,它的高效性就荡然无存。
因为,生成内存数组的过程,已经让它的计算速度大为逊色了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 17:15 , Processed in 0.049202 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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