历史版本13 :提取字符串中的数字 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

有时候我们希望从目标字符串中提取出所有的数字,重新组合成一个字符串,如下图所示:
2020-12-28_15-23-33.jpg

1.2. 实现思路

方案一:

先将字符串分割成数组,再对数组每一项进行筛选,保留下数字,最后以字符串输出。

1)先利用 split( ) 函数进行分割,这里要分割每一项,所以分割符为空:=split(目标字符串,""),如下图所示:
222

2)利用 GREPARRAY( ) 函数对上一步结果进行筛选,这里使用了 regexp( ) 函数来判断是否是数字:=GREPARRAY(上一步结果, regexp(item, "[0-9]")),如下图所示:
222
3)使用 JOINARRAY( ) 函数将数组以字符串方式输出,拼接符为空:=JOINARRAY(上一步结果, ""),如下图所示:
222

4)综合起来,公式就是=JOINARRAY(GREPARRAY(split(目标字符串, ""), regexp(item, "[0-9]")), ""),如下图所示:
222

方案二:

使用公式:JOINARRAY(split('a1B2Cc3','\\D'),'')

公式说明:SPLIT 函数的第二个参数支持支持正则表达式作为间隔,因此这里的 \\D 表示的是匹配一个非数字字符,然后再用JOINARRAY( ) 函数将数组以字符串方式输出,拼接符为空。

注:若您使用的是 11.0.5 以及之后的版本,可以直接使用 TEXTGETNUM 函数。

2. 示例编辑

注:本文以方案一为示例。

2.1 模板设计

1)将数据集字段拖到单元格 A2 ,如下图所示:

2020-12-28_15-08-32.jpg

2)依次选中 B2~E2 单元格,设置形态公式,如下表所示:

单元格公式作用
B2
split(A2,"")用 split( ) 函数进行分割
C2GREPARRAY(B2, regexp(item, "[0-9]"))用 GREPARRAY( ) 函数对上一步结果进行筛选,这里使用了 regexp( ) 函数来判断是否是数字
D2JOINARRAY(C2, "")用 JOINARRAY( ) 函数将数组以字符串方式输出
E2JOINARRAY(GREPARRAY(split(A2, ""), regexp(item, "[0-9]")), "")整合B2~D2公式

2020-12-28_15-22-40.jpg

2.2 效果预览

1)PC端

保存模板,点击分页预览,如下图所示:

2020-12-28_15-23-33.jpg

2)移动端

1609140366634332.jpg

3. 模板下载编辑

点击下载模板:提取字符串中的数字.cpt