WPS表格函数公式新语法糖,一定要学习!

会飞的鱼

KVP函数专家、创作者俱乐部成员

小伙们大家好,转眼已有半年没更新了,7月1日WPS表格上线了新的函数公式语法糖,今天我们来一起详细学习下。

在开始学习之前先来看下下面的公式。

=@+$C3.:.J3

我相信大部分小伙伴看到后都有些懵,但是别急,看完下面的内容就明白了。

在学习新语法糖之前需要先学习一个新函数,TRIMRANGE函数半年前已经上线,TRIMRANGE函数可以对单元格区域进行剪裁返回已使用的区域。

函数语法如下。

示例1、省略第2、第3参数(剪裁上下左右,4个方向)

=TRIMRANGE(A1:F9)
=TRIMRANGE(A1:F9,3,3)

当第2、第3参数省略时,行、列剪裁模式默认为(3)两者,会将第1个参数的单元格区域的前、后、左、右的空白单元格区域剪裁掉,返回已使用的单元格区域。

示例2、第2个参数值设置为1(剪裁上方空白)

=TRIMRANGE(A1:F9,1,0)

第2个参数值行剪裁模式设置为1(剪裁前导),函数在对行进行剪裁时,只剪裁掉了单元格区域上方向的空白行。

示例3、第2个参数值设置为2(剪裁下方空白)

=TRIMRANGE(A1:F9,2,0)

第2个参数值行剪裁模式设置为2(剪裁前导),函数在对行进行剪裁时,只剪裁掉了单元格区域下方向的空白行。

示例4、第3个参数值设置为1(剪裁左方空白)

=TRIMRANGE(A1:F9,0,1)

第3个参数值列剪裁模式设置为1(剪裁尾随),函数在对行进行剪裁时,只剪裁掉了单元格区域下方向的空白行。

示例5、第3个参数值设置为2(剪裁右方空白)

=TRIMRANGE(A1:F9,0,2)

第3个参数值列剪裁模式设置为2(剪裁尾随),函数在对行进行剪裁时,只剪裁掉了单元格区域下方向的空白行。

注意事项:

TRIMRANGE函数在剪裁空白区域时,空白是指单元格未输入过任何内容,使用公式返回的空文本无法剪裁掉!

剪裁空白区域语法糖-(.)

本次增加了TRIMRANGE函数简写语法.(点),在单元格区域地址的:(冒号)前后可以单独或全部添加.(点),共有四种组合模式,分别是(:)、(.:.)、(.:)、(:.),使用语法糖引用单元格区域可以实现和TRIMRANGE函数一样的剪裁效果。

1、:(不剪裁)

可直接引用单元格,或使用TRIMRANGE函数。

对应TRIMRANGE第2、第3参数值为0(无)。

=B2:G10
=TRIMRANGE(B2:G10,0,0)

2、.:. (行列上下左右,4个方向全部剪裁)

对应TRIMRANGE函数第2、第3参数值3(两者)。

=B2.:.G10
=TRIMRANGE(B2:G10,3,3)

3、.:(行列左上剪裁)

对应TRIMRANGE函数第2、第3参数值1(前导)。

=B2.:G10
=TRIMRANGE(B2:G10,1,1)

4、:.(行列右下剪裁)

对应TRIMRANGE函数第2、第3参数值2(尾随)。

=B2:.G10
=TRIMRANGE(B2:G10,2,2)

剪裁语法糖一共有4种模式,分别为(不剪裁)、(行列前导)、(行列尾随)、(行列两者),在实际使用中可以满足大部分需求,但是和TRIMRANGE函数还是有些差异的,语法糖无法只对行或列进行单独剪裁,在需要对行或列单独剪裁时,需要使用TRIMRANGE函数。

在了解了TRIMRANGE函数和对应的语法糖,可能有些小伙伴会问剪裁空白单元格在实际应用中有哪些用处,下面我们聊聊实际应用。

我们在写函数公式的时候,在引用单元格的时候一般会有两种选择,第1种是引用当前已使用的单元格区域,优点是计算效率更高,缺点是不够灵活,当添加数据后需要修改引用区域,第2种是引用整行或整列,优点是公式灵活,可以随意添加数据,缺点是计算效率很低,虽然一些常用函数如VLOOKUP、SUMIFS、FILTER、GROUPBY函数WPS内部做了优化处理,常规模式下引用整行整列影响不大,但是当涉及数组计算的时候,如使用FILTER函数多条件筛选、使用GROUPBY函数提取日期中的年月后汇总时,在这种情况如果引用整行整列会导致计算效率直线下降,TRIMRANGE函数的出现可以解决这一问题,可以帮助我们既要又要,让灵活与速度兼得。

此外,在一些工作场景中,需要根据一个单元格区域获取已填写数据的边界时,使用TRIMRANGE函数可以很容易的解决此类问题。

案例1、多条件筛选

=FILTER(B.:.D,(B.:.B=H1)*(C.:.C=H2))
=FILTER(B:.D,(B:.B=H1)*(C:.C=H2))

需要注意的是,在使用TRIMRANGE函数或使用语法糖剪裁时,如果在函数公式中对多列进行剪裁,需要保证多列的边界相同,否则会因为剪裁后返回的单元格区域大小不同,导出公式报错,如下图

解决此类问题的方法是,在剪裁时同时对多列一起剪裁,然后使用CHOOSECOLS函数返回指定列。

=LET(arr,B.:.D,FILTER(arr,(CHOOSECOLS(arr,1)=H1)*(CHOOSECOLS(arr,2)=H2)))

案例2、根据年月后汇总

=GROUPBY(TEXT(B.:.B,"yyyy-mm"),D.:.D,SUM,3)
=GROUPBY(TEXT(B:.B,"yyyy-mm"),D:.D,SUM,3)

案例3、制作动态下拉菜单

依次点击【数据】、【下拉列表】、选择【从单元格选择下拉选项】输入公式。

=B.:.B
=B:.B

如果菜单列表有标题,使用DROP函数删除指定行即可。

=DROP(B:.B,2)

案例4、计算项目天数

=COLUMNS(C3.:.J3)

案例5、获取每行首个值

=@+$C3.:.J3
=@+$C3.:J3

1、(.)剪裁空白单元格。

2、($)锁定引用单元格。

3、(+)单元格区域转数组。

4、(@)获取数组中的首个值。

除了($)运算符是之前就一直存在的,(+@)运算符是23年支持动态数据功能加入的,(.)是25年7月版本新加入的,看到这里是不是有用的知识又增加了。

TRIMRANGE语法糖,在今天已全量推送,版本号是(21915),想体验的小伙伴可通过客户端升级,或到官网下载安装升级。

--- END ---

辽宁省
浏览 319
5
13
分享
13 +1
9
5 +1
全部评论 9
 
懒得批爆

@WPS产品体验官

案例5中能否通过TRIMRANGE语法糖返回首个值对应的标题栏的值?
· 四川省
回复
会飞的鱼

KVP函数专家、创作者俱乐部成员

无法直接返回,得加函数。
· 辽宁省
回复
 
风清月霁

创作者俱乐部成员

学习
· 河南省
回复
 
学习了
· 广东省
回复
 
Tam Kingsley

创作者俱乐部成员

向飞鱼老师学习
· 广东省
回复
 
学习
· 福建省
回复
 
黑化新路

WPS函数专家

跟着飞鱼老师学习
· 重庆
回复