excel|精心整理Excel从文本中提取指定字符的4种案例!( 四 )


  • 最终使用substitute函数去除指定的符号 , 就提取完成了 。
  • 如果只想提取字母或者数字 , 则使用下面的公式:
    只提取大小写字母的数组公式 , 请使用数组三键CTRL+SHIFT+回车确认公式:
    =CONCAT(    IF(        (            (CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))>=65)*(CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))<=90)            )+(            (CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))>=97)*(CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))<=122))        MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1)        \"\"      )      )
    如果只提取数字 , 则数组公式如下:
    =CONCAT(    IF(        (CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))>=48)*(CODE(MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1))<=57)      MID(A2ROW(INDIRECT(\"1:\"&LEN(A2)))1)      \"\"      )      )


    「从字符串中单独提取字母或数字公式原理解析:」
    1. 上面的提取字母和数字 , 都使用了相同的原理 , 那就是code函数 , 对不同字符的对应编码 , 其中数字0到9 , 编码为48到57 , 大写字母A到Z , 编码为65到90 , 小写字母a到z , 编码为97到122 。
    2. 公式是数组公式 , 使用了mid将字符串拆分成单独的字符 , 再通过code函数得到编码 , 与对应编码对比 , 区分字母和数字 , 最终通过if函数判断保留字母或数字 , 使用concat函数将保留的字符拼接在一起 。
    3. 其中用到了sequence序列函数用法以及filter函数的多条件式判断 , 建议在以溪主页 , 查看对应文章 , 深入了解 。
    如果用数组公式觉得太麻烦 , 也可以使用Excel插件来提取字符 , 如果你会编写正则表达式 , 那无论是多奇怪的字符 , 都可以通过插件运行正则表达式提取指定的字符出来 。
    插件提取方法路径如下:
    方方格子-高级文本处理-更多

    同时在提取更多里面 , 还支持提取链接以及之前说的拆分地址 。

    在高级提取功能里 , 支持额外4种提取需求 , 如图所示 。

    以上 , 就是以溪总结的文本字符串提取的相关案例 , 如果你有实际需求没有在以上案例 , 可以留言讨论 。