封面在工作中,经常遇在EXCEL/WPS表格单元格里,一串数据中有汉字、字母、数字混合在一起的字符串,而且字符串长度是不一致的,有的单元格只存在字符或数字,也有空单元格里没有数据。如下表:
图例那对于这种情况,如何将数值提取出来呢?下面小编根据以上面表格的情况,通过函数公式,把有时间数值单独提取出来,希望对读者朋友在工作中遇到类似问题,可以参考应用,并解决实际问题。
目的:提取单元格内不规则的数字。
方法:
在目标单元格输入公式=IFERROR(LOOKUP(9^9,--RIGHT(LEFT(A2,FIND("小时",A2)-1),ROW($1:$99))),"")
操作演示以上表的数据为依据,梳理解决提取数字思路如下:
1.首先分析上表的规律,可以发现只要有数字出现的后面都跟着“小时”,因此只要把含有“小时”二字找出来就可以找到数值。
2.在单元格内找字符串,FIND函数或SEARCH函数均可以达到目的,查找到小时后,截取小时左边的数据,得到的字符串最右边就是数值,那截取左边字符串用LEFT函数来实现,即LEFT(A2,FIND("小时",A2)-1)。
操作演示3.要取数值,用RIGHT函数从右边提取,每一次提取都从第一个字符开始,第一次一个字符,第二次二个字符,直到把单元格内的所有数字提取完成,即RIGHT(LEFT(A2,FIND("小时",A2)-1),ROW($1:$99)),再前面加--是表示负号,两个负号就是数学中的负负为正,这个的目的是把RIGHT函数提取出来符合数值的筛选出来。
操作演示4.最后返回RIGHT函数提取出来的最大数值,就得到了所需要的结果,即LOOKUP(9^9,--RIGHT(LEFT(A2,FIND("小时",A2)-1),ROW($1:$99)))。9的9次方是一个很大的数值,作为LOOKUP函数的查找值,而RIGHT函数提取的最大值与查找值是最接近的一个值,所以就返回正确的结果。
5.最后用IFERROR函数来对没有数字返回的单元格出来的错误值进行屏蔽。
知识点:
认识函数的提取数据顺序,可以转换一种方式来提取,如RIGHT从右边提取数据,从第一位开始取数,可以很快的提取数字出来,通过LOOKUP函数返回最接近查找值的数字,就得到了正确的结果。