当前位置: 欣欣网 > 办公

吊打Textsplit、脚踢Text,新函数Regexp到底有多牛?

2024-06-22办公

兰色收到一个同学提问:

如下图所示要求把左侧考核表中的正数和负数分别提取出来求和。如

1+3+9+6= 19

-3-6-4-5=- 18

这个问题看上去也不太难,好象可以用分列或一般的截取函数就可以搞定,但....如果你仔细看就会发现,其中难题不好办:一个格式有多行内容,如上图左侧的蓝色单元格中,需要提取出3个数字。

兰色拿出看家本领,用textsplit +text函数写了2个看上去很绝妙的公式

正值和:

=SUM(--TEXT(TEXTSPLIT(CONCAT(C3:C6),,{"(","分"}),"0;!0;;!0"))

负值和

=SUM(--TEXT(TEXTSPLIT(CONCAT(C3:C6),,{"(","分"}),"!0;-0;;!0"))

用textsplit拆分,再用text分别提取出正值和负值,这简直是一个天才的思路。

当兰色正自我淘醉时,一个新函数的出现让兰色自豪受到暴击。它就是正则函数,在WPS它是 Regexp ,而在excel中则分身为3兄弟( 提取、替换和判断

一起看看用正则函数有多简单

一、在 WPS表格 中公式

正值求和

=SUM(--REGEXP(CONCAT(B2:B5)," \+ \d+"))

负值求和

=SUM(-- REGEXP (CONCAT(B2:B5)," \- \d+ "))

注: \+ ,因为+是特殊符号前面需要添加\转换普通字符, \d+ 是任意长度整数

二、在Excel表格中公式

=SUM(-- REGEXEXTRACT (CONCAT(C3:C6),"\+\d+", 1 ))

和WPS的区分别,需要用 REGEXEXTRACT函数, 最后的参数 1 表示提取所有符合条件的,省略时只提取第1个。

兰色说 学过编程的同学都知道,正则表达式功能超级强大,同时规则也多的吓人,所以本文的示例只能算入门中的入门层级,想完全学会,需要几个月功夫。另,这个函数目前只能在office365预览版和WPS内测版( 买过四合一大全套的同学去群里下载WPS内测版的安装程序 )中可用。

兰色根据多年经验,录制了一全套适合新手和初中级阶段用户学习的Excel教程。包括 Excel表格92个函数用法 119个使用技巧 透视表从入门到精通50集 图表从入门到精通185集 。详情点击下方链接