分享

EXCEL中如何使用VLOOKUP函数提取单元格字符串中的数值?

 hjr231 2020-01-03

使用的公式是:

=VLOOKUP(9E+307,MID(A2,MIN(IF(ISNUMBER(--MID(A2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},2)

输入完公式按CTRL+SHIFT+ENTER键

题主图片里面已经给出了公式的结果,应该更多的是想知道这个公式是怎么来的,应该怎么样去理解,其实所有的长公式都是有固定的思路组成的,我们以B2的数字来源为例来解读这个思路的过程

❶使用使用MID(A2,ROW(1,99),1),把所有的数据拆开,最大长度是99个

=MID($A$2,ROW(),1)

❷在前面的公式加上两个负号,乘以两次-1,数字能得到结果,非数字出现错误

=--D1

❸判断是否是数字,如果是数字,返回行号

=IF(ISNUMBER(E1),ROW())

❹再使用min()函数,获取了这个出现数字的第1个位置,是4个位置

=MIN(F1:F99)

❺然后再使用MID()函数,从第4位开始拆解信息,依次取1,2,3,4...99位得到一个数组

MID($A$2,$G$1,ROW())*1

❻用*{1,1}得到了两列数组

=MID($A$2,$G$1,ROW())*1

❼最后使用VLOOKUP的模糊查找得到了最终的结果:

=VLOOKUP(9E+307,H:I,2)

这些辅助列的过程,就是公式的思路过程,所以说,在这个思路内我们可以调整公式,例如使用这个公式:

=VLOOKUP(9^9,--MID(A2,MIN(IF(ISNUMBER(--MID(A2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99)),1,1)

按三键也能得到最终的结果

我们要学习用这种方法来理解公式,这个技巧,你学会了么?

头条号:Excel自学成才,作者:E博士,职场5年数据分析实例经验

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多