求这个EXCEL提取数字公式的解释,要详细的[内含公式组合]

问题描述:

求这个EXCEL提取数字公式的解释,要详细的[内含公式组合]
=LOOKUP(9E+307,--MID(A2,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A2&1234567890)),ROW($1:$1022)))
这个是用来提取A2里的数字用的,但是我不知道原理,每一步都要解释哦.
1个回答 分类:综合 2014-09-23

问题解答:

我来补答
FIND({0;1;2;3;4;5;6;7;8;9},A2&1234567890)
是在A2中寻找数字的位置,{0;1;2;3;4;5;6;7;8;9}作为FIND的第一参数,寻找0-9的每个数字在A2中位置,为了防止A2中没有某个数字出现错误值,A2后面连接上1234567890,这样每个数字都能找到位置了,如果A2中没有,是在后面连接的数字中找到的,FIND返回的数字会大于A2的长度,用函数表示即 >LEN(A2)
给你举个例子便于说明,假设A2中的字符是 只有163个abdc
=FIND({0;1;2;3;4;5;6;7;8;9},A2&1234567890)
返回的是{20;3;12;5;14;15;4;17;18;19},就是0-9在A2&1234567890="只有163个abdc1234567890"中的位置,将这个外面套上MIN,即可取出最小值,即第一个数字所在的位置3,将它作为MID的第二参数,就是从第三个开始取,MID的第三参数为ROW($1:$1022),表示从第三个开始取,分别取一个,二个,三个,一直到1022个,前面再用--,将不是纯数字段的转化为错误值,纯数字段的转化为真正的数字(MID取出来的是文本类数字),它作为LOOKUP的第二参数,即取小于9E+307(工作表中最大数值)的最大值,就是把163取出来了.
公式可以适当简化,变成
=-LOOKUP(,-MID(A2,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A2&5^19)),ROW($1:$99)))
全部说清楚实在不容易,你可以在编辑栏中用鼠标拖黑公式(想看哪段拖黑哪段,比如A2&5^19),按F9查看,看好之后按CTRL+Z恢复,或按ESC返回,这是学习公式的好办法.
 
 
展开全文阅读
剩余:2000
下一页:请说清为什么