微软重磅更新TRIMRANGE,公式再也不卡了

职场   2024-11-08 23:01   江苏  
你是不是经常因为数据扩展,公式不知道选择多大区域而烦恼,选择大了,冗余,选择小了,每次都要修改,是否有办法让公式的区域自动适应呢?以前可能没有,但是现在来了……对了,还支持了新的语法糖!

▍TRIMRANGE函数初识

我们输入函数名称后,直接来简单看一下函数的说明,从下图中,我们大体可以了解到这个函数是把区域修剪到最后使用的单元格,且支持修剪方向的指定!

让我总结一下的话,就是忽略选择区域中已使用的空白区域,保留已使用的有效区域。具体我们会在下面做一些测试!


▼ 函数概述


▍TRIMRANGE函数入门

函数语法:
TRIMRANGE(区域,[上下方向修剪方式],[左右方向修剪方式])

第二和第三参数都是可选,默认对4个方向都修剪!

下面我们来做一下简单的测试,看一下这个函数的实际功能!

第二、三参数不写,只给第一参数,默认就是4个方向都修剪,参数区域就是绿色底色部分,返回的区域为四个方形最后使用的值所围成的矩形区域!


下面我们看一下,第二、三参数有哪些用法,具体看下图。

下面我们简单看一下,一共有4个枚举值分别对应
  • 0:不处理,按实际返回,这……意思是选择啥返回啥

  • 1:前导,第二参数对应的是从上往下,剪掉未使用的区域,第三参数对应的就是左侧

  • 2:尾随,第二参数,自然对应的是下方,第三参数对应的是右侧!

  • 3:两者,默认情况,也就是第二参数上下,第三参数的左右,都处理!



光说不练假把式,我们还是看一下,实战中有什么应用场景吧!

▍TRIMRANGE函数实战1

过去我们也经常遇到两列相乘并求和的问题,一般都是使用SUMPRODUCT函数,默认支持数组,相对新手要友好很多,但是有一个很大的问题,SUMPRODUCT函数计算速度很慢,尤其区域较大,逻辑比较复杂的情况。

但是实际情况,数据可能每日都在更新,案例中我们选择的区域是到13行,后续数据更新,我们就得修改区域。

如果不想修改就需要写一个较大的区域,但是非常冗余,对一些复杂的SUMPRODUCT函数公式很可能是致命的卡!



现在有了TRIMRANGE函数,你就可以放心使用了,你选择较大的区域,他会帮你自动修剪,再也不用担心选择区域冗余太多卡顿问题。
=SUMPRODUCT(TRIMRANGE(C2:C30)*TRIMRANGE(D2:D30))

你是否察觉到,这样嵌套感觉有点冗余了,其实我也觉得,所以微软提供了一个全新的函数语法糖,让我们使用更加简洁!

▍TRIMRANGE函数语法糖

下面的新语法可有实现上面TRIMRANGE一样的效果,上下左右修剪!
语法为:开始单元格.:.结束单元格

核心是冒号两侧的点,他用来控制修剪左上,右下或者上下左右,也就是说,他们可以单用,也可以一起使用!


如果点用在冒号前面的,那么做的就是修剪的左上,也就是对应的TRIMRANGE(区域,1,1)


用在后面,就是修剪的右下,这里我就不一一样式了。值得说的是语法糖只有这三种情况,所以他没有TRIMRANGE那么灵活,可以控制任意4个方向!语法糖只能左上、右下,一起控制或者4个方向一起控制,无法单控某个方向。

学习完语法糖,那么上面的公式就可以简化一下!
=SUMPRODUCT(C2:.C30*D2:.D30)

▍TRIMRANGE函数进阶

上面我们告诉大家他修剪了,但是你可能怀疑,所以是否有办法看一下实际情况呢?

下面我们就通过行列行数来测试一下!

区域默认的行数是14行、7列!

我们用下面的修剪语法书写后,看一下行列数 8 | 5,对应的就是从B3开始到F10,正好是8行、5列!

=ROWS(A1:G14) & "|" & COLUMNS(A1:G14)


当然使用TRIMRANGE也是一样,如果不是要单独控制一个方向,完全可以使用语法糖,更加简洁!

TRIMRANGE函数还有一个比较特殊的属性,那就是他的结果是一个引用,而不是值,这个特殊,目前只有极好函数具有,比如OFFSET、XLOOKUP、半个INDEX等,当然还有新增的一批动态数组函数,其中也有部分保留了单元格引用属性!!

如何测试一个函数结果是否是引用呢?只要使用ISREF即可!

这个特点,可以让我们把函数结果和其他单元格直接使用区域运算符!

目前刚出,有待进一步开荒挖掘,下面只是示意用法!
=TRIMRANGE(A1:G14):C25
修剪区域后和C25单元格形成一个新的矩形区域,这可以去掉冗余区域的情况下,根据需要保留最小区域!




▍TRIMRANGE函数实战2

过去我们做透视表,如果想实现动态数据区域,需要使用OFFSET配合COUNT等函数嵌套处理,现在这个问题处理起来非常轻松!

第一步:通过TRIMRANGE函数定义名称

引用位置部分,输入公式,根据实际数据扩展需要,保留多一些行和列!
=TRIMRANGE(Sheet2!$A$1:$Z$9999)

点击【插入】-【数据透视表】,区域位置中直接输入“=数据源",确定即可!

下面我们通过动画演示看一下数据扩展后,是否动态刷新

▼ 动画演示

把数据新增N行,为了更加直观,我们把数量修改的大一些,数据透视表右击刷新后,我们发现数据也同步过来了,再也不用每次都修改区域啦,完美~!

今天的内容就这里,更多Excel自动化办公技巧,欢迎关注我们,我是“E精精”


Excel办公实战
分享Excel及WPS函数、技巧、VBA、PBI、JSA等办公技能。助你轻松实现办公自动化!易办公◎早下班!
 最新文章