万能文本函数REGEXP! wps表格中混乱数据处理除了textsplit函数用它也不错
脚本之家
正则表达式的基础外壳函数(wps版):
REGEXP函数是基于正则表达式,对复杂文本进行匹配、提取和替换的函数。
基本语法结构:
REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])
匹配模式是可选项,0或忽略表示提取,1表示判断是否包含,2表示替换。
替换内容是可选项,仅在匹配模式为2时有效,用来替换匹配的内容。
我们通过编写不同的正则表达式来实现不同的复杂需求。
今天我们来简单讲讲REGEXP函数使用正则表达式是如何玩转分列或分行效果的。
以前我们没接触过正则表达式的时候,常用的就是TEXTSPLIT拆分函数了。
1.按列拆分
输入公式:
=TEXTSPLIT(A2,",")
使用TEXTSPLIT函数,用列分隔符逗号“,”,将A2单元格中的数据拆分到一行多列不同单元格内,实现分列效果。
2.按行拆分
输入公式:
=TEXTSPLIT(A5,,",")
使用TEXTSPLIT函数,跳过第二参数后用行分隔符逗号“,”,将A2单元格中的数据拆分到一列多行不同单元格内,实现分行效果。
当我们掌握了WPS表格的正则表达式函数REGEXP后,就又多了一种解决问题的方法,在周围同事面前又可以“炫技”啦!
1.按列拆分
输入公式:
=REGEXP(A2,"[^,]+")
- [^abc]:匹配非a、b、c的字符。
- [^,]:表示匹配不是逗号“,”的其他字符。
此时匹配出来的是A2单元格内除逗号之外的全部单个字符,分散在不同单个单元格中。
- +:重复前面元素的1次或多次
- [^,]+:就可以将除逗号之外的多段连续字符放置在同一单元格了。
此时,我们实现了分列效果。
2.按行拆分
单凭REGEXP函数能力有限,无法单打独斗实现分行。
我们这样输入公式:
=TOCOL(REGEXP(A5,"[^,]+"))
仍然是利用REGEXP(A5,"[^,]+")首先实现分列。然后再借助TOCOL函数将一行数据转换为一列数据。
TOCOL函数是一个强大的二维数组转单列函数。
有的小伙伴可能还会遇到分隔符是强制换行符的情况,那么这时候我们应该这么做。
1.按强制换行符分列。
输入公式:
=REGEXP(A2,"\N+")
- \N:代表除强制换行符之外的其他数据。
- +:代表重复前面元素的1次或多次
利用"\N+"可以将除强制换行符之外的其他多段连续数据放置到一行多列不同单元格中。
2.按强制换行符分行。
输入公式:
=TOCOL(REGEXP(A2,"\N+"))
只需要利用TOCOL二维数组转单列函数,将上一步中分列显示的数据转换为一列即可。
推荐阅读: