Excel的VLOOKUP函数中,0代表精确匹配,1代表近似匹配。但微软文档与实际操作存在矛盾,实际上0应为精确匹配。WPS统一了提示,0为精确,1为近似。模糊匹配需查找区域首列升序排列,通过二分法快速定位,适用于范围查找而非精确值。精确匹配则逐条比对,无顺序要求但效率低。
Excel函数vlookup中0或1代表什么、区别是什么?
代表什么:
在Vlookup中 0、1 用来代表 精确匹配、近似匹配
1> Excel 2010 (官方帮助中明确 0–>FALSE–>近似匹配,其他数字为精确匹配)
挑BUG?
微软函数窗口明确Range_lookup为0时值=FLASE,下方提示为大致匹配, 而在这里又告知0为精确查找?
哪到底0是代表精确还是近似匹配呢? 又或者窗口函数理解的角度不对? 欢迎大神们反馈?
以下为官方帮助文档:
2> WPS 2019
注: WPS窗口函数和公式位置的提示均统一,即0代表FAlSE(精确匹配), 1代表TRUE(近似匹配)
区别是什么:
VLOOKUP教程(连载3)——模糊匹配和精确匹配是什么意思原来一直都弄错了
https://zhuanlan.zhihu.com/p/81093783
一、模糊匹配还是部分匹配
通过两个示例来说明部分匹配和模糊匹配是什么意思。
示例1.按照简称匹配全称所对应的业务人员姓名,可以使用公式=VLOOKUP(“*”&D2&”*”,A:B,2,0)完成,如图所示。
在第一参数D2的两边连接了通配符,表示从A列找到包含D2内容的数据后,返回B列对应的姓名。查找内容必须是连续的字符,如果是间断的则无法返回正确结果,例如D8单元格中的数据就不能得到正确结果。
示例2.根据销售额确定业务员的等级,一共分为五个等级,使用IF函数完成等级的确定会比较繁琐,可以使用公式=VLOOKUP(N3,$J$3:$K$7,2,1)来确定等级,如图所示。
在这个公式中,第四参数用了1,也就是模糊匹配。需要注意的是,公式中的范围是以J列(分级下限)为首列的,并且下限值按升序排列。查找值N列(销售额)中的每个值都不在查找区域的首列,但是却能得到正确的结果,这种查找方式就是模糊匹配。
提示:通过这两个例子理解部分匹配和模糊匹配的区别,以及这两种匹配方式的要点。
1.部分匹配使用的精确匹配方式,查找值两边连接通配符,并且查找值必须是连续存在的字符;
2.模糊匹配必须保证查找区域首列是升序排列,如果涉及到数字区间则以数字区间的下限作为首列内容。
二、模糊匹配原来是这个意思
要了解模糊匹配和精确匹配的区别,就要知道数据匹配的两种计算原理:遍历法与二分法。
精确匹配使用的是遍历法原理,对数据源的顺序没有要求,会从数据源的第一个值开始与查找值进行比较,如果不同则继续向下,直到发现一致的数据,则返回所需的结果,查找任务结束,其原理如图所示。
黑色箭头为第一轮的查找过程,橙色箭头为第二轮的查找过程,每个姓名都要从头找一遍。
遍历法的准确性无疑是很高的,但是查找效率相对较低,当数据量比较多的时候运算就会比较费时间。
模糊匹配使用的是二分法原理,二分法原理很重要的一点是默认数据源升序排列,默认的意思就是不管数据实际是以何种方式排列,都会认为是升序的。每次会和数据源中间位置的数据比较大小,如果查找值较大,则向下继续找中间位置的数据去比较,直到找到目标值,反之则向上查找,对于非数字内容的大小,可以参考升序排序的排列去判断。
在按照销售额确定等级的时候,就用到了模糊匹配,如图所示。
以7633这个数字为例,查找范围中共有五个值,中间位置(第三个值)是7000,7633大于7000,所以向下查找,这样一次就排除了一半的数据。
当数据为偶数时,中间位置为数据个数/2,7000下面只有两个数,因此和第一个数(9000)进行比较,7633小于9000,最终结果就是9000上面一行的值对应的等级。
如果数据不是升序排序,那么结果很有可能都是错误的,如图所示。
同样的公式,只是数据源排序方式不同,结果完全变样了。还是以7633为例,首先和7000比较,向下找,比5000大,则得到5000下面一行的数据。
由此可知,模糊匹配的本质并不是比较数据是否一致,而是按照数据之间的大小关系进行判断,每一次都是和中间位置的数据进行比较,这样一次就能排除一半的数据。假如有1000个数据需要比较,使用精确匹配就需要比较1000次,而模糊匹配只需要比较10次(2的10次方=1024)。
提示:对于二分法原理不必深究,理解要点即可。
1.数据源要求升序排列;
2.查找速度高于精确匹配;
3.进行多重判断时可以取代IF函数的嵌套。
推荐阅读