动态提取字符后数值,不服都不行!

咱是职场文化人 2024-02-19 11:10:52

小伙伴们好,今天继续和大家分享一道关于数字提取的问题。和以往的数字提取的问题有些不一样,今天的这道题目可以实现动态提取,即根据所输入的内容来提取相应的数字。

来看看题目吧。

题目要求就是这么多。文本题目总离不了查找、定位、提取等等方法,下面我们就一起来看看怎么综合应用这些技巧吧!

01

在单元格C2中输入公式“=-LOOKUP(1,-LEFT(MID(A2,FIND(B2,A2)+LEN(B2),99),ROW($1:$99)))”并向下拖曳即可。

思路:

FIND(B2,A2)部分,首先在源数据中查找输入数据的位置MID(A2,FIND(B2,A2)+LEN(B2),99)部分,在原位置上,再加上自身字符的长度,表示从该字符后的第一个数据所在的位置开始提取一个长度足够大的字符串LEFT(MID(A2,FIND(B2,A2)+LEN(B2),99),ROW($1:$99))部分,利用LEFT函数依次提取1-99个字符最后利用LOOKUP函数提取正确答案。这里不再对LOOKUP函数做详细的介绍了,有关本题中LOOKUP函数的应用,请参看帖子总结篇-LOOKUP函数实用终极帖

02

在单元格C2中输入公式“=MAX(IFERROR(--MID(A3,FIND(B3,A3)+LEN(B3),ROW($1:$5)),0))”,三键回车并向下拖曳即可。

这个公式和上面的类似,只是在MID函数完成提取后,减负运算后将文本字符串转换为错误值,再用IFFEOR函数将错误值转换为0,最后用MAX函数提取出正确答案。

03

在单元格C2中输入公式“=MAX(--TEXT(MID(A2,FIND(B2,A2)+LEN(B2),ROW($1:$5)),"0;;0;!0"))”,三键回车并向下拖曳即可。

这个公式则是利用的TEXT函数的特性。当MID函数完成提取后,TEXT函数强制将正数原值显示,0值也原值显示,文本显示为0。这样减负运算后就可以用MAX函数提取了。

0 阅读:1