在excel中获取列中最高的'n'值

我有一张xls表,这是过去20年来行业的收入数据。 我需要从xls表中获得前3名或5名或10名(这个数字是dynamic的)任何特定部门的收入值。

我已经使用下面的粘贴公式来获得前3个值,但现在我需要的前n个值,其中n是一个dynamic数字。

=SUM(LARGE(IF('Sector Data'!C$3:C$1000="Energy",'Sector Data'!D$3:D$1000),{1,2,3})) 

有人可以请帮助获得VBA代码或xls公式来完成这个工作。

  1. 投入工业1工业2可选消费品3财务4公用事业5工业6工业7可选消费品8财务9公用事业10财务11金融12金融13可选消费品14可选消费品15公用事业16公用事业17可选消费品18可选消费品19公用事业20

    1. 输出前3名
      工业15财务36公用事业53可选消费品52

试试这个公式,并使用下面的图片来匹配范围。 您可以在电子表格中创build一个单元格,作为您希望N的input,类似于我在这里所做的。 您需要使用CTRL + SHIFT + ENTERinput公式。

 =SUM(LARGE(IF('Sector Data'!C$3:C$1000="Energy",'Sector Data'!D$3:D$1000),ROW(INDIRECT("A1:A"&G3)))) 

在这里输入图像说明

你已经得到一个数组公式的答案。 这是一个标准的。

 =SUMIFS($D$3:$D$9999, $C$3:$C$9999, "energy", $D$3:$D$9999, ">="&AGGREGATE(14, 6, $D$3:$D$9999/($C$3:$C$9999="energy"), G3))