

点击【开通SVIP会员免费学】
春节的脚步近了,年终汇报的事会远么?望着比山高的年终汇报稿,小编很是头疼。毕竟领导要求提取整个公司员工的年终汇报中的数值,整个公司少说也有几百号人,这要是一个个的从茫茫文字中找数据,那不跟大海捞针似的,得找到什么时候啊。
现在,就是体现我们EXCEL强大功能的时候了,各位小可爱,走过路过不要错过,看到这篇文章你就是赚到,数值提取万能公式,你值得拥有。经过小编的苦心研究,终于创造出了一种万能公式,不需要观察文本特征,也不需要分情景设置,什么文本都可以霸王硬上弓。PS:不过,还是要区分两种情况。一种是提取数值;另一种是提取数字字符串。我们今天先来学习一下提取数值的,提取数字字符串的可以期待小编的下一篇哦。这里的数值,指的是带正负的数,以及带小数点的数。废话不多说,先上一波公式:{=-LOOKUP(9^9,-MIDB(A2,MIN(FINDB(LEFT(ROW($1:$11)-2,1),A2&-1/19)),ROW($1:$100)))}需要各位小可爱注意的是,我们在使用这个万能公式提取数值的时候,除了目标数值,文本中不存在其他数字,否则容易产生干扰。小可爱们看到这么复杂的函数公式,是不是被吓到了,莫慌莫慌,小编给各位仔细分解一下。ROW(1:11)就是返回第1行到第11行的行号,也就是11个字符组成的集合A{1,2,3…11},-2则变为字符集B{-1,0,1,2…9}。再通过LEFT提取字符集B左侧的第一个字符,生成字符集C{"-",0,1,2,…9},也就是符号和0-9这十个字符,这样所有数值,均由这11个字符构成。该部分的功能就是构建阿拉伯数字全部字符,这些数字有助于我们锁定位置,进而提取阿拉伯数值。FINDB是查找字符所在目标文本中的位置,但是它仅仅返回字节序号,即把汉字和中文符号视为2个字节。A2单元格混合文本中,“成本造价”所占的字节为8个,所以负号“-”出现的位置是9,而不是5。该公式中使用了A2&-1/19是为了确保字符集C{"-",0,1,2,…9}的每一个字符均在FIND的查找文本中出现,确保FIND的返回值不存在错误值。片段②返回字符集C{"-",0,1,2,…9}在A2&-1/19出现的位置,即序数集D{5,13,10,6,…}。MIN(②)取②的结果序数集D{5,13,10,6,…}中的最小值,它就是目标数值在A2中的起始位置,即首次出现负号或阿拉伯数字的位置。这就是为什么目标数字的左侧若是有无关的阿拉伯数字或负号,则会造成无法识别的原因。④-MIDB(A2,③,ROW($1:$100))这里使用MIDB是为了对应FINDB,通过字节位置截取部分文本。ROW($1:$100)返回有序数组{1-100},作为MIDB函数的第三个参数——要提取的字节数,即分别提取1-100个字符。MIDB函数的功能就是从③确定的起始位置开始,分别从A2单元格文本中截取长度为1-100个字节的100个不等长字符串E{"3","34","349",…"349167.6"}。而-MIDB则是将不等长字符串执行减法运算,使得非数值数据因无法运算而报错为#VALUE!,进而将不等长字符串E转化为纯数字和错误值#VALUE!组成的新常量数组F{#VALUE!;3;34;349;…;349167.6}。我们赋予查询值一个极大数9^9,因为LOOKUP的特性是默认查询区域是升序的,即越往后值越大,所以查询区域的最后一个非错误值为最大值,即该值为返回值。LOOKUP可以忽略错误值取最后一个有效值,得到正确结果。PS:此公式是组合公式,需要按Ctrl+Shift+Enter才能得到正确的公式。不然会出现错误哦!今天的分享就到这,如果教程对大家有用,希望大家多多分享点赞支持小编哦!你的每一次点赞和转发都是支持小编坚持原创的动力。
点击阅读原文一键登录官网,海量视频vip任意学!(可试看)