上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
案例25 从混合字符串中提取金额(MID)
⊙ 源文件:CDROM\04\4.6\案例25.xls
现金支出表中包括汉字、字母和数字,数字位置和长度不固定,现需提取数字部分。
打开光盘中的数据文件,在单元格C2中输入以下公式:
=LOOKUP(D9+307,--MID(B2,MIN(FIND({1;2;3;4;5;6;7;8;9},B2&123456789)),ROW($1:$99)))
按下【Enter】键后,公式将返回混合字符串中数字部分。双击单元格填充柄将公式向下填充,结果如图4-12所示。
图4-12 从混合字符中提取金额
公式说明
本例公式需要从混合字符串中提取数字,而数字是集中在一起的。利用这个特点可以得到以下思路:从字符串的第一个数字开始的位置提取字符串,长度分别是1位、2位、3位……99位,然后从中提取最大值即可。
公式中FIND函数用于计算数字1~9的每个数字在原字符串中的位置,然后利用MIN函数取最小值,即最左边的数字的位置。MID函数从此位置开始提取字符串,分别提取1位、2位、3位……99位,最后利用LOOKUP函数从中查找最大值。
案例提示
1.公式中的 D9+307 也可以替换成其他数值,只要数值大于提取的任何一个数据就行。例如10^16,即10的16次方,这个数据已经大于Excel的计算精度范围的最大值,所以用它作为LOOKUP函数的第一参数已经足以从第二参数中提取最大值。公式可以修改为:
=LOOKUP(10^16,--MID(B2,MIN(FIND(ROW($1:$9),B2&123456789) ), ROW($1:$99)))