Excel:从单元格中提取一个完整的数字 – 把它们放在一起:)

首先,感谢所有帮助我达到这一点的人。 我好亲近 谈到我提前道歉的情况有点工作正在进行中。

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

  1. 该号码可以紧跟在“#”之后,并且可以在长度上变化。
    堆栈溢出的人帮助我想出了这个伟大的工作:

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

我将下面的这个和错误语句一起使用,当没有“#”

 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),并find下一个“x”,其中x是一个数字。 问题是我似乎遇到了麻烦,当我search的号码有1或3+数字,但如果它有2我返回值就好了。

看来我非常接近,但还没有。

此公式将返回string中跟随#或a )的数字。 如果该模式不存在,则会返回#NUM!错误

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

请注意数组常量作为MID函数的num_chars参数。 最大数量应该至less是最大数字位数(或十进制数字),加上分隔符和第一个数字之间的空格,可能会被发现。

编辑 :如果您的Excel版本是2010年之前,并没有AGGREGATE函数,您可以使用此数组input的公式,而只要返回的值将是正数:

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

这个公式必须在按下回车键的同时按住Ctrl + Shift键 进入

在这里输入图像描述