Excel:查找范围内最常出现的值?

时间:2017-01-27 22:41:39

标签: excel formula

我在表1上有一栏如下:

Column D
    Dog
    Dog
    Dog
    Dog
    Cat
    Cat
    Cat
    Hamster
    Frog
    Frog

在表2中,我想按时间顺序列出前10个最常出现的单词

Dog .  <---Most Frequent
Cat .  <---Second Frequent
Frog . <--Third
etc.

我正在尝试使用索引,模式和匹配,如下所示:

=INDEX(Sheet1!D:D,MODE(MATCH(Sheet1!D:D,Sheet1!D:D,0)))

这会产生N / A错误

但是,如果我添加范围到我的列引用,如下所示:

=INDEX(Sheet1!D1:D10,MODE(MATCH(Sheet1!D1:D10,Sheet1!D1:D10,0)))

然后它有效。

问题是数据将被添加到列D中,我需要它来查找整个列D.

请有人告诉我我哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

如果我们使用辅助列,我们可以完全消除对数组公式的需求。在 E1 中输入1,在 E2 中输入:

=IF(COUNTIF($D$1:D1,D2)>0,"",1+MAX($E$1:E1))

并向下复制到 D 列。 (项目已添加到 D 栏中,同时将列 E 公式拉下来)

最后在 F1 中输入:

=IFERROR(INDEX(D:D,MATCH(ROWS($1:1),E:E,0)),"")

并复制下来。在 G1 中输入:

=COUNTIF(D:D,F1)

并复制下来:

enter image description here

注:

F G 中的小频率表是“可排序的”。