今天给大家分享两个提取函数~
1. TEXTSPLIT函数万能提取
套路公式:
=TEXTSPLIT(单元格,TEXTSPLIT(单元格,提取参数,,1,1,""),,1,1,"")。
说明:
用两个TEXTSPLIT函数进行嵌套。需要提取什么数据,就将什么数据组成填写在“提取参数”里。如果数据组成是常量,可以使用“{“参数1”,”参数2”,……}”的形式。
1)提取数字
比如下面表格,需要将其中的数字全部提取出来。这些数字的组成就包括0~9的阿拉伯数据,还有小数点、负号,可以写成:
{"0","1","2","3","4","5","6","7","8","9",".","-"}
因此,在B2输入公式下拉填充即可:
=TEXTSPLIT(A2,TEXTSPLIT(A2,{"0","1","2","3","4","5","6","7","8","9",".","-"},,1,,""),,1,,"")
2)提取英文字母
英文字母有26个,如果写成常量数组太繁琐。此处可以用CHAR(ROW($97:$122))函数来表达从A到Z的26个字母。
因此,在B2输入公式即可则提取英文:
=TEXTSPLIT(A2,TEXTSPLIT(A2,CHAR(ROW($97:$122)),,1,1,""),,1,,"")
D5之所以是错误值,是因为A5中没有英文字母。
用TEXTSPLIT套路公式还是繁琐了点,可以用WPS最新函数正则表达式函数REGEXP。
2. REGEXP函数万能提取——无须嵌套
公式:=REGEXP(A2,"正则表达式")
说明:REGEXP是WPS最新版本中才有的。需要根据提取数据的类型编写正则表达式。
在B2输入“=REGEXP(A2,"[0-9.-]+")”下拉填充即可提取数字。使用正则表达式“[0-9.-]+”匹配所有整数和小数。
提取英文则输入“=IFERROR(REGEXP(A2,"[A-z]+"),"")”。使用正则表达式“[A-z]+”匹配所有的大小写字母。
提取中文输入“=IFERROR(REGEXP(A2,"[一-龥]+"),"")”。
一是中文的第一个Unicode编码,“龥”(读“yù”)是中文最后一个Unicode编码,[一-龥]+可指代所有汉字。如果不提取生僻字,也可以使用“[一-龟]+”替代,更方便输入。
好了,今天的分享就到这里,欢迎大家在评论区评论哦~