我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
排序与查找不管是在Excel领域,还是其他领域,例如C语言,都有着很高的使用率。学会了这个技能,我们做起事情来更加方便快捷,省去不少时间,效率倍增。下面我们就来介绍一下折半查找在Excel函数里面的运用。
折半查找
又称之为二分查找,它要求目标数组中的数据是有序排列的。优点是比较次数少,查找速度快,平均性能好,适用于不经常变动而查找频繁的有序列表。下面先来看看下面的流程图。
为了便于大家理解,我作几点说明:
①将需要查找的值与中间值(也叫做中位值)进行对比;
②大于中位值时,以中位作为边界,继续在其右侧取新的中位值继续对比;
③小于中位值时,以中位作为边界,继续在其左侧取新的中位值继续对比;
④等于中位值时,依次判断其右侧数值是否继续相等,直到不相等时返回最后一个相等的数值;
⑤当中位位置与边界重叠时,中止对比,此时如果查找值大于中位值,则返回中位值;如果查找值小于中位值,则返回中位左侧数值。如果左侧数值不存在,返回#N/A。
流程图大致的介绍就是如此,不知道我描述是不是清楚,这只是一个算法而已,不懂也不需要太过深入研究。当数据个数为偶数时,中位等于个数除以2;数据个数为奇数时,中位等于<个数+1>除以2
案例剖析
①如下图所示,给出了一连串升序排列的数组,我们要找出33这个数。按照上面的介绍,我们知道中位值为24.
②第一次比较,因为33>24,所以锁定第二次查找范围在中位值的后面,而不是前面,前面的数字都比24小,不可能找得到33.
③第二次比较,中位值变为了31,33>31,继续找后面的。
④依次类推,直到找到数字或者整个数组被查找完毕,没有找到则会返回#N/A
现在或许大家还在疑问为什么要是一个有序的序列才可以进行折半查找?下面这张图,与之前的图对比一下,你就知道了。
Excel中也有类似的函数,LOOKUP,我们要查找74,但是用LOOKUP函数计算出来的结果却是49,下面就来分析一下。
①第一次比较74小于116,所以开始往前查找。
②中位值变为50.74大于50,向后查找。
③74又大于47,依旧向后。
④最后只剩下一个49了,这就是函数的返回值。
相关文章
我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
在工作中,可能许多朋友都会碰到一个情况,那就是工作簿和工作表数据的合并操作。如何将上百个工作簿快速合并到一个表格中,许多朋友可能会觉得不可思议。今天我们就来教大家学习一......
2023-01-08
今天在这里为你分享5个Excel文本函数,这些拆分和组合函数,你一定会用上的。①LEFT函数公式:=LEFT(A2,1)在Excel表格中,需要想要拆分汉字,想从哪里开始就从那哪里开始。首先选定单元格......
2023-01-08
相信大家也和我一样,才开始看到Excel可以当做翻译软件的时候会很好奇,这究竟是怎样做到的?其实,这个方法并不是很难,它是由一个函数公式而制作出来的,好了,首先我们一起来看看成......
2023-01-08
函数可以说是所用快捷方法中最为简单的一种方法,为什么很多人认为函数用起来很难了?主要是因为它拥有很长的函数公式,记不住。其实不管是学Excel函数,还是学习其他的一些快捷方法......
2023-01-08