Excel:从一个单元格中提取一个完整的数字 - 将它们全部组合在一起:)

时间:2017-02-15 12:00:44

标签: excel excel-formula

首先,谢谢大家如何帮助我实现这一目标。我太近了!对于我事先道歉的场景,这是一项正在进行中的工作。

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

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

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

  3. 我在下面使用这个,与没有“#”时的错误声明一起使用

    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,我就返回该值就好了。

    我似乎非常接近,但还没有。

1 个答案:

答案 0 :(得分:0)

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

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

请注意数组常量为num_chars函数的MID参数。最大数量应该至少是最大的位数(或十进制+数字)加上分隔符和第一个数字之间的任何空格,这些空格可能是预期的。

编辑:如果您的Excel版本早于2010年且没有AGGREGATE功能,则可以使用此数组输入公式代替,只要要返回的值是正数:

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

必须输入 ctrl + shift 输入

enter image description here