多条件求最大和值,这几种方法由简入繁,却都挺管用的!

文摘   教育   2024-11-01 20:00   上海  




欢迎转发和点一下“看”,文末留言互动!

置顶公众号或设为星标及时接收更新不迷路





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

 

原题是这样子的:





求每科成绩都在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操作问题时不再迷茫无助


我就知道你“在看”


推荐阅读

Excel应用之家
介绍、交流EXCEL各项功能在工作中的实际应用; 为你答疑解惑;分享各类图表、表格和模板;提供有偿代工服务。
 最新文章