欢迎大家来到IT世界,在知识的湖畔探索吧!
今天跟大家分享一个用超长函数公式来提取数字的案例,顺便讲讲其具体的解题思路,希望大家都能动手试一下,不要一遇到长长的函数公式就被吓倒了。
案例中B2单元格中的公式为:
=MID($A2,MIN(FIND($G$1:$G$11,$A2&-1/17)),COUNT(–MID($A2,ROW($1:$100),1))+COUNT(–FIND({“-“,”.”},$A2)))
下面分两个步骤来跟大家具体讲解一下,在讲解之前,我们先来复习一下MID函数的功能及其语法结构。即从文本字符串的指定位置开始,返回指定长度的字符串。其语法结构为:=mid(字符串,开始位置,字符长度),这样我们只需确定开始位置和字符长度这两个参数就可以将其结果求出来了。
1.确定第一个数字出现的位置(开始位置)
=MIN(FIND($G$1:$G$11,$A2&-1/17))
先用find函数查找 – ,0,1,2,3,4,5,6,7,8,9 字符串在A2单元格中开始出现的位置,再用min函数将其最小值提取出来。A2单元格连接-1/17的目的是为了过滤掉错误值,因为-1/17的结果为:-0.07647,包含了所有要查找的字符串 – ,0,1,2,3,4,5,6,7,8,9。
2.确定数字的长度(字符长度)
=COUNT(–MID(A2,ROW($1:$100),1))+COUNT(–FIND({“-“,”.”},A2))
先用mid函数从A2单元格的第1,2,3,4,5………100个位置开始提取长度为1的字符串,由于提取出来的字符串属于文本字符串,所以在其前面加两个负号,将其转换为数值,再用count函数将其数字的个数求出来。同理,因为数据中可能会含有负号和小数点,所以需要用find函数来判断其是否包含负号和小数点。这样数字的长度就可以求出来了。
注意:数组公式需按ctrl+shift+enter三键方可得出正确的结果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/73704.html