从包含混合文本的单元格中提取数字

从包含混合文本的单元格中提取数字

如果我在 A 列中有这些内容:

   A

 om2222prakash 264737 suman 278
 kumar83566$ 267863; ravi0202;%43
 222gsranasjgjhjs56 djhdjdj58
 k4566hhhh23
 28.5ʺW × 33.0ʺD × 37.0ʺH
 W51.77 x D40.04 x H31.49
 W29.13 x D32.67 x H35.05

如何才能找出 A1、A2、A3 和 A4 中的数字数据?我使用的是 Microsoft Excel 2010,希望 B 列中的输出如下所示:

  B

2222,264737,278
83566,267863,0202,43
222,56,58
4566,23
28.5,33.0,37.0
51.77,40.04,31.49
29.13,32.67,35.05

答案1

我用正则表达式查找/替换插件在 Excel 中获得正则表达式功能。
(我与该工具没有任何联系,只是一个热心的用户。)

您可以在那里使用RegExReplace功能:

  • =RegExReplace(A1,"[^0-9]+",",")将所有非数字内容替换为,
  • =RegExReplace(B1,"^,?(.+[^,]),?$","$1")删除前导和尾随,

或者用一个公式来表示:
=RegExReplace(RegExReplace(A2,"[^0-9]+",","),"^,?(.+[^,]),?$","$1")

在此处输入图片描述

更新

为了正确管理小数,您需要稍微修改公式:

  • 仅保留数字和.
    =RegExReplace(A1,"[^0-9.]+",",")
  • 附加步骤:删除所有.不属于数字的部分:
    =RegExReplace(B1,"[,.]{2,}",",")
  • 最后一步保持不变:
    =RegExReplace(C1,"^,?(.+[^,]),?$","$1")

相关内容