欢迎转发和点一下“在看”,文末留言互动!
置顶公众号或设为星标及时接收更新不迷路
小伙伴们好,今天和大家分享一道关于统计求和的问题。这道题目的思路具有一定的代表性,可以供今后类似题目借鉴。
原题是这样子的:
求每科成绩都在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-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”