反馈已提交

网络繁忙

提取字符串中的数字

  • 文档创建者:axing
  • 历史版本:13
  • 最近更新:Leo.Tsai 于 2022-06-29
  • 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

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持