提到Substotal函数,很多同学都知道它是一个可以忽略隐藏行统计的万能函数,它虽然不如AGGREGATE支持更多的统计函数和排除错误值功能,但它有一个神密武器,就是: 逐行运算功能
先从一个小的示例开始:
【例】如下图所示,要求统计所有人员中合计最大的金额。
=MAX(H:H)
上图中有合计列,小学生都会设置公式,但如果没有合计列(H列),该怎么计算呢?
那需要每一个都相加,然后再提取最大值。
生成每一行可以用offset函数来完成:第一行向下偏移1~6行即可。
=OFFSET(B1:G1,ROW(1:6),0)
但求和时你会发现Sum只能返回一个值(第1列的和),而且当你按ctrl+shift+enter后,又返回第一行的和。
算不出每一行的行,计算和的最大值就无法进行。如果用Subtotal函数则可以返回一组值,即每一行的和。
=SUBTOTAL(9,OFFSET(B1:G1,ROW(1:6),0))
9:第一个参数为9表示求和
注: 站长是office365可以在单元格显示所有的值,如果你是其他版本,你选中公式部分按F9键,就可以看到这一组值了。
接下来就可以用MAX或其他函数进行下一步统计了,如果你是老版本,需要在公式后按ctrl shift enter三键输入数组公式。
=MAX(SUBTOTAL(9,OFFSET(B1:G1,ROW(1:6),0)))
另:昨天站长介绍了另一个万能函数AGGREGATE,经测试它没有逐行运算功能
=AGGREGATE(9,0,OFFSET(B1:G1,ROW(1:6),0))
subtotal函数还有一个经典应用,提取筛选后的值:
=LOOKUP(1,0/SUBTOTAL(3,OFFSET(A1,ROW(1:6),0)),A2:A7)
注:非office365版本如果无法计算可以按ctrl shift enter三键输入数组公式
Ps:很多同学不知道也不会用substotal函数的逐行运算功能,只有少数Excel函数高手才能体会到它的强大之处。
微信扫一扫加关注,Office自学网官方微信公众号,
专注分享软件安装和视频教程,让你一号在手,办公无忧!