cheatengine找不到数值_LOOKUP提取字符串首部数值

36feddd0c36033dfb26413e2ea705c28.png

如果要提取下面一段话

99.9千克的狗熊最可爱

首部的数字,要怎样操作呢?

分列嘛

2f305454989ec927f600fc90cbf5545c.gif

但是分列在大量数据格式不对称的情况下就失灵了

用公式嘛

6625a19fad40fc676f50e92cc4a002c6.gif

公式的效果不错


解释

  1. ROW($1:$4)

1caa4cc52ba59b4fdafb7321654c7c02.gif

这个公式会生成一个常量数组 {1;2;3;4},注意看编辑栏

目的是为了方便LEFT在D2单元格中取值,为什么会是$1:$4呢?

2. -LEFT(D2,ROW($1:$4))

136205f417d804cdd177b18078df9e2f.gif

LEFT配合上ROW生成的常量数组,会分别取左边的前一个、前两个、前三个、前四个字符

加负号的目的,是对其进行减负运算,数值、文本型数值就直接变成0或负值,其他的不能转的就会变成错误值,最后即 {-9;-99;-99;-99.9}

这就是ROW的作用,当然这里用ROW($1:$3)也可以,而为什么是四个,因为要提取的这些内容中包含数字最多是四位 即6400

3. LOOKUP(1,-LEFT(D2,ROW($1:$4)))

LOOKUP(1,{-9;-99;-99;-99.9})

LOOKUP有这些特点:

  • LOOKUP函数会忽略错误值
  • 如果LOOKUP找不到要找的值,最终匹配小于或等于它的最大值(在以升序排列情况下)

没有排序的话,LOOKUP则总会会认为后边的数字比前边的大,所以最终会认为最后的值是最大的,所以最后会匹配到最完整的带负号的数值

最后再将匹配到的数值做减负运算,就是我们想要的值咯

腻学会了吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值