Vlookup最高阶应用的全网唯一解决方案

古有烟笼寒水月笼沙的缥缈朦胧,今有查询函数的假模糊匹配的终极应用!今天分享的内容是全网唯一哦~

为啥是假模糊匹配呢?一会和你说!

嗯嗯,Vlookup函数应该都使用的熟的不能再熟了,啰嗦一遍Vlookup函数的用法

=Vlookup(找什么,在哪里找,返回第几列,空)

这种用法就是我们工作中最常用的精确匹配,就是第一个参数一定要在哪里找的第一列中,且完全相等才可以查询出来!!

但是哪有这么好哇!此事古难全!

如果两边的数据不完全一样,而是包含关系怎么查询呢?

准备好了没?

GO !!!

一、查找内容只是被查找列表的一部分

(含有通配符的精确匹配)

先和大家介绍两个特别特别特别实用的通配符!

通配符是啥?就是无论什么都可以通通匹配上的字符!

?:匹配一个长度的任意字符(是英文的问号哦)

*:匹配任意长度的任意字符!

为啥要用到通配符?因为把查找内容补充上通配符后,就可以让查找与被查找的相等了!

我有原始表如下:

天气转暖了~春天到来了~NO!

又到了相亲的日子了!左边的列表有不同的品格,相似的评价合并到了一起。

右边的品格只有一个词博学,我希望找到博学多才对应的打分!怎么做呢?

上公式:=VLOOKUP("*"&D2&"*",A1:B5,2,)

核心应用是"*"&D2&"*",就是如果查找的内容属于被查找内容的一部分,就将查找的内容前后各加一个*号(匹配任意长度任意字符的通配符)

这样就可以以少查多啦!

二、查找内容的一部分内容在被查找列表

(Find函数、Lookup函数、数组函数的混合应用)

本案例是使用lookup函数实现的,为啥不用Vlookup?因为太麻烦了,还要重构数组函数,费事!

继续来栗子!!!

话不多说,来解决方案吧!

被查找列表内容比较短,查找的内容的一部分在被查找列表,咋做呢?

这个略难,一般比较难的,小编都是先上结论后拆解公式的!

公式:=LOOKUP(1,0/(FIND(A2:A5,D2)),B2:B5)

标准的公式肯定要加绝对引用,我相信你懂得,为了方便阅读,俺就不加了。

基本函数解释

如果要解释Lookup函数的用法,就小孩没娘,说来话长了!

简单的理解就是lookup可以看做Vlookup的模糊匹配查询

=Lookup(要查找的内容,要比对的列,要返回的列)

继续解释一下Find函数(查找某个文本在被查找文本中的位置)

=Find(查找的文本,在哪里查找)

第一步:

本案例中FIND(A2:A5,D2)是分别将A列的内容去D2单元格里面找,对应的返回值是{#VALUE!;#VALUE!;#VALUE!;3},查找的是数组,返回的也是数组,除了第四个,其它都是返回值均为错误,即没有找到。

第二步:

0/(FIND(A2:A5,D2)),用0除以Find函数的返回值,则前三个返回值依旧是错误,第四个返回值是0,返回值:{#VALUE!;#VALUE!;#VALUE!;0}

第三步:

将第二个和第三个参数代入公式

=LOOKUP(1,{#VALUE!;#VALUE!;#VALUE!;0},{4;5;3;6})

由于第二个参数的前面三个都是错误,所以模糊匹配后唯一的返回结果就是6了!

以上就是假模糊匹配的全部内容!

感谢各位朋友的关注!

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2017-03-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏horstxu的博客

一图弄懂ASCII、GB2312、GBK、GB18030编码

最近项目中涉及到了解析文件内容的需求,文件中全都是中文,由于这一过程中碰到的乱码问题实在过多,所以特地花时间研究了一下中文编码。本文中先介绍一下ASCII,GB...

3715
来自专栏zingpLiu

python基础(一)

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚...

612
来自专栏菩提树下的杨过

不伦不类的Action Script 3.0

因工作需要,有可能要接手以前一位Flash程序员同事的代码,今天看了下Action Script 3.0,发现这玩意儿真的有点那个啥... 打开Flash C...

1709
来自专栏移动端开发

快速排序OC、Swift版源码

前言: 你要问我学学算法在工作当中有什么用,说实话,当达不到那个地步的时候,可能我们不能直接的感觉到它的用处!你就抱着这样一个心态,当一些APP中涉及到算法...

1998
来自专栏Flutter入门

有趣的正则表达式

听到正则表达式,大家一定不会陌生。工作项目中也经常使用正则表达式来校验文本的是否匹配规则。通常都会直接上网找寻各种格式输入的正则匹配式。比如电话/邮件等等。

823
来自专栏JackieZheng

初探JavaScript(四)——作用域链和声明提前

前言:最近恰逢毕业季,千千万万的学生党开始步入社会,告别象牙塔似的学校生活。往往在人生的各个拐点的时候,情感丰富,感触颇深,各种对过去的美好的总结,对未来的展望...

1805
来自专栏一“技”之长

Swift专题讲解二十二——泛型 原

        泛型是Swift语言强大的核心,泛型是对类型的抽象,使用泛型开发者可以更加灵活方便的表达代码意图。我们知道,有参函数的参数必须有一个明确的参数类...

441
来自专栏鸿的学习笔记

Go语言的“Hello World”

一直对Go语言很好奇,周末有空研究了下Golang,首先能在电脑上跑出“Hello World!”:

662
来自专栏HTML5学堂

JavaScript实现十进制转换成二进制

HTML5学堂:平时大家在写JavaScript效果的时候,可能会比较少接触二进制、八进制,经常使用的是十进制。计算机中的二进制则是一个非常微小的开关,用“开”...

2748
来自专栏菜鸟前端工程师

JavaScript学习笔记021-常用排序算法

342

扫描关注云+社区