Excel 前 10 名销售人员

Excel 前 10 名销售人员

我有一个电子表格,其中有销售人员的销售额,

   A      B             C        D
1  ID    Name        Product  Sales($)   
2  1    John Smith   Toaster   250
3  2    Dina Caan    Kettle    450
4  1    John Smith   Kettle    450
5  1    John Smith   Kettle    250
6  2    Dina Caan    Toaster   250
7  3    Peter Hues   TV        5400
8  3    Peter Hues   Radio     480
9  2    Dina Caan    Radio     100
10 4    Ralph Do     TV        890
11 4    Ralph Do     Radio     100
12 5    Ian Poe      Watch     750
13 6    Tina Hood    TV        450 
14 7    Peter Maan   Watch      99

我想要一个基于公式的 F 表,按总销售额显示前 n 个(比如 3 个)销售人员,标题为 ID 名称 TotalSales($)

我可以使用数据透视表轻松地完成此操作,然后过滤前 n 个,但在这种情况下,我想使用公式来完成此操作。

编辑:从结果表中删除产品。

答案1

使用 Excel 的新动态数组公式,您无需构建数据透视表即可获得结果,但这需要一些辅助单元格。请考虑以下屏幕截图:

在此处输入图片描述

F2 中的公式是 =UNIQUE(B2:B14),并且它没有被复制下来。

G2 中的公式=SUMIFS($D$2:$D$14,$B$2:$B$14,UNIQUE(B2:B14))未被复制下来。

然后可以使用 I2 中的公式得出按总销售额排名的前三名销售人员,=INDEX(SORTBY(F2#,G2#,-1),{1;2;3})同样不需要抄下来。

动态数组会“溢出”到公式所需的范围,引用动态数组的公式单元格将继承该溢出。这意味着,如果下次有新的销售人员,您无需更新 F 列中的唯一姓名列表。公式会自动执行此操作。

答案2

要按顺序获取最高销售额,请使用以下数组公式:

=LARGE(MODE.MULT(IF(MATCH($B$2:$B$14,B:B,0)=ROW($B$2:$B$14),SUMIFS(D:D,B:B,$B$2:$B$14)*{1,1})),ROW(1:1))

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。

为了获取 ID 和名称,我们可以利用另一个数组公式:

=INDEX(A:A,MATCH($I2,SUMIFS($D:$D,$B:$B,$B$2:$B$14),0)+1)

还需要按 Ctrl-Shift-Enter 然后复制下来。

在此处输入图片描述

相关内容