克里斯蒂安有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培训的来源。

本技巧(9422)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: