你的题目关键是找到第一个数字出现的位置。
1/17在Excel中的结果是0.0588235294117647,包含了0~9十个数字。目的是和A1中的数据用&连接在一起,形成新的字符串,然后用Find函数在新字符串中查找({0;1;2;3;4;5;6;7;8;9}这10个数,这样保证每个数字都能查找到出现的位置,而不会出现错误值。最后再用MIN函数找到最小值,也就是出现在最左边的数字的位置。位置找到了,再进行截取就不是难事儿了。
如果你看得懂公式要实现的功能的话,我想你就明白公式这样写的意义了。
B1的内容是:
FIND({0;1;2;3;4;5;6;7;8;9},A1&1/17)的意思是在A1&1/17组成的这个字符串中,分别找到0-9数字的位置。之所以1/17在后面,是因为1/17=0.058823529411765,包含了0-9十个数字,避免出现找不到某一位数而使结果出现错误值。
MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1/17),即是找出字符串内出现第一个数字的位置。
LEFT(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1/17))-1) ,简单的左起提取文本串。
综上所述,B1公式的功能就是:提取字串内出现第一个数字之前的其他字串。