VLOOKUP()数组妙用,提取文本中的数字

 

工作中,有的人很喜欢用Word来处理表单(如下图),当然这无所谓对错,在表格填写的时候也会经常将单位等与价格数字一起填写,这样方便是很方便,但却对后面的数据处理很不方便,即便将表格复制到Excel中,你还得费老半天把数字和单位分开。...



快,关注这个公众号,一起涨姿势~

老墨说Excel内训预约~



作中,有的人很喜欢用Word来处理表单(如下图),当然这无所谓对错,在表格填写的时候也会经常将单位等与价格数字一起填写,这样方便是很方便,但却对后面的数据处理很不方便,即便将表格复制到Excel中,你还得费老半天把数字和单位分开。
好了,老墨也不绕弯子了,今天要分享的事,用VLOOKUP()函数如何快速实现文本(将数字和单位写在一起就是文本)中的数字提取出来。
首先,我们将Word入库单中的信息拷贝到Excel中,上表就是拷贝到Excel中的,其中标颜色部分区域(单价/单位、数量、总价)就是需要提取数字的文本区域。

最终要实现的是下表中右侧三列效果。
表中J、K列公式为:

{=VLOOKUP(9E+307,MID(E2,MIN(IF(ISNUMBER(--MID(E2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},2)}
它是一个多层函数嵌套的数组公式,函数包括:VLOOKUP()、MID()、MIN()、ISNUMBER()、ROW(),看起来挺复杂,下面我们就来分析一下这个公式提取过程。

VLOOKUP()函数有4个参数,我们就从这4个参数进行分析:

1)参数1:9E+307,属于科学记数法,指9后面有307个0,因为此数太大,所以一般指最大的数。9E+307经常被用来作为查找、数值比较等。

2)参数2:MID(E2,MIN(IF(ISNUMBER(--MID(E2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},这是公式的核心部分,即为查找区域,什么意思呢,就是通过这个部分架构一个VLOOKUP()可以查找的表格区域。

其中:

——MID()是文本提取函数;

——MIN()是表示最小值,从小到大排序组表;

——ISNUMBER(),是用来判断值是否为数值;

——ROW()表示行号,$1:$99,表示表格区域从第1行到第99行。

直观点讲,参数2部分架构了一张有2列的表,这张表有99行,第一列是序号,第2列是E2单元格中数值部分分拆成列,然后通过数组公式在一个单元格中实现查找引用。

3)参数3,2,即为查找第2列。

4)参数4,0,其实被省略了。

下面是动图效果,当我们改变前面数值,可以看见后面快速实现提取。
数组公式本身就很复杂,也有点晕,不过没关系,函数功能本身就是运用它的功能,如果能理解期过程最好,不理解就拿来用嘛。
(END)
表哥表姐:

——如果觉得老墨的文章有用,请帮忙转发分享,让更多的人知道,独乐了不如众乐乐!
 
学好Excel,做个好表哥好表姐~
 

老墨说Excel

微信号:moguho_e

QQ群:495798764

QQ:2838002

谢谢阅读


    关注 老墨说Excel


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册