FILTER函数与REGEXP正则表达式结合使用:高级筛选技巧
FILTER函数与REGEXP正则表达式结合使用:高级筛选技巧
FILTER函数在Excel或WPS表格中是一个超级智能筛子,下面我们通过一个简单的案例理解它的强大之处。
案例背景
如下图所示:
A1:B7区域是客户与电子邮箱登记表。A列是客户名称,B列是邮箱地址,很简单。
我们的目标是:将域名部分是163邮箱的,并且邮箱用户名部分是11位手机号码的,这种类型的电子邮箱地址筛选出来,筛选结果显示到D:E列。
正则表达式基础
REGEXP函数是基于正则表达式,对复杂文本进行匹配、提取和替换的函数。
基本语法结构:
=REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])
匹配模式是可选项,0或忽略表示提取,1表示判断是否包含,2表示替换。
替换内容是可选项,仅在匹配模式为2时有效,用来替换匹配的内容。
第一步:正则判断
我们可以这样输入函数:
=REGEXP(B2:B7,"^1[3-9]\d{9}@163\.com$")
REGEXP函数的第一参数B2:B7是要处理的单元格区域。
第二参数是正则表达式的书写方式:
- 符号^代表以此符号后面的字符开始。
- 符号[3-9]是数字3~9中的任意一个。
- \d代表任意的数字,{9}代表前面元素重复9次。
- ^1[3-9]\d{9}:表示以数字1开头且第2位数字是3~9范围内的,后面再连接9位任意的数字。这样就可以代表大陆地区合法的11位手机号码了。
- .表示转义.(点),因为这个.在正则中代表匹配任意单个字符(除换行符),想要变成真正意义上的标点符号.,必须用\转义。
- $表示以该符号前面的字符串结束。
- @163.com$表示以@163.com结尾的邮箱。
- ^1[3-9]\d{9}@163.com$:整体就可以代表域名是163邮箱,并且邮箱用户名部分是11位手机号码的这种类型的邮箱。
REGEXP函数的第三参数省略了,默认是0,表示提取,所以符合这种类型邮箱格式的邮箱就被提取出来了,反之则返回错误值。
我们可以将REGEXP函数的第三参数设置为1:
=REGEXP(B2:B7,"^1[3-9]\d{9}@163\.com$",1)
这样就是判断模式了,符合这种格式的邮箱就会返回判断结果TRUE,反之则会返回FALSE。
FILTER函数的定义与功能
FILTER函数是Excel和WPS表格工具中的一种动态数组函数,核心功能是根据指定条件从数据区域中筛选出符合条件的记录。
FILTER函数语法为:
=FILTER(数组, 条件, [无结果时的返回值])
- 数组:需要筛选的数据区域
- 条件:逻辑表达式
- 无结果时的返回值(可选):当无匹配数据时显示的内容
第二步:筛选
我们可以输入函数公式:
=FILTER(A2:B7,REGEXP(B2:B7,"^1[3-9]\d{9}@163\.com$",1))
FILTER函数会自动筛选B2:B7区域的数据,当第二参数条件为逻辑值TRUE真值的时候,执行对应行的筛选。这样会筛选出所有域名是163邮箱,并且邮箱用户名部分是11位手机号码的这种类型的邮箱。
学习建议
其实重复学习Excel,刚开始是挺难的,但重复的次数多了总会成为习惯,先从坚持一星期开始,你会爱上那种脑子又累,又无限充实的感觉。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。