[英]Excel: Extracting a full number from a cell - bringing it all together :)
首先,谢谢所有帮助我达到这一点的人。 我好亲密! 对于这种情况,我预先表示歉意,但这项工作正在进行中。
我在一个单元格中有文本,我需要提取一个数字。 棘手的部分是要解决各种情况。
该数字可能紧跟在“#”之后,并且长度可能有所不同。
Stack Overflow上的人员帮助我提出了这个效果很好的方法:
MID(B2,(FIND("#",B2,1)+1),FIND(" ",B2,FIND("#",B2,1)+1)-FIND("#",B2,1))
这是一个巨大的飞跃,但是在某些情况下,没有#号,并且单元格可能有“ 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.