开脑洞!用正则函数实现反向查找、多条件查找、筛选、求和

龙逸凡

WPS产品体验官

正则表达式只能用来匹配文本?

正则表达式只能增删改查?

NO,NO,NO!

你太小看这个“文本魔法师”的威力了!

今天,龙逸凡要打破常规,探索正则表达式的创意玩法——用Regexp函数,结合 Concat 函数,再加上一点点想象力,它就能化腐朽为神奇,让Regexp函数变得前所未有的灵活和高效!

它:

不仅能正向匹配,还能反向查找,让Xlookup下岗;

不仅能单条件筛选,还能象Filter一样批量筛选;

不仅能简单搜索,还能象Lookup一样多条件查找

本文示例文件下载地址在文末。

用Regexp函数实现反向查找

需求:

用公式在B3:C6单元格区域,查找B10单元格图书的ISBN号

添加图片注释,不超过 140 字(可选)

先来看普通公式,lookup三兄弟悉数登场:

=VLOOKUP(B10,IF({1,0},C3:C6,B3:B6),2,0)

=LOOKUP(1,0/(C3:C6=B10),B3:B6)

=XLOOKUP(B10,C3:C6,B3:B6,,0)

现在,我们发挥一点想象,将B3:C6单元格区域拼成一段字符,然后用正则函数Regexp来匹配指定图书前的书号。

公式:

=REGEXP(CONCAT(B3:C6),"\d+(?="&B10&")")

用Regexp函数筛选、条件求和

需求:

筛选B3:C11单元格区域中E3单元格中商品对应的数量。

公式:

=REGEXP(CONCAT(B3:C11),E3&"\K\d+")

添加图片注释,不超过 140 字(可选)

如果要转为纵向,用TOCOL或TRANSPOSE函数

=TRANSPOSE(REGEXP(CONCAT(B3:C11),E3&"\K\d+"))

添加图片注释,不超过 140 字(可选)

如果要对其条件求和,先用--转成数字,再在外面套上SUM

=SUM(--REGEXP(CONCAT(B3:C11),E3&"\K\d+"))

添加图片注释,不超过 140 字(可选)

批量筛选多个

公式:

=TEXTJOIN("、",0,REGEXP(CONCAT(B3:C9),"\w+(?="&E3&")"))

添加图片注释,不超过 140 字(可选)

公式

=TEXTJOIN("、",0,REGEXP(CONCAT(B3:C9),"\w+(?="&SUBSTITUTE(E3,"、","|")&")"))

添加图片注释,不超过 140 字(可选)

用Regexp函数多条件查找

多条件查找

列出所有结果:

=--REGEXP(CONCAT(B3:D11),G3&H3&"\K\d+")

添加图片注释,不超过 140 字(可选)

只列出第一个结果:

=--REGEXP(CONCAT(B3:D11),"^.*?"&G3&H3&"\K\d+")

只列出最后一个结果:

=--REGEXP(CONCAT(B3:D11),".*"&G3&H3&"\K\d+")

列出指定的第N个结果

=INDEX(--REGEXP(CONCAT(B3:D11),G3&H3&"\K\d+"),2)

其他应用--查户口

公式:

=REGEXP(REGEXP(TEXTJOIN("、",,A2:B31),F2&"、户主\K.*?(?=、[^、]+、户主|$)"),"、?\K[^、]*")

添加图片注释,不超过 140 字(可选)

还有哪些开脑洞的用法?欢迎留言告知

本文示例文件下载:

扫描或长按下面的二维码下载。建议先转存到自己的网盘,以免文件失联。

本文收录于正则表达式文章合集,欢迎免费订阅

重庆
浏览 240
2
10
分享
10 +1
2
2 +1
全部评论 2
 
Tam Kingsley

创作者俱乐部成员

跟老师学习~
· 广东省
回复
 
点赞学习
· 广东省
回复