正则获取前8位数字_数据取整,获取字符串前数字另辟蹊径之LOOKUP

看到标题,数据取整,获取字符串前数字,用LOOKUP函数?EK你确定没搞错吗?是的,当然没有搞错。今天,我们会用LOOKUP来数据取整,获取字符串前数字。

首先我们来看一下数据取整效果图:

764e239b450ac9dfaa0ea454a25132d8.png

图1 取整效果图

说起对数据进行取整。大家会想到Round,trunc函数和floor函数。当然这些函数都能满足我们的需求。

这里,我们先把公式给大家贴出来.B2=LOOKUP(A2,ROW(A:A)*10)

C2= LOOKUP(A2,ROW(A:A)*100)

如下图:

ff1b9f79541fb6c8efc648747b1dcde7.png

图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

图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的小技巧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值