仅求和范围的最大部分(Microsoft Excel)
克里斯蒂安有18个包含值的单元格。他想找到该范围内12个最大值的总和,并想知道如何完成任务。
有几种方法可以解决此问题。例如,您可以过滤值,以便仅获得前十二个值,然后将它们求和。其他方法涉及使用其他列来存储中间值,但是我假设您希望使用一种不使用其他列的方法。
首先,假设您的18个单元格的范围是A1:A18。您可以使用LARGE函数查找最大值。例如,使用此公式将找到范围内的第二大值:
=LARGE(A1:A18,2)
这是函数的第二个参数,它按顺序指定所需的最大值。这样,您可以使用以下公式找出12个最大值的总和:
=LARGE(A1:A18,1)+LARGE(A1:A18,2)+LARGE(A1:A18,3)+LARGE(A1:A18,4) +LARGE(A1:A18,5)+LARGE(A1:A18,6)+LARGE(A1:A18,7)+LARGE(A1:A18,8) +LARGE(A1:A18,9)+LARGE(A1:A18,10)+LARGE(A1:A18,11)+LARGE(A1:A18,12)
但是,可以使用较短的公式来完成任务。
例如,您可以这样简单地从范围的总和中减去六个最小值:
=SUM(A1:A18)-SMALL(A1:A18,1)-SMALL(A1:A18,2)-SMALL(A1:A18,3) -SMALL(A1:A18,4)-SMALL(A1:A18,5)-SMALL(A1:A18,6)
如果需要,还可以使用SUMIF函数对值进行比较,并仅在满足指定条件的情况下将它们求和。例如,考虑以下两个公式:
=SUMIF(A1:A18,">="&LARGE(A1:A18,12)) =SUMIF(A1:A18,">"&SMALL(A1:A18,6))
第一个公式将求和所有大于或等于该范围内第十二个最大值的值。第二个效果相似;它将所有大于第六个最小值的值相加。
如果在“边界”处没有重复的值,那么这两个公式将非常有用。但是,如果有多个值符合第十二个最大值或第六个最小值,则公式将不会返回您期望的总和。在第一个公式中,总和将太大(因为所有重复值都加到了该和),而在第二个公式中,该总和将会太小(因为所有重复值都从了总和中排除了)。
解决此问题的方法是返回到较早的公式之一(不使用SUMIF的公式),或修改SUMIF公式,以便考虑重复值的可能性:
=SUMIF(A1:A18,">"&LARGE(A1:A18,12))+LARGE(A1:A18,12) * (12-COUNTIF(A1:A18,">"&LARGE(A1:A18,12)))
可能获得最佳结果的最佳公式可能会使LARGE函数的更早使用有所改变:
=SUM(LARGE(A1:A18,{1,2,3,4,5,6,7,8,9,10,11,12}))
该公式使用数组(括号内的部分),但不是数组公式。它的作用是将数组用作LARGE函数的第二个参数,从而返回所有十二个最大值。然后将它们相加并返回单个值。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(9420)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: