大家好,今天来聊聊老余我个人喜欢的函数之一LOOKUP。
说起函数lookup,想必大部分的人想到的是它的查找功能。的确查找是它的强项,不过查找只是它的冰山一角。
在分享其他功能之前,来看看它是怎么查找的
1、根据客户名称查找对应的应收账款金额
图一
这是经典的查找公式:Lookup(1,0/(条件区域=条件),返回区域)
2、根据序号和客户名称查找对应的应收账款金额,序号是升序排列的
图二
这两个实例是Lookup常用的用法
其实这个函数还可以对数字取整和提取不同长度的数字
案例一、
要求百位以下全部舍去,实现了百分位取整,比如数字是8632.23,达到的效果是8600。
其实向这样的取数,函数Int就可搞定
LOOKUP函数也能解决了这类问题
图三
首先说明ROW(A:A)*100这部分。它其实就是得到了一组数字。为了让大家看明白,把A:A范围给小一点,我们用=ROW(A1:A31)*100作说明:
图四
虽然单元格中只能看到一个100,实际上是31个数字,我们可以用f9功能键来看看具体内容:
图五
ROW函数用于获取单元格的行号,ROW(A1:A31)*100就是用A1到A31单元格的行号分别乘以100,得到一组百位取整的数据{100;200;300;……3000;3100}。
然后LOOKUP上场了。它要在上述得到的已经百位取整的数组中查找A1。因为数组是按升序排列的,所以查找A1的实质就是在数组中找小于等于A1的最大值。
以2517.32为例,唯有2500是小于它的最大值,因此结果就是2500
案例二:
A列有数字和文本,怎么提取开头的数字
首先我们想到的是利用快捷键CTRL E,没错这是个很好用的功能
图六
其实LOOKUP函数也能完美解决LOOKUP不是引用函数吗,怎么又可以提取数字了?
图七
解释下:LEFT函数的第二个参数使用了一个数组,ROW(1:10)相当于{1;2;3;4;5;6;7;8;9;10}。
也就是从左边开始提取1位,2位……一直到10位。因为LEFT提取的结果都是文本类型,在LEFT前面加上负号,就可以把其中的文本型数字转为数值,文字变成错误值,当查找值大于查找范围中所有数据(不管是否是升序排列)时,LOOKUP的实质就是在找最后一个数据。最后LOOKUP前面再加个负号,负负得正,也就是我们需要提取的数字。
怎么样,看完文章是不是觉得LOOKUP很强大,是不是有了初步的了解?
从不认识到了解,从了解再到掌握,这里需要大量的练习和思考。
评论 (0)