Excel精英培训网

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

[已解决]请教高手:

[复制链接]
发表于 2013-7-6 20:50 | 显示全部楼层 |阅读模式
"=MATCH(1,-{"6";"小";"白";"菜";"1";"2";"3";".";"10";"5"})"这个数组公式为什么返回10?
最佳答案
2013-7-6 21:24
510060800 发表于 2013-7-6 21:19
还想请教:数组公式"=MATCH(1,-{"0";"小";"1";"2";"3";".";"0";"5"})“为什么返回8?或者说返回的结果总与数 ...

你把5改成字母,结果就是7了。你这个公式就是查找数字出现的最后一个位置。
发表于 2013-7-6 20:55 | 显示全部楼层
因为是模糊查找。改成这样就正确了
=MATCH(1,-{"6";"小";"白";"菜";"1";"2";"3";".";"10";"5"},0)
回复

使用道具 举报

发表于 2013-7-6 21:03 | 显示全部楼层
因为用的是    模糊查找   也就是传说中二分法查找   1在负数中是最大所以会找到最后一个数字的位置也就是10的位置

以下是我在论坛收集的资料,想弄明白也可以看小妖老师的视频

“二分法”查找原理:
1、数据升序排列(默认);
2、在由N个数据组成区间(1~N)查找某值X,为方便说明,假设有100个数据,首先比较中间值(第int((1+100)/2)=50个数据)与X的大小,如果该值比要查找的X小,那么由于数据是升序的,则收敛搜索区域为“右区间”即第51个~第100个。反之则在左区间查找,一值对半再对半地缩小搜索范围,达到加快查找速度的效果。如果中间值刚好=X,则不再继续查找。
回复

使用道具 举报

 楼主| 发表于 2013-7-6 21:09 | 显示全部楼层
谢谢!都谢谢了!
回复

使用道具 举报

发表于 2013-7-6 21:15 | 显示全部楼层
510060800 发表于 2013-7-6 21:09
谢谢!都谢谢了!

除了谢谢,还要给满意楼层答案设置成“最佳答案”,以示谢意。
回复

使用道具 举报

 楼主| 发表于 2013-7-6 21:19 | 显示全部楼层
还想请教:数组公式"=MATCH(1,-{"0";"小";"1";"2";"3";".";"0";"5"})“为什么返回8?或者说返回的结果总与数组中字符个数相同?
回复

使用道具 举报

发表于 2013-7-6 21:24 | 显示全部楼层    本楼为最佳答案   
510060800 发表于 2013-7-6 21:19
还想请教:数组公式"=MATCH(1,-{"0";"小";"1";"2";"3";".";"0";"5"})“为什么返回8?或者说返回的结果总与数 ...

你把5改成字母,结果就是7了。你这个公式就是查找数字出现的最后一个位置。
回复

使用道具 举报

 楼主| 发表于 2013-7-6 21:30 | 显示全部楼层
很希望7楼能更详细地讲解讲解。谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 20:46 , Processed in 0.266459 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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