在一组数据中,前提条件是不准排序,那么如何求得最大的M个数之和或者是最小的N个数之和呢?
首先我们看看下表,以图代讲。
如上图,A1:B8这个范围,是数据范围,数据没有规律,又不能排序,现在,摆在我们眼前的问题是,如果求得该范围中的数据的最大3个数之和、最小3个数之和?
如果要口算,通过观察,不难发现,最大的三个数分别是:100 100 99,那么,最大三个数之和则为299;而最小三个数分别为:9 12 33,此三数之和则为:54
现在,我们要做的不是口算,而是要通过公式来解决问题,以不变应万变,这样遇到很多很多的数据的时候,我们才能在最短的时间内准确的计算出来。
所使用的方法,当然,离不开函数之间的组合使用。
一、最大三个数之和
看下图的公式吧:公式是:=SUM(LARGE(A1:B8,ROW(A1:A3)))
这个时候你得注意,上图的公式为数组公式,应该在=SUM(LARGE(A1:B8,ROW(A1:A3)))基础上,让公式在此基础上,带一对大括号,输入的方法为:先输入公式:=SUM(LARGE(A1:B8,ROW(A1:A3)))后接着按下组合键Ctrl+Shift+Enter,这样,大括号就自动输入了。注意是自动输入,不是手动输入,手动输入的是无效的。
二、最小三个数之和
有了如上的基础,我们要求最小三个数之和就简单了。
公式为:=SUM(SMALL(A1:B8,ROW(A1:A3))),记得将其变为数组公式即可。
最后,我们为大家讲解一下公式的含义:
知识扩展:
Sum是求和函数,而LARGE是求最大的第N个数的函数,SMALL是求最小的第N个数的函数。最后的函数ROW是返回行序号的函数。
在这里,最难理解的就是ROW(A1:A3)这个地方了,这个地方返回的是一个数组,不是单个值,这里的ROW(A1:A3))),相当于数组:{1,2,3},因此,上述的公式:
=SUM(SMALL(A1:B8,ROW(A1:A3))),该公式可使用如下的两种公式代替,重点给大家讲解第二种:
第一种:=SUM(SMALL(A1:B8,ROW(1:3)))
第二种:=SUM(SMALL(A1:B8,{1,2,3})),这里的1,2,3代表三个。在整个公式中,代表求最大三个数之和。注意,此时的公式输入好之后,不需要按下Ctrl+Shift+Enter。
至于在这里,为什么要使用ROW(A1:A3)而不使用{1,2,3}的原因就在于,前者灵活,后者不灵活,比如,要你求最大6个数之和,你就得构造{1,2,3,4,5,6}这样的数组,万一要求最大100个之和,你就不好构造数组数据了,如果使用后者,则可以简单地写为:ROW(1:100)即可。当然,也可写为:ROW(A1:A100)。