显示Excel中的数据集中最大的“n”个项目

示例问题

我有一个数据表,其中包含销售代表,客户名称和销售额信息。 有两个汇总表,如上图所示。

哪个公式可以用来更新每个销售代表的前三名客户的姓名和金额? 目标是在特定时间段内挑选最大的三个销售额,并按照上面所示显示。 理想的解决scheme在Excel 2013中工作,不需要VBA,透视tablesor额外的插件,即它是基于公式的。

谢谢!

这两个公式都需要按CTRL + SHIFT + ENTER

此外,首先input金额表的公式,因为该表在客户表的公式中被引用。

为单元格I3中的金额input此公式并上下复制:

 =IFERROR(LARGE(IF($A$3:$A$29=$H3,$C$3:$C$29),COLUMNS($A:A)),"") 

然后这个公式为单元格E3中的客户和复制:

 =IFERROR(LOOKUP(SMALL(IF($D3=$A$3:$A$29,IF(I3=$C$3:$C$29,ROW($A$3:$A$29)-ROW($A$3)+1)),COUNTIF($I3:I3,I3)),ROW($A$3:$A$29)-ROW($A$3)+1,$B$3:$B$29),"") 

有两点需要指出:

  1. 客户表的公式考虑了关系(这就是为什么需要引用金额表)。 如果排名第三,则会首先select列表中显示的客户。

  2. 我用IFERROR函数包装这两个公式,以考虑销售代表可能只有两个客户(请参阅下面我的示例中的Janice)。 如果是这种情况,他们#3客户的单元格将返回“”。

使用此图像帮助排列公式:

在这里输入图像说明

这些公式将返回贾尼丝的前三名(假设名字在A1:A7 ,金额在B1:B7

 =LARGE(IF(A1:A7="Janice",B1:B7,0),1) =LARGE(IF(A1:A7="Janice",B1:B7,0),2) =LARGE(IF(A1:A7="Janice",B1:B7,0),3) 

您需要将它们input为数组公式,这意味着您input它们并按Ctrl+Enter