lua 通配符查找 查找中的通配符_常见的通配符


在日常的excel数据处理中,经常会遇到一些模糊型的信息查找匹配,如名字包含"张"字查找等,这个时候常常需要用到Excel里面的通配符,本来将介绍通配符的含义以及常见的应用。

1 通配符的含义

通配符,顾名思义就是通用的匹配字符,它能够代替任意字符

主要有:

  • 问号(?)代表任意单个字符
  • 星号(*)代表任意多个字符
  • 波形符(~)代表波浪符右侧的通配符转换为普通字符(即不是作为通配符使用)

下面举些例子说明:


lua 通配符查找 查找中的通配符_常见的通配符_02


2 通配符的应用

1 查找&替换

例1 查找出联系方式为188开头,3456结尾的信息

因为联系方式都是11位数,所以这里可以用"188????3456"来进行文本查找,表示188开头,接着是4个任意字符,结尾是3456


lua 通配符查找 查找中的通配符_数据_03


那么问题来了,我们用"188*3456"进行查找可不可以呢,答案肯定是可以的

不过这里需要注意的是,因为Excel运用查找功能的时候,并不是默认按照单元格匹配,因此如果直接使用"188*3456"进行查找,就会出现以下情况


lua 通配符查找 查找中的通配符_数据_04


可以看到,得到的结果多了E11的"18834561000",是因为查找的时候,单元格只需要包含"188*3456"形式就可以了(模糊匹配),"*"用可以表示0个字符

那怎么样才可以避免这个问题,实现我们想要的效果呢,答案是选中选项,打勾单元格匹配,这样就实现了精准匹配,即完全等于,如图:


lua 通配符查找 查找中的通配符_函数参数_05


例2 删除资源里面的括号和字母

这里可以利用替换为空进行删除,删除括号和里面的值,因为每个值都不一样,所以需要利用通配符进行匹配,因为这里面的都是一个字母(单字符),因此直接用"(?)"进行匹配即可


lua 通配符查找 查找中的通配符_多列_06


例3 删除省份中的"*"符号

因为现在需要剔除的是"*",它本身含义是代表任意字符,要是直接将"*"替换成空,就会出现将单元格的值全部替换成空的情况,因此就需要利用"~"这个通配符,将"*"变成普通字符


lua 通配符查找 查找中的通配符_多列_07


2 用于函数参数

例4 计算资源中含有电信的个数


lua 通配符查找 查找中的通配符_函数参数_08


输入公式:=COUNTIF(B4:B11,"*电信*")

解读:countif函数的第一个参数是条件区域,第二个参数是区域对应的条件,这里的"*电信*"即表示包含电信这个词

例5 查找资源中含有杭州的联系方式


lua 通配符查找 查找中的通配符_常见的通配符_09


输入公式:=VLOOKUP("*杭州*",B3:E11,4,0)

解读:vlookup第一个参数是需要寻找的值,利用"*杭州*"可以表示包含杭州,第二个参数是寻找区域,第三个为列序数,即联系方式对应的列数,为第4列,第4个参数为匹配的方式,0(False)表示精准匹配

另外还有别的常用函数sumif、sumifs等也经常用到通配符进行模糊匹配,可以参考

直线:Excel_求和函数SUMIFS的应用zhuanlan.zhihu.com

lua 通配符查找 查找中的通配符_多列_10


3 用于高级筛选

先简单介绍以下高级筛选

作用:实现多条件("或"和"且")、多列联动筛选、筛选非重复的数据、把结果复制到其他区域或表格中等等复杂筛选功能

位置:【数据】-【排序和筛选】-【高级】

筛选原则:

  • 筛选条件的标题要和数据表中的标题一致
  • 筛选条件中的值在同一行表示“且”的关系
  • 筛选条件中的值在不同行表示“或”的关系

本篇主要介绍条件区域里面的通配符模糊匹配,更多详细的高级筛选内容,会在以后更新哟~

例6 筛选出"资源不含电信,且省份为广东"的信息

因为两个条件为"且"关系,根据原则2,需要把筛选条件中的值放在同一行;不包含电信,条件为"<>*电信*"

操作如下:


lua 通配符查找 查找中的通配符_数据_11


主要为三个参数,列表区域、条件区域以及复制到的位置,因为本篇采取数据不需要考虑数据重复问题,因此不需要剔除重复项,如有需要,点击框中的"选择不重复的记录"即可