Excel公式练习84:提取单元格中的10位数字

今天的练习是:如下图1所示的数据,每个单元格中包含由换行符分隔的3个数字,现在需要提取其中10位长的数字,如图1中的B列所示。

图1

先不看下面的答案,自已试试。

解决方案

公式1

可以试试下面的公式:

=LOOKUP(9E+307,--MID(A2,ROW(INDIRECT('1:'& LEN(A2)-9)),10))

该公式使用MID函数从单元格中的第1个数字开始依次取10位数,共14个数字,这14个数字中,由于有空格的存在,所以除单元格中的10位数外,其余都是9位数。然后使用LOOKUP函数在这些数字中进行查找,返回最大的一个数字,即单元格中的10位数。

公式2

试试下面的公式:

=MID(A2,SEARCH(CHAR(10)&REPT('?',10)&CHAR(10),CHAR(10)&A2&CHAR(10)),10)

在单元格中搜索前后都是空格且中间是10位数的数字。

公式3

试试下面的公式:

=IF(LEN(LEFT(A2,SEARCH(CHAR(10),A2,1)-1))=10,LEFT(A2,SEARCH(CHAR(10),A2,1)-1),IF(LEN(MID(A2,SEARCH(CHAR(10),A2,1)-1+2,FIND(CHAR(10),A2,FIND(CHAR(10),A2)+1)-(SEARCH(CHAR(10),A2,1)-1+2)))=10,MID(A2,SEARCH(CHAR(10),A2,1)-1+2,FIND(CHAR(10),A2,FIND(CHAR(10),A2)+1)-(SEARCH(CHAR(10),A2,1)-1+2)),IF(LEN(RIGHT(A2,LEN(A2)-FIND(CHAR(10),A2,FIND(CHAR(10),A2)+1)))=10,RIGHT(A2,LEN(A2)-FIND(CHAR(10),A2,FIND(CHAR(10),A2)+1)))))

这个公式很长,其实就是从头开始依次查找由空格分隔开的数字,如果其长度是10,则找到该数字。

提示:可以使用“公式求值”功能,详细查看上述公式是怎么运行的。

(0)

相关推荐