看到标题,数据取整,获取字符串前数字,用LOOKUP函数?EK你确定没搞错吗?是的,当然没有搞错。今天,我们会用LOOKUP来数据取整,获取字符串前数字。
首先我们来看一下数据取整效果图:
![764e239b450ac9dfaa0ea454a25132d8.png](https://i-blog.csdnimg.cn/blog_migrate/9de785a9ec86c15639214ab3e89fb51d.jpeg)
图1 取整效果图
说起对数据进行取整。大家会想到Round,trunc函数和floor函数。当然这些函数都能满足我们的需求。
这里,我们先把公式给大家贴出来.B2=LOOKUP(A2,ROW(A:A)*10)
C2= LOOKUP(A2,ROW(A:A)*100)
如下图:
![ff1b9f79541fb6c8efc648747b1dcde7.png](https://i-blog.csdnimg.cn/blog_migrate/e43e1e277f7e8d3946257f4e0d9943de.jpeg)
图2 效果图公式
要理解这个函数,我们首先要明确一点前提,LOOKUP函数在查找升序的数字的时候,是查找的是等于或小于查找值的最大值。
这里简单给小伙伴们解释一下,ROW(A:A)*10 返回的是一组数组A={10,20,30,40...18540,18550....},这里我们根据前面的前提,我们看到A2是18647.364大于18540,而数组A中下一个数据为18550,可得B2=LOOKUP(A2,ROW(A:A)*10) 从数组A中查到的数据为18540.
同理,百位取整,同样的操作。
总结,这里我们可以看到。实际上还是查询,只是利用了LOOKUP的查询性质,我们将LOOKUP函数变成了数据取整相同的效果。
到这里,小伙伴会说,数据取整算你勉勉强强完成了,那下一个截取一段字符串前的数字呢?我看你怎么完成?一个好好的查询函数,你非得用作他用。
小伙伴们不急,马上为小伙伴们上菜。
首先来看一下效果图:
![bacc05d82a4b2e67662dfdf0ad55c5f6.png](https://i-blog.csdnimg.cn/blog_migrate/bf883be6d97d97150974fbbc7f012d0a.jpeg)
图3 字符串截取前段数字效果图
这里,为了方便小伙伴们理解,先把公式贴出来:B2=-LOOKUP(1,-LEFT(A2,ROW($1:$9)))
What?这公式怎么这么乱。相信很多小伙伴第一眼看到的话会蹦出这个词。
废话不多说。一步一步帮助大家分析这个公式。
EK分析公式的方法是,将一个复杂的公式,我们分解出很多部分,然后一个部分一个部分分析,如果分出来的部分还很乱,那就接着分解。
1、分析ROW($1:$9),这是表示一个数组B={1,2,3...9}
2、组合函数LEFT(A2,ROW($1:$9)我们就可以分析出来了。因为a2=267.64你好a,组合函数也同样表示一个数组C={2,26,267,267.,267.6,267.64,267.64你,267.64你好..}
3、我们看到LEFT函数前面有个符号“-”,这里“-”是对数组C中的元素进行判断,是否为数字,为数字,就返回对应的负值,如果元素为字符,加“-”的话会返回#VALUE!。
4、同理,-LEFT(A2,ROW($1:$9)表示的数组D={-2,-26,-267,-267.6,-267.64,#VALUE!,#VALUE!..}
5、根据LOOKUP函数的性质,LOOKUP(1,-LEFT(A2,ROW($1:$9)))查找出来的为数组D中的-267.64元素。加上“-”的话,就可以得到我们需要的截取字符串前的数字目的。
分析完毕,如果小伙伴们,如果还是不清楚的话,可以在评论区告诉我。
到这里,这两个案例就结束了。最后,感谢小伙伴们的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,你们不清楚的地方我会尽力为小伙伴们解答,谢谢小伙伴们的支持。我会给小伙伴们带来更多关于EXCEL的小技巧。