繁体   English   中英

Excel:从单元格中提取一个完整的数字-将所有数字组合在一起:)

[英]Excel: Extracting a full number from a cell - bringing it all together :)

首先,谢谢所有帮助我达到这一点的人。 我好亲密! 对于这种情况,我预先表示歉意,但这项工作正在进行中。

我在一个单元格中有文本,我需要提取一个数字。 棘手的部分是要解决各种情况。

  1. 该数字可能紧跟在“#”之后,并且长度可能有所不同。
    Stack Overflow上的人员帮助我提出了这个效果很好的方法:

     MID(B2,(FIND("#",B2,1)+1),FIND(" ",B2,FIND("#",B2,1)+1)-FIND("#",B2,1)) 
  2. 这是一个巨大的飞跃,但是在某些情况下,没有#号,并且单元格可能有“ abc(1205)645 chan”,因此我需要提取645。

我在下面将其与on错误语句结合使用,以了解何时不存在“#”

TRIM(MID(B53,(FIND(" " &{"1","2","3","4","5","6","7","8","9"},B53,1)),FIND(" ",B53,FIND({"1","2","3","4","5","6","7","8","9"},B53,1))-FIND({"1","2","3","4","5","6","7","8","9"},B53)))

因此,我使用第一个Mid / Find来避免(1205),并找到下一个“ x”,其中x是数字。 问题是,当我搜索的数字中包含1或3+个数字时,我似乎遇到了麻烦,但是如果包含2,我返回的值就很好。

看来我已经很近了,但还没到那儿。

该公式将返回字符串中#)后面的数字。 如果该模式不存在,它将返回#NUM!`错误。

=AGGREGATE(14,6,--MID(A1,MIN(FIND({"#",")"},A1&"#)"))+1,{1,2,3,4,5}),1)

请注意,数组常量作为MID函数的num_chars参数。 最大数量应至少为最大位数(或十进制+位数)加上定界符与第一位数之间的任何空格(可能会发现)。

编辑 :如果您的Excel版本是2010之前的版本,并且没有AGGREGATE函数,则可以使用此数组输入的公式代替,只要要返回的值将为正数即可:

=MAX(IFERROR(--MID(A1,MIN(FIND({"#",")"},A1&"#)"))+1,{1,2,3,4,5}),0))

必须在按下Enter键的同时按住ctrl + shift键来输入此公式

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM