按项目条件提取数字,LOOKUP-LEFT-MID-FIND无往不胜!
作者:老菜鸟来源:部落窝教育发布时间:2023-09-05 10:41:26点击:1014
采用LOOKUP-LEFT-MID-FIND组合可按条件——项目名称——从单元格中提取相应的数字。对于365版本,公式更简单,用TEXTBEFORE-TEXTAFTER组合即可。
在实际业务中,很多人贪图方便,将多个数据放在一个格子里。例如下方的报销数据,多个费用项目混在一起。有没有办法按照对应的费用项目把金额分别提取出来呢?
办法肯定是有的。
1.通用方法——适合所有Excel版本
先用MID-FIND组合按费用项目提取以数字开头的固定长度的字符。
=MID($A2,FIND(B$1,$A2)+3,9)
FIND函数查找费用项目的位置,再加3(费用项目的字数,示例中正好都是3个字,如果字数不等的话,可以用LEN(B1)代替3)作为开始提取位置。
最后提取9个字符。这里的数字都没有超过9位数的,提取9个字足够。
接下来再用LOOKUP-LEFT函数组合提取数字。
=-LOOKUP(0,-LEFT(B2,ROW($1:$9)))
-LEFT(B2,ROW($1:$9)),依次取出2、20、200、200元……等9个数据;再进行负运算,文本数字变成负数如-2、-20、-200,纯文本变成错误值#VALUE!。
在一堆负数和错误值中用LOOKUP查找0(比负数都大),得到最后一个不为错误值的负数-200;最后再做负运算,得到正数200。
将上述两步的LOOKUP-LEFT与MID-FIND进行嵌套,得到完整的公式:
=-LOOKUP(0,-LEFT(MID($A2,FIND(B$1,$A2)+3,9),ROW($1:$9)))
2.适合Excel 365的简易方法
非常简单,利用TEXTAFTER和TEXTBEFORE函数组合就能得到结果。
=--TEXTBEFORE(TEXTAFTER($A2,B$1),"元")
直接提取每个费用项目后与“元”字之前的内容。
本文配套的练习课件请加入QQ群:781412182下载。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者老菜鸟;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。