【问题标题】:Selecting Top 10 with INDEX/MATCH使用 INDEX/MATCH 选择前 10 名
【发布时间】:2015-09-18 07:09:06
【问题描述】:

我正在尝试生成一份报告,显示每个月的前 10 名用户,但我有点不知道如何让它发挥作用。

我希望它的工作方式是从 E1 中选择日期并将结果填充到 E4 中。

我试过用这个公式

=INDEX($B$1:$B$15,MATCH($E$1,$A$1:$A$15&LARGE($B$1:$B$15,D4)*1,2))

但我不确定自己做错了什么。

这是我的报告的基本版本。

【问题讨论】:

  • LARGE 不能像 $B$1:$B$15 那样使用文本值。但主要问题是:每月排名前 10 的用户(颜色?)是什么?在计数方面?它们在一个月内上架的频率如何?
  • 嗨 Axel,我拥有的数据实际上是过去一年给我们打电话的公司和用户的列表,按 MMM-YY (Col A) 分组。我想我会用颜色来保持简单。因此,每个月都会因打电话的人以及他们打电话的次数而异。前 10 名应列出该月最常来电的 10 个。我希望这会有所帮助。

标签: excel indexing


【解决方案1】:

我假设您希望在列表中拥有前 10 名用户。我认为最简单的解决方案是使用数据透视表。创建此类表的步骤(我使用 Excel 2010):

  • 转到插入 -> 数据透视表
  • 报告过滤器设置为日期,行标签设置为用户,设置为用户计数:
  • 然后点击excel中行标签旁边的按钮,选择Value Filters -> Top 10。然后选择您想要的列的前 10 个(用户计数)。
  • 接下来,再次单击行标签旁边的按钮,然后单击更多排序选项...
  • 然后选择您想要的排序方式,我假设您想要:按用户计数降序。

【讨论】:

  • 感谢您的帮助。理想情况下,如果可能的话,我想将其用作公式
【解决方案2】:

在我看来,数据透视表解决方案是您能获得的最佳解决方案。但这是展示为什么数据透视表如此强大的一个很好的可能性。

对于公式解决方案,我需要三个辅助列:

公式:

C2 及以下:

=COUNTIFS(A:A,A2,B:B,B2)+MATCH(B2,B:B,0)/1000

D2 及以下:

{=SUM(($A$1:$A$100=A2)*($C$1:$C$100>=C2)*(IFERROR(MATCH($C$1:$C$100,$C$1:$C$100,0),0)=ROW($C$1:$C$100)))}

这是一个数组公式。放入不带大括号的单元格中,按[Ctrl]+[Shift]+[Enter]完成。

E2 及以下:

=A2+D2/1000

H4 及以下:

=INDEX(B:B,MATCH($H$1+G4/1000,E:E,0))

解释:

COUNTIFS 原则上没有问题。但是,如果不同颜色的数量相等,那么它们肯定需要进行不同的排名。所以第一次就变得复杂了。

那么,排名本身就会与项目和条件的多次出现混为一谈。我发现唯一的解决方案是使用性能非常差的数组公式。

为了获得前十名的查找列,我添加了排名第 1000 部分的日期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多