LOOKUP提取字符串首部数值
目录
Excel中使用LOOKUP
提取字符串首部数值。
如果要提取下面一串内容中首部的数字,要如何操作?
99.9千克的狗熊最可爱
具体操作
分列
但是分列在大量数据格式不对称的情况下就失灵了
公式
公式的效果更好一些
ROW($1:$4)
这个公式会生成一个常量数组 {1;2;3;4}
,编辑栏会有变化
目的是为了方便LEFT在D2单元格中取值,为什么会是$1:$4?
-LEFT(D2,ROW($1:$4))
LEFT配合上ROW生成的常量数组,会分别取左边的前一个、前两个、前三个、前四个字符
加负号的目的,是对其进行减负运算,数值、文本型数值就直接变成0或负值,其他的不能转的就会变成错误值,最后即 {-9;-99;-99;-99.9}
这就是ROW的作用,当然这里用ROW($1:$3)
也可以,而为什么是四个,因为要提取的这些内容中包含数字最多是四位 即6400
LOOKUP(1,-LEFT(D2,ROW($1:$4)))
即
|
|
LOOKUP有这些特点:
- LOOKUP函数会忽略错误值
- 如果LOOKUP找不到要找的值,最终匹配小于或等于它的最大值(在以升序排列情况下)
没有排序的话,LOOKUP则总会认为后边的数字比前边的大,所以最终会认为最后的值是最大的,所以最后会匹配到最完整的带负号的数值
最后再将匹配到的数值做减负运算,就是我们想要的值,即
|
|