|
=-LOOKUP(0,-LEFT(A1,ROW($A$1:A200)))
应用LOOKUP的模糊查找方式的特性取字符串最左边数字的公式,非常精简。
其中的200可改为16即可,改为16后的公式为:
=-LOOKUP(0,-LEFT(A1,ROW(A$1:A16)))
其中,LEFT(A1,ROW(A$1:A16)) 返回下面一组数据:
{"1";"12";"125";"1258";"1258t";"1258tt";"1258tty";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy";"1258ttyy"}
LEFT前面加上负号,将数值数据变成相反数,文本数据变成错误值,得到如下一组数据:
{-1;-12;-125;-1258;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
利用LOOKUP可以忽略错误值的模糊查找方式,如果被查找的一组数据中的所有数值都小于要查找的值(此公式中为小于0),将返回最后一个数值,所以:
LOOKUP(0,-LEFT(A1,ROW(A$1:A16)))
这一段返回的结果是 -1258 ,再在LOOKUP前面加上-号将其变加正数即为公式所需要的最后结果 1258。
附:此公式并不通用,比如将A1内的数据改为 12-58ttyy ,返回的结果将是 40882 而不是 12 。原因是EXCEL将12-5视为日期2011-12-5,2011-12-5 相当于数值40882。 |
|