Excel如何从字符串中分别提取前两段连续数字?

Excel如何从字符串中,分别提取前两段连续数字字符,到两个单元格内?
注意此字符串包含任意ASCII码字符,长度10位以内,必包含两段及以上连续数字字符
如:A1值可能为如下两例:
例一:
ue04/^(%53%hws965
例二:
27%*08
需要得到结果:
例一的B1值为04 C1值为53
例二的B1值为27 C1值为08
注意:A1中除数字字符以外的字符可能为运算符、标点、字母(替换成同类型字符时不影响计算结果,空值导致两段数值变成一段的情况除外)
请将公式写出来,谢谢

第1个回答  推荐于2016-06-07
=-LOOKUP(1,-MID($A1,SMALL(IF(MMULT(1*ISERR(-MID($A1,ROW($1:$90)+{0,1},1)),{1;-1})=1,ROW($2:$91)),COLUMN(A1)),COLUMN($A:$O))),,右拉
或者
=LOOKUP(9E+307,--MID(A1,SMALL(IF(ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-2,3))*ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-1,2))*MMULT(N(ISNUMBER(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),{1,2,3}))),{1;1;1}),ROW(INDIRECT("1:"&LEN(A1)))),2),ROW(INDIRECT("1:"&LEN(A1)))))追问

两个例子带入后好像都不怎么对诶,特别是用在第二个例子的时候完全不对

例一:

例二:

另一个公式:

追答

B1=LOOKUP(9E+307,--MID(A1,SMALL(IF(ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-2,3))*ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-1,2))*MMULT(N(ISNUMBER(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),{1,2,3}))),{1;1;1}),ROW(INDIRECT("1:"&LEN(A1)))),1),ROW(INDIRECT("1:"&LEN(A1))

C1=LOOKUP(9E+307,--MID(A1,SMALL(IF(ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-2,3))*ISERROR(-MID(A1,ROW(INDIRECT("1:"&LEN(A1)))-1,2))*MMULT(N(ISNUMBER(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),{1,2,3}))),{1;1;1}),ROW(INDIRECT("1:"&LEN(A1)))),2),ROW(INDIRECT("1:"&LEN(A1))

本回答被提问者采纳
第2个回答  2014-12-06
可以,先用find 函数找到与查找字符的位置,再用LEFT函数提取出来。
相似回答