Excel:公式化地创建前十名单

时间:2014-01-15 02:09:05

标签: excel excel-2013


TL; DR

  • 我正在寻找基于公式驱动的方法,根据用户选择的过滤器生成前10名列表
  • 基础数据包含多个前10个列表聚合方式的实例,即前10个供应商列表,其中基础数据包含每个供应商的多个交易


更多细节:

我正在由部门经理创建一个财务信息中心,其中包含各种财务指标。我正在寻找有关在此仪表板中构建“前10名”列表的指导,该列表会根据现有下拉列表中预算管理器的选择自动更新。

其中一个“十大”名单将是所使用的顶级供应商列表。

我尝试过LARGE(),RANK(),INDEX()和MATCH()公式的组合,但我无法让它们工作,主要是因为我的基础数据的结构

我用来驱动仪表板的数据包含整个公司的交易级别数据,即对于任何给定的供应商,有多个交易跨越部门,甚至在部门内,同一供应商将有多个交易(有时数百或数千) )。我需要按供应商总结所有活动,然后按每个部门经理的交易量对前10名供应商进行排名。此外,我的仪表板的其他部分可以显示所有经理的部门,或他/她管理下的任何一个部门(我有两个下拉列表来控制视图)。我想在“前十名”部分保留这种能力,但这不是一个交易破坏者。

出于我的特定目的,我无法真正使用数据透视表或数据表和/或手动更改过滤器。它没有与仪表板完美匹配,但更重要的是,数据透视表的“十大”功能带来了“空白”供应商,这些供应商几乎总是歪曲前10名。我不想对我的数据进行翻译或介绍手动解决方法,也不想维护每个月我需要手动更新的所有供应商的单独列表。

我在这些电路板上看起来有点巫术,所以希望有人可以帮我解决问题。

谢谢!


1 个答案:

答案 0 :(得分:0)

如果您的数据在A1中有一个列标题,在A2中有数据:A15则在C1中粘贴= A1并将下面的公式输入C2作为数组公式(而不是按Enter键按下control-shift-enter)。 C2然后给出A2中最频繁的值:A15。然后将C2复制到C3,C4,依此类推到C11,以获得下一个最常见的连续值。如果您的数据超出A15,则需要通过使用包含数据的范围替换A $ 1:A $ 15来更改论坛。如果你想要与C1:C11不同的列中的前十个列表,则需要将C $ 1:C1替换为前十个列表的标题所在的位置。

C2的公式:

= IF(COUNT(MODE(IF(COUNTIF(C $ 1:C1,A $ 1:A $ 15)= 0,MATCH(A $ 1:A $ 15 A $ 1:A $ 15,0)))),INDEX( A $ 1:A $ 15 MODE(IF(COUNTIF(C $ 1:C1,A $ 1:A $ 15)= 0,MATCH(A $ 1:A $ 15 A $ 1:A $ 15,0)))),VLOOKUP(“? *”,IF(COUNTIF(C $ 1:C1,A $ 1:A $ 15)= 0,A $ 1:A $ 15 “”),1,0))

注意:我没有想出这个可怕的事情。它来自http://excelusergroup.org/forums/t/201.aspx所以如果你想看看它是如何产生的,你可以在那里推导它。