显示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),"")
有两点需要指出:
-
客户表的公式考虑了关系(这就是为什么需要引用金额表)。 如果排名第三,则会首先select列表中显示的客户。
-
我用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
。