分享

无意间发现新函数CHOOSECOLS的新用法,能大大简化公式,带来极大的便利

 Excel不加班 2024-11-19 发布于广东

与 30万 粉丝一起学Excel

VIP学员的问题,要从科目里面提取最后1级科目、倒数第2级科目。

最后1级科目这种很常用,而倒数第2级科目这种问题很少见,当学员提到后,卢子懵逼了很久,最后才无意间发现了一个新用法可以解决。

1.最后1级科目

直接提供2条公式,老问题了就不做说明。
=TEXTAFTER(A2,"-",-1)
或者
=TRIM(RIGHT(SUBSTITUTE(A2,"-",REPT(" ",50)),50))

2.倒数第2级科目

正常情况下,要么提取首个,要么提取最后,很少出现提取中间的情况。

先来看提取全部,可以分列,也可以借助TEXTSPLIT函数。
=TEXTSPLIT(A2,"-")

而倒数第2居然是借助CHOOSECOLS函数,将第2参数设置为-2,还是第一次知道这个函数能支持负数。
=CHOOSECOLS(TEXTSPLIT(A2,"-"),-2)

在我们的认知中,都是从左到右,第1、2、3,依次数下去,都是正数。比如返回区域第3列。
=CHOOSECOLS(A1:C7,3)

现在知道支持负数,第3列,也是区域最后1列,也可以写-1。
=CHOOSECOLS(A1:C7,-1)

因此,最后1级科目也就多了一个新公式。
=CHOOSECOLS(TEXTSPLIT(A2,"-"),-1)

现在不管从左到右,还是从右到左都可以,也就是不管你要提取第几个都可以,方便了很多。

3.知识拓展

另一个学员的问题,实际比摘要的更复杂,要提取最后1个金额。

提取全部数字,可以借助REGEXP函数,[0-9.]+代表数字0-9,同时包含小数点。
=REGEXP(A2,"[0-9.]+")

而现在要提取最后1个数字,也就是CHOOSECOLS函数,第2参数设置为-1。
=CHOOSECOLS(REGEXP(A2,"[0-9.]+"),-1)

当然,第1个数字也行,第2参数设置为1。
=CHOOSECOLS(REGEXP(A2,"[0-9.]+"),1)

其实,OFFSET、TAKE等函数也支持负数。

OFFSET函数引用最后3个数字。
=OFFSET(B7,,,-3)

TAKE函数引用最后3个数字。
=TAKE(B2:B7,-3)

参数支持负数,看似不起眼的发现,却可以大大简化公式,带来极大的便利。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多