问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FILTER函数与REGEXP正则表达式结合使用:高级筛选技巧

创作时间:
作者:
@小白创作中心

FILTER函数与REGEXP正则表达式结合使用:高级筛选技巧

引用
1
来源
1.
http://www.360doc.com/content/25/0322/08/71724636_1149581011.shtml

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,刚开始是挺难的,但重复的次数多了总会成为习惯,先从坚持一星期开始,你会爱上那种脑子又累,又无限充实的感觉。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号