Q:如下图1所示,在工作表列A中有很多数据(为方便表述,示例中只放置了9个数据),这些数据中有很多重复数据,我想得到重复次数最多的数据是那个,示例中可以看出是“Excel”重复的次数最多,如何获得这个数据?
Q:如下图1所示,在工作表列A中有很多数据(为方便表述,示例中只放置了9个数据),这些数据中有很多重复数据,我想得到重复次数最多的数据是那个,示例中可以看出是“Excel”重复的次数最多,如何获得这个数据?
图1
A:可以使用一个数组公式:
=INDEX($A$1:$A$9,MODE(MATCH($A$1:$A$9,$A$1:$A$9,0)))
注意,数组公式是在公式输入完后,同时按下Ctrl+Shift+Enter组合键,Excel会自动在公式两侧加上花括号。
在上面的公式中:
MATCH($A$1:$A$9,$A$1:$A$9,0)
在单元格区域A1:A9中依次分别查找A1至A9单元格中的数据,得到这些数据第1次出现时所在的行号,从而形成一个由该区域所有数据第一次出现的行号组组成的数字数组。
MODE函数从上面的数组中得到出现最多的1个数字,也就是重复次数最多的数据在单元格区域所在的行。将这个数字作为INDEX函数的参数,得到想应的数据值。
有兴趣的朋友可以使用“公式求值”功能一步步查看数组公式的实现过程,来理解这个数组公式原理。
如果将单元格区域命名为MyRange,那么上述数组公式可写为:
=INDEX(MyRange,MODE(MATCH(MyRange,MyRange,0)))
但是,如果单元格区域中有几个数据重复次数相同且都出现次数最多,则上述公式只会获取第1个数据,其他的数据怎么得到呢?