金山WPS

关注公众号 jb51net

关闭
软件教程 > 办公软件 > 金山WPS >

根据简称查询全称太香了! wps中regexp+vlookup公式使用技巧

脚本之家

粉丝求助SOS:如何根据简称,在数据源中将全称查找出来?

我们用一个例子,来做说明。如下图所示:A列是某些国家的全称,也就是数据源。C列是已知的国家名称的简称,我们想要通过C列的简称,将A列中对应的全称查找出来,显示在D列。

我们用REGEXP正则表达式函数+VLOOKUP经典查找函数,组合使用,轻松拿捏这个问题。

首先输入REGEXP正则表达式函数:

=REGEXP(C2,"()")

正则表达式 "()" 的核心作用:

() 在正则中用于分组捕获,但内部为空时,实际匹配的是字符串中的空位置。例如:字符之间的间隙。

以C2单元格为例:捕获到的位置就是以下4个位置,即字符与字符之间的间隙处。

继续完善公式:

=REGEXP(C2,"()",2,"*\1")

我们由REGEXP函数默认的“提取”模式,更改为“替换”模式,即设置第3参数为“2”(替换模式)。

替换为:"*\1"。

所以替换前与替换后的效果如下图所示:

替换前:字符之间的间隙

替换后:在间隙处加上了*

而我们都知道“*”在Excel中表示“通配符”的意思,即代表任意的多个字符,

所以在“俄罗斯”的每个字符的前面或后面都可以拥有任意字符的可能性,当然也包括了“俄罗斯联邦”的这种可能。

综上所述,最后嵌套VLOOKUP查询即可:

=VLOOKUP(REGEXP(C2,"()",2,"*\1"),A:A,1,0)

查询REGEXP函数的返回结果,在A:A区域中,第1列位置所对应的数据(全称)。

推荐阅读:万能文本函数REGEXP! wps表格中混乱数据处理除了textsplit函数用它也不错