快速筛选符合要求的用户! excel表格中用FILTER+REGEXP正则表达式
FILTER函数在Excel或WPS表格中一个超级智能筛子,下面我们通过一个简单的案例领会它的强大之处。
微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新
- 类型:办公软件
- 大致:2.2GB
- 语言:简体中文
- 时刻:2024-09-12
查看详情
如下图所示:
A1:B7区域是客户与电子邮箱登记表。A列是客户名称,B列是邮箱地址,很简单。
我们要做的就是:将域名部分是163邮箱的,并且邮箱用户名部分是11位手机号码的,这种类型的电子邮箱地址筛选出来,筛选结局显示到D:E列。
正则表达式的基础外壳函数(wps版):
REGEXP函数是基于正则表达式,对复杂文本进行匹配、提取和替换的函数。
基本语法结构:
=REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])
匹配模式是可选项,0或忽略表示提取,1表示判断是否包含,2表示替换。
替换内容是可选项,仅在匹配模式为2时有效,用来替换匹配的内容。
第一步:正则判断
我们可以这样输入函数:
=REGEXP(B2:B7,"^1[3-9]d9}@163.com$")
REGEXP函数的第一参数B2:B7是要处理的单元格区域。
第二参数是正则表达式的书写方式:
符号^代表以此符号后面的字符开始。符号[3-9]是数字3~9中的任意一个。d代表任意的数字,9}代表前面元素重复9次。
- ^1[3-9]d9}:表示以数字1开头且第2位数字是3~9范围内的,后面再连接9位任意的数字。这样就可以代表大陆地区合法的11位手机号码了。
- .表示转义.(点),由于这个.在正则中代表匹配任意单个字符(除换行符),想要变成真正意义上的标点符号.,必须用转义。
- $表示以该符号前面的字符串结束。
- @163.com$表示以@163.com小编觉得的邮箱。
- ^1[3-9]d9}@163.com$:整体就可以代表域名是163邮箱,并且邮箱用户名部分是11位手机号码的这种类型的邮箱。
REGEXP函数的第三参数省略了,默认是0,表示提取,因此符合这种类型邮箱格式的邮箱就被提取出来了,反之则返回错误值。
我们可以将REGEXP函数的第三参数设置为1:
=REGEXP(B2:B7,"^1[3-9]d9}@163.com$",1)
这样就是判断模式了,符合这种格式的邮箱就会返回判断结局TRUE,反之则会返回FALSE。
FILTER函数的定义与功能:
FILTER函数是Excel和WPS表格工具中的一种动态数组函数,核心功能是根据指定条件从数据区域中筛选出符合条件的记录。
FILTER函数语法为:
=FILTER(数组, 条件, [无结局时的返回值])
- 数组:需要筛选的数据区域
- 条件:逻辑表达式
无结局时的返回值(可选):当无匹配数据时显示的内容
第二步:筛选
我们可以输入函数公式:
=FILTER(A2:B7,REGEXP(B2:B7,"^1[3-9]d9}@163.com$",1))
FILTER函数会自动筛选B2:B7区域的数据,当第二参数条件为逻辑值TRUE真值的时候,执行对应行的筛选。这样会筛选出所有域名是163邮箱,并且邮箱用户名部分是11位手机号码的这种类型的邮箱。
推荐阅读:
- excel中怎么使用filter函数 Excel函数FILTER的三种实用技巧
- excel表格中FILTER+SORT函数实现动态排序筛选的技巧