`
阅: 2427 | 回: 0
发表于2015/10/27 12:44:06 楼主 
头像 等级:初学者
积分:0
财富值:0.0
身份:普通用户
让数值和文字混排的单元格参与计算

一个数值和文字混排的单元格,如何计提数值参与计算? 
数值在文字中间,如“收入562.00元”;最后,如“计提标准0.5%”(此处的0.5%);还有出现在首端的,如895人/月。 
不管出现在那个位置,出现数值的地方只有一个。
公式作者:gvntw。
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
解释作者:山菊花。
与看不懂的朋友共同学习一下: 
以“收入562.00元”为例 

1、FIND()告诉我,0-9在文本中第一次出现的位置。 

用Find()在指定的文本中查找0-9,会返回第一次出现的位置,如果没有会返回一个错误值,聪明的gvntw,在文本后面连接上1234567890,让Find()不再有借口返回错误值,请放心,它不会影响后面的结果。在编辑栏中,像下面一样,用鼠标将这一段文本抹黑,然后按F9。 

=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1))))) 

2、对着 Min(),王小丫说:恭喜你,答对了,第一个数字在第3位。 

如果你还怀疑,可以这再次抹黑,并按F9。 

=LOOKUP(9E+307,--MID(A1,MIN({7;8;5;12;13;3;4;16;17;18}),ROW(INDIRECT("1:"&LEN(A1))))) 

3、神奇魔术师 Mid() ,一个文本变出许许多多。 

让事实说话,继续抹抹黑,按F9。开始位置不变,长度依次增1,形成一个数组,数组的个数等于文本长度(Row()的结果)。后面的会出现相同的情况,没关系,还是不影响结果的。 

=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN(A1))))) 

4、如果忽略了--,还是功亏一篑。 

看看,它的结果会是什么呢? 

=LOOKUP(9E+307,--{"5";"56";"562";"562.";"562.0";"562.00";"562.00元";"562.00元";"562.00元"}) 

5、Lookup() 总是那么沉着,他闭着眼睛说,我就要最后面那个数字。 

=LOOKUP(9E+307,{5;56;562;562;562;562.00;#VALUE!;#VALUE!;#VALUE!}) 

9E+307 是一个非常大的数,在任何时候都适用,如果你知道你的文本中最大数的范围,比如1000,文本中的数字不会超过1000的,那么,这个数字你用1000,也是行的,即: 
Lookup(1000,……)

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。