【SUBTOTAL函数】和【OFFSET函数】动态求最值

作者:拓荒牛 分类:默认分类 时间:2026-09-20 08:23
开说 - 企业数字化部

OFFSET函数的偏移量除了常量外,还可以是公式生成的数组,从而形成三维引用,最终实现动态统计需求。

01

我们仍以上篇中的例子为例来演示具体过程。

在单元格B12中输入

“=MAX(SUBTOTAL(1,OFFSET($B$1,ROW($1:$6),0,1,6)))”

思路:

  • 要求出最大的平均销售量,首先要求出平均值的最大值。因此首先要用SUBTOTAL函数取得所有产品的平均销售量,再用MAX函数取得结果

  • OFFSET函数的偏移量由ROW函数生成的数组{1;2;3;4;5;6}决定

  • SUBTOTAL函数对OFFSET函数返回的三维引用进行分类计算,分别求出每一种产品的平均销售量

  • 最后由MAX函数取得最大值

这里SUBTOTAL函数的语法结构是:

SUBTOTAL(function_number, value1,value1...)

其中function_number包含11个数字,1表示求平均值

02

看到这里可能有的朋友会问了,为什么不能使用AVERAGE函数,将公式写成“=MAX(AVERAGE(OFFSET($B$1,ROW($1:$6),0,1,6)))”?

原因就在于:这里OFFSET函数产生了多维引用。SUBTOTAL函数支持函数返回的三维引用。故能返回正确结果;AVERAGE函数不支持函数返回的三维引用,故不能使用。

当前用户暂时关闭评论 或尚未登录,请先 登录 或 注册
暂无留言
版权所有:拓荒族 晋ICP备17002471号-6