开脑洞!用正则函数实现反向查找、多条件查找、筛选、求和
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 字(可选)
还有哪些开脑洞的用法?欢迎留言告知
本文示例文件下载:
扫描或长按下面的二维码下载。建议先转存到自己的网盘,以免文件失联。
本文收录于正则表达式文章合集,欢迎免费订阅
创作者俱乐部成员