
小伙伴们好,今天和大家分享一道关于统计求和的问题。这道题目的思路具有一定的代表性,可以供今后类似题目借鉴。
原题是这样子的:

求每科成绩都在80以上的最高总分。怎么样,朋友们都有看些好方法?
01 加个辅助列
加一个辅助列,并求和总成绩。问题是不是就变得很简单了?

在单元格E2中输入下列公式,三键回车即可。
=MAX((A2:A14>80)*(B2:B14>80)*(C2:C14>80)*D2:D14)这个公式很简单,满足“条件*条件*条件*数值区域“这样一个结构。不必细说了。
02 不想用辅助列,那就用SUBTOTAL函数
当不允许我们添加辅助列时,该怎么办呢?

在单元格E2中输入下列公式,三键回车即可。
=MAX((A2:A14>80)*(B2:B14>80)*(C2:C14>80)*SUBTOTAL(9,OFFSET($A$1:$C$1,ROW(A1:A13),0)))和上一个公式相比,仅仅是用SUBSTOTAL函数替代了单元格区域D2:D14。下面我们就着重讲一讲这个SUBTOTAL函数。
思路:
OFFSET($A$1:$C$1,ROW(A1:A13),0)部分,以$A$1:$C$1为基点,依次分别向下移动1、2、…、13行,形成一个三维内存数组外侧嵌套SUBSTOTAL函数对其就行求和。由于内存数组是三维的,所以不能使用SUM函数直接来求和,而SUBTOTAL函数是支持三维直接求和的最后一步就回到了上面讲的,MAX函数提取最大值03 不想写太多条件,,那也用SUBTOTAL函数
如果你觉得写三组条件太繁琐了,那可以试试下面这个方法。

在单元格E2中输入下列公式,三键回车即可。
=MAX((SUBTOTAL(5,OFFSET(A1:C1,ROW(A2:A14)-1,0))>80)*SUBTOTAL(9,OFFSET(A1:C1,ROW(A2:A14)-1,0)))思路:
这里用到了两次SUBSTOTAL函数。函数的使用方法和上面介绍的是一样的。第一个返回最小值并和80作比较;第二个则计算合计,最后求和最大值。04 公式太长?好,上MMULT函数!
最后这个使用了MMULT函数,公式整体上也更加简短。

在单元格E2中输入下列公式,三键回车即可。
=MAX((MMULT((A2:C14>80)*1,ROW(1:3)^0)=3)*MMULT(A2:C14,ROW(1:3)^0))思路:
这个公式也是连续使用两次MMULT函数,第一个求出每科成绩都大于80的部分,第二个求出成绩汇总,最后MAX函数返回最大值。朋友们如果对MMULT这个函数还有问题,可以后台私信我哦!
好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!
-END-