列出列中的前n项,其在第二列中具有最高总和

时间:2016-09-07 11:14:00

标签: excel

所以我有这样的传播方式,每一行都是与公司的合同:

Company | Revenue
------- | -------
Facebook| 1000000
Google  | 1000000
Facebook| 100000
John Doe| 123
John Doe| 100
John Doe| 8
John Doe| 50
foo inc.| 100

现在我想列出收入最多的前n家公司。让我们说n = 2它应该是这样的:

Company  | Revenue SUM
-------- | -----------
Facebook | 1100000
Google   | 1000000
remainder| 381

我正在寻找执行此操作的Excel公式,我无法使用VBA。我尝试使用SUMIFMATCH的数组公式,但我似乎没有把它弄好。

1 个答案:

答案 0 :(得分:0)

您可以使用公式(无数据透视表或VBA)完全执行此操作。使用 A 列和 B 列中的数据,在 E2 中输入:

=LARGE(B:B,ROW()-1)

并复制下来。这会对列 B 的内容进行排序。现在我们需要找到值所在的行。在 F2 中输入:

=MATCH(E2,B:B,0)

并在 F3 中输入:

=IF(COUNTIF($E$1:$E3,E3)>1,MATCH(E3,INDIRECT("$B" & F2+1 & ":B9999" ),0)+F2,MATCH(E3,B:B,0))

并复制下来。此公式获取行并处理 B 列中的重复项。

最后在 D2 中输入:

=INDEX(A:A,F2)

并复制下来:

enter image description here