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

我在表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.

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

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

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

并拷贝到D列。 (当项目被添加到列D时 ,也拉下列E公式)

最后在F1input:

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

并抄下来。 在G1中input:

 =COUNTIF(D:D,F1) 

并抄下来:

在这里输入图像描述

注意:

FG列中的小频率表是“可分类的”。