一、案例

如下图所示,A1:B8为商品采购表,要求提取B列采购数量中的数字。

快速从单位中取数值(如何提取其中的数字)(1)

二、解决方法

在C2单元格输入公式 =-LOOKUP(0,-LEFT(B2,ROW($1:$9)))

拖动填充柄向下复制公式。

快速从单位中取数值(如何提取其中的数字)(2)

公式解析:

(1)ROW($1:$9)返回数组{1;2;3;4;5;6;7;8;9}

(2)LEFT(B2,ROW($1:$9))指分别从B2单元格提取前1个、2个、3个……9个字符。LEFT函数返回的结果为{"1";"10";"10桶";"10桶";"10桶";"10桶";"10桶";"10桶";"10桶"}。由于B2单元格只有3个字符,因此从B2单元格提取的前3个至前9个字符均为“10桶”。

(3)-LEFT(B2,ROW($1:$9))在LEFT函数前添加负号,可以将LEFT提取的数值型文本转为数值,非数值型的文本转为错误值。其返回的结果为

{-1;-10;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

(4)LOOKUP(0,-LEFT(B2,ROW($1:$9))),即在

{-1;-10;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}中查找“0”。

当LOOKUP查找不到“0”时,会返回小于“0”的最后一个数值“-10”。

(5)-LOOKUP(0,-LEFT(B2,ROW($1:$9)))在LOOKUP函数前添加负号,将返回的负值转为正值。

,