ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-8-7 21:41 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:MATCH
本帖最后由 e表格学习 于 2016-8-12 15:58 编辑

方版所阐述的二分法(找了半天链接,也没有找到)仅适用于查找区域为升序的模糊查找(查找不大于查找值的最大值),对于查找区域为降序的模糊查找(查找不小于查找值的最小值)就不适用了,比如MATCH函数的-1方式查找。
“二分法”的完整内容应该是:

二分法=升序二分法+降序二分法

降序二分法与升序二分法的主要不同是:
查找值大于中位值时,以中位作为边界,继续在其侧取新的中位值继续对比
查找值小于中位值时,以中位作为边界,继续在其侧取新的中位值继续对比
查找值等于中位值时,依次判断其侧数值是否继续相等,直到不相等(包括碰到与查找值类型不同的值、错误值等情况)时返回最后一个相等的数值
当中位位置与边界重叠时,中止对比,此时如果查找值不于中位值,则返回中位值;如果查找值于中位值,则返回中位左侧数值。如果左侧数值不存在,返回#N/A
当中位值为异常值(如与查找值类型不同的值、错误值等)时,忽略异常值,在其侧继续对比
测试.zip (6.37 KB, 下载次数: 197)


2016\8\12楼主总结:
1.关于MATCH的-1查找策略,请移步42楼.
2.方版的二分法,其查找策略是建立于默认升序排序基础上的,但是这并不妨碍将其运用于降序或乱序,只是结果可能匪夷所思罢了.
如果在实际工作问题中,您想查找不大于查找值的最大值,请务必将查找区域升序排序,否则,二分法查找结果可能会让您匪夷所思.
迄今为止,Excel并没有规定建立于默认降序排序基础上的二分法及其查找策略.MATCH的-1查找是从上到下(或从左到右)的遍历查找.虽然我们对MATCH的-1查找只能"按部就班"遍历,没有使用二分法而"义愤填膺"(同样排了序,凭什么只能LOOKUP\VLOOKUP\HLOOKUP\MATCH升序查找有高效二分法查找)!

点评

知识树索引内容位于42楼,Match降序查找,并不执行二分法策略。  发表于 2016-8-12 09:29

TA的精华主题

TA的得分主题

发表于 2016-8-7 22:11 | 显示全部楼层
http://club.excelhome.net/thread-872105-1-1.html

1、LOOKUP的模糊查找默认查找序列是升序排序的
2、MATCH三参为-1时才默认查找序列是降序排序
3、默认并不等于现实

另外二分法就二分法,哪有升序二分法和降序二分法一说

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 01:00 | 显示全部楼层
本帖最后由 e表格学习 于 2016-8-8 09:33 编辑
天上的小云云 发表于 2016-8-7 22:11
http://club.excelhome.net/thread-872105-1-1.html

1、LOOKUP的模糊查找默认查找序列是升序排序的


感谢提供链接!
楼主有不同看法:
1、LOOKUP查找,无所谓“模糊”还是“精确”,也无所谓“默认”。(没有查找方式参数嘛!)
2、“默认并不等于现实”是正确的,但如果需要返回期望的结果,该升序就得升序、该降序就得降序。
3、不作某些“方向”上的修改,方版的二分法是无法解释MATCH的-1查找结果的。
从实际应用上来说,理论上的二分法(即:不经过排序的二分法)是没有任何意义的。而方版的二分法如果应用于实际,只能解释“升序”,不能解释“降序”。

二分法的来由:之前,无论是有序还是乱序,区域查找都是循规蹈矩的自上而下.实践中,聪明人发现,有序排列的区域可以通过数次"腰斩"查找提高查找效率,于是"二分法"诞生了.从二分法的来由可知,实际应用中将二分法用于乱序是荒谬的.方版文章中拿乱序来说明二分法(并且没有着重指出\区分区域的排序(默认)要求.方版的二分法相当明确地是(默认)升序区域)是不恰当的,至少是没有抓住学习二分法的重点(这也是为数众多的菜鸟学习方版文章后,在实际应用中仍然会"犯迷糊"的主要原因).
(个人看法,欢迎讨论)



TA的精华主题

TA的得分主题

发表于 2016-8-8 09:53 | 显示全部楼层
e表格学习 发表于 2016-8-8 01:00
感谢提供链接!
楼主有不同看法:
1、LOOKUP查找,无所谓“模糊”还是“精确”,也无所谓“默认”。 ...

我还是那句话,请给出相关示例说明二分法不适用于MATCH三参为-1时候,即序列为降序排序的时候

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 10:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
天上的小云云 发表于 2016-8-8 09:53
我还是那句话,请给出相关示例说明二分法不适用于MATCH三参为-1时候,即序列为降序排序的时候

楼主附件中有一个-1查找方式的MATCH,您用方版的二分法解释一下查找过程?(当然,解释的查找过程,必须最后能够找到所示公式返回的正确结果!)

TA的精华主题

TA的得分主题

发表于 2016-8-8 10:12 | 显示全部楼层
个人觉得,研究这个二分法没什么意义吧?
函数要求升序或者降序,你偏偏要杂序,你就是把这个二分法研究得再深奥,得出来的结果该是错的还是错的....
毕竟我们不是要重写函数,而是使用函数...

TA的精华主题

TA的得分主题

发表于 2016-8-8 10:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
e表格学习 发表于 2016-8-8 10:02
楼主附件中有一个-1查找方式的MATCH,您用方版的二分法解释一下查找过程?(当然,解释的查找过程,必须最后能 ...

我也只能试着解释一下
QQ图片2016080810130311.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 10:27 | 显示全部楼层
zhjlgaojuan 发表于 2016-8-8 10:12
个人觉得,研究这个二分法没什么意义吧?
函数要求升序或者降序,你偏偏要杂序,你就是把这个二分法研究得再深 ...

1\您知道区域内相同的值,为什么lookup只会查找到最后一个呢?
2\0与错误值混杂的区域,为什么查找值为0时,lookup不一定查找到最后一个0?

如果您明确知道上述情况发生的原因,又说不知道二分法,那就不可思议了.

TA的精华主题

TA的得分主题

发表于 2016-8-8 10:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
e表格学习 发表于 2016-8-8 10:27
1\您知道区域内相同的值,为什么lookup只会查找到最后一个呢?
2\0与错误值混杂的区域,为什么查找值为0时, ...

明知道用0得不到你想要的正确值,那为什么还要用0而不用1呢?
还是说,通过研究二分法,能够使你在用0的情况下得到特殊的正确值?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-8-8 10:34 | 显示全部楼层
本帖最后由 e表格学习 于 2016-8-8 10:36 编辑
天上的小云云 发表于 2016-8-8 10:13
我也只能试着解释一下


您的解释,与我的解释完全一致!这个解释,正是降序二分法(查找不小于查找值的最小值)的解释!
因为,如果按照方版,您的第二个中位值不是往上去找到的9,而应该是往下去找到的4……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 16:32 , Processed in 0.052095 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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