EXCEL/WPS表格在工作中是要处理各种数据之间的关系,把复杂的数据分列出来,进行各种汇总求和计数等,工作中经常遇到要从单元格内提取数值,如下图如示:

上图1表1表2
首先,从单无格内无固定位置和固定字符个数提取数据,需要用到MID函数和FIND函数或SEARCH函数的组合。MID函数是提取字符串,FIND函数或SEARCH函数是提取字符患的开始位置和字符串个数,它主要是用来查找指定字符串的开始位置和结束位置之差,得到要提取字符串的个数。
那么为了更方便的查找指定字符串,将原字符串替换成指定的字符串,因此利用SUBSTITUTE函数来实现字符串的替换,以方便FIND函数或SEARCH函数的查找定位,实现更准确的位置值锁定。
例图表
具体实现数据提取的公式=IFERROR(MID(SUBSTITUTE($A2,F$1&":","@"),SEARCH("@",IF(ISNUMBER(SEARCH(F$1,$A2)),SUBSTITUTE($A2,F$1&":","@"),""))+1,SEARCH(";",SUBSTITUTE($A2,F$1&":","@"),SEARCH("@",IF(ISNUMBER(SEARCH(F$1,$A2)),SUBSTITUTE($A2,F$1&":","@"),""))+1)-(SEARCH("@",SUBSTITUTE($A2,F$1&":","@"))+1)),"")
1.

2.
开始位置里又有查找、判断、替换函数的嵌套应用。SEARCH函数的第一个参数是查找字符串“@”,第二个参数是被查找字符串IF(ISNUMBER(SEARCH(F$1,$A2)),SUBSTITUTE($A2,F$1&":","@"),"")),最后加1,就是从查找到的@的位置的下一个开始的位置;IF函数的第一个参数是ISNUMBER(SEARCH(F$1,$A2)),这个的意思是对SEARCH函数在A2单元格内查找F1的值,如果找到就为真值,即TRUE,第二个参数是SUBSTITUTE($A2,F$1&":","@"),第一个参数为真,那么就替换A2单元格里的F1&“:”的内容为@,第三个参数是"",当第一个参数的值为假时,就返回空值。
3.

,这个是查找@字符位置的下一个数值的位置,其结果如下图:

最终结果得到MID的第三个参数,,提取的字符个数为4。
IFERROR函数就是对查找不到的值结果出现错误返回空值,即进行屏蔽。
5.结果操作演示如下:

+MID+SUBSTITUTE+SEARCH+IF+ISNUMBER函数嵌套组合,因所用到的函数在相关的函数分享中已有祥细的应用案例,在此不再作具体的举例说明。

