首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

筛选状态下的计算套路,看晕的同学请举手

小伙伴们好啊,今天和大家分享一期筛选状态下的汇总计算公式。先提示一下哈,本期难度系数稍高,看不懂的同学也不用着急,咱们可以先收藏一下,如果工作中如果遇到类似问题,能够直接套用就好。

1、筛选后添加序号

在筛选后的表格里添加序号,并且这些序号始终保持连续,不会受筛选影响。

D2单元格公式为:

=SUBTOTAL(3,E$1:E2)-1

简要说明:

1、SUBTOTAL函数只统计可见单元格内容。

2、第一参数使用3,表示执行COUNTA函数的计算规则,也就是计算不为空的单元格个数。

3、公式始终计算从E列的第一行开始,到公式所在行这个动态扩展的区域中,处于可见状态的、非空单元格个数。

2、筛选后相乘

在筛选状态下,如何计算两列数据的乘积,并且对这些乘积再求和计算呢?

E2单元格公式为:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(E3,ROW(1:13),))*F4:F16*G4:G16)

简要说明:

1、OFFSET以E3单元格为基点,依次向下偏移1~13行,实现对E4~E16每个单元格的单独引用。

2、SUBTOTAL函数第一参数使用3,即依次统计E4~E16每个单元格的可见单元格个数,如果单元格处于显示状态,则对这个单元格的统计结果为1,否则统计结果为0。

得到类似以下效果:

3、再使用以上结果乘以F列的数量和G列的单价,如果单元格处于显示状态,则相当于1*数量*单价,否则相当于0*数量*单价。

4、最后使用SUMPRODUCT函数对乘积进行求和。

3、筛选后按条件计数

在筛选状态下,统计符合指定条件的个数。

E2单元格公式为:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(E3,ROW(1:13),))*(G4:G16>5))

简要说明:

1、前半部分计算原理与示例2相同。

2、仅改变后半段的统计条件为(G4:G16>5)

4、筛选后自动更正标题

在下面的表格中,要随着D列班组的筛选,自动更新表格标题。

D1单元格公式为:

=LOOKUP(1,0/SUBTOTAL(3,OFFSET(D1,ROW(1:15)-1,)),D:D)&"统计表"

简要说明:

1、SUBTOTAL与OFFSET函数结合部分,计算原理与示例2相同。

得到由0和1组成的内存数组:

2、用0/这个内存数组,如果是1,得到0,如果是0,则为错误值。

{#DIV/0!;0;#DIV/0!;0;#DIV/0!;……;#DIV/0!;0;#DIV/0!;……}

3、LOOKUP函数以1作为查询值,在以上内存数组中查找最后一个0的位置,并返回对应位置的D列的内容。

最终目的就是实现筛选后,提取最后一个处于显示状态的单元格内容。

4、将提取到的内容与&"统计表"连接,变成可自动更新的表格标题。

好了,今天的内容就和大家分享到这里,祝各位一天好心情~~

图文制作:祝洪忠

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191113A03M1R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券