如果excel中一个单元格数据区域的数据杂乱无章,如何在不经排序的情况下快速求出最大的N个数值之和。要求出N个数值之和,需要使用SUM函数、LARGE函数、ROW函数。
如下图所示:利用数组公式求出销售额前三名的总和。
方法是,单击D15单元格,输入公式:=SUM(LARGE(D2:D13,ROW(A1:A3))),然后同时按下同时按Ctrl+Shift+Enter键结束公式的输入,即可得到前三名的销售额之和。
公式分析:公式的设计原理是利用ROW函数生成一个自然数数组常量{1;2;3……},然后利用LARGE函数得到一个最大的前N个数的数据序列,最后再用SUM函数对这个数据序列进行求和。
上面实例的是求3名最大数之和,公式是ROW(A1:A3),如果是求前5名最大数之和,公式则为ROW(A1:A5)。当然也可以不使用ROW函数,直接使用数组常量{1;2;3;4;5}这样的形式也是可以的。所以单击D15单元格,也可以输入这个公式:=SUM(LARGE(D2:D13,{1,2,3})),然后同时按下同时按Ctrl+Shift+Enter键结束公式的输入,也可以得到前三名的销售额之和。
延伸阅读:我们还可以使用INDIRECT函数和ROW函数,设计一个动态的计算前N个最大数字之后的表格。比如在K3单元格输入5,在K4单元格输入公式:=SUM(LARGE(D2:D13,ROW(INDIRECT("1:"&K3)))),然后同时按下同时按Ctrl+Shift+Enter键结束公式的输入,也可以得到前5名的销售额之和。设计完成后我们可以在K3单元格随意输入数字,都可以快速查询到前几名之和。
通过上面的实例,我们学会了利用数组公式求一个杂乱无章的单元格数据区域的N个最大数之和,如果我们将上面公式中的large函数改为small函数,即可求出数据区域内N个最小数之和。