excel如何提取出混合文本中的固定位数的连续数字?
发布网友
发布时间:2022-04-21 06:09
我来回答
共2个回答
热心网友
时间:2022-06-18 10:05
固定位数?是指取A2中20位数的那一串数字吗?如果不是,请说明是指什么?如果是,B2用下面的数组公式,输完后按下CTRL+SHIFT+ENTER生成数组公式:
(公式作用:不管还有其它什么中文字,取出A2中20位数的那一串数字,如果有多个20位数以上的数字串,那么取第一个数字串。)
B2公式:=MID(A2,SMALL(IFERROR(IF(--MID(A2,ROW(1:99),20),ROW(1:99),),""),1),20)
热心网友
时间:2022-06-18 10:05
20位数字?如果有超过20位连续数字如何取?取最前头的还是最后头的?下面的公式是最后头的。
B2=IFERROR(LOOKUP(,0/MID(A2&"a",ROW($1:$100),20),MID(A2&"a",ROW($1:$100),20)),"")
追答如果要提取前头的,公式如下:
B2=IFERROR(MID(A2,MATCH(,0/MID(A2&"a",ROW($1:$100),20),),20),"")
最多只会出现20位数字,也可以用这个公式,比前面回答的公式稍短一些。
为简化公式,两个公式中都用了原数据后连一个文本字符(公式中用的&a),就是为了当数字在最后面时,不管多少位,MID最后都会取最后一位数字,用0去除会得到0,从而取出最后取一位数字。而简单加一个文本(不一定要是a,任意文本均可),取20位时就会把这个文本也取上,避免出现上述现象。
根据击掌庆贺的评论,不妨再就两个公式说明下公式的意思:
第1个公式:原数据(A2)后面连上一个文本(这里是a),再从第1位开始,到第100位,均用MID取出20个字符,如果A2中的数据没有这么长,也没关系,MID的结果就是一个“空”,而最后一个实际的数据就是最后一个字符,再往前2个字符,3个,等等。这里不妨假设3种情况:
一、里面正好只有一个20位数字,那么只有从它的第1位取出的才全是数字(20个)其他或数字在后,或在数字在前,总会含有文本。
二、少于20位的数字,那么MID取出含有数字的20个字符中一定会含有文本。
三、有多于20位的数字,那么从第1位数字起,就会取出多个20位的数字,直到最后一个数字取出时排存第20位。
无论哪种情况,用0去除它们,只有是20位数字时,得到的结果才会是0(数字),其余都是错误值。再用LOOKUP去找到这个出现0的位置(有多个0时,找到最后一个),对应的位置就是需要取出的20位数字(所以说多于20位时或多个20位数字时,取到最后面的)
第二个公式:改用MATCH去精确找0的位置,会找到第1个出现的位置,再从这个位置开始,用MID取20位,当然就是20位数字了。所以这个公式取得最先出现的20位数字,如果正好一个20位数字,这个公式也是一样取出。
总之两个公式的核心价值就是最后连接一个文本字符!