如何在电子表格中输出最常见的值和该值的出现次数?

有一个列的Values与一些Strings ,然后显示下面最常见的值和该值的出现次数(即模式的Strings )。 这是一个例子。

 +--------+ | Values | +--------+ | AA | +--------+ | BB | +--------+ | AA | +--------+ | AA | +--------+ | GG | +--------+ | DD | +--------+ | DD | +--------+ | | +-----------------+--------+ | Most Common | AA | +-----------------+--------+ | Number of times | 03 | +-----------------+--------+ 

这将在Google Spreadsheets中完成! 有小费吗?

对于你的具体例子,让它成为A列,所以你有A1 ='AA',A2 ='BB',…,A7 ='DD'。

要查找最大元素出现的次数,我们要计算每个唯一的元素,然后返回最大计数,因此在一个单元格中使用公式

 =MAX(COUNTIF(A1:A7,A1:A7)) 

这是一个ARRAY公式,所以在Excel中你必须按Ctrl + Shift + Enter来使用它。 要在谷歌电子表格中使用,用ARRAYFORMULA包围它,所以它成为

 =ARRAYFORMULA(MAX(COUNTIF(A1:A7,A1:A7))) 

说明:内部countif对A1:A7的单元格进行计数,如果它们等于A1:A7中的每个值,并将它们放入一个列表中。 Max返回该列表中的最大值。

现在,为了得到实际的元素,我们有另一个ARRAY公式。 我们可以做一个索引/匹配查找来找出这个值,所以在函数的内部,max查找count值最大的值,然后传递给一个index + match函数来查找原始列表中的值

 =INDEX(A1:A7,MATCH(MAX(COUNTIF(A1:A7,A1:A7)),COUNTIF(A1:A7,A1:A7),0)) 

所以谷歌电子表格

 =ARRAYFORMULA(INDEX(A1:A7,MATCH(MAX(COUNTIF(A1:A7,A1:A7)),COUNTIF(A1:A7,A1:A7),0))) 

您将A1:A7的每个实例replace为数据的实际范围。

这篇文章是有帮助的: http : //www.mrexcel.com/forum/excel-questions/34530-mode-text-strings.html

您可以使用string和计数器创build映射,并在每次出现string时增加计数器。 我不知道Java脚本,但类似下面的sudocode应该工作计数出现次数:

 Dictionary<string, int> _map; foreach(cell in sheet.cells) { if(_map.contains(cell.value) == FALSE) { _map.add(cell.value) { _map.item(cell.value) += 1 // increment number of occurrences } 

在此之后,您应该循环查找最大的数字,存储其关联的string,并查找与最大数字的string关联的数字。

为了在Google Spreadsheet中实现这个function,上述function无效,而是返回超出范围错误。 我不得不修改一些格式。 这是有效的;

 =index(G14:ZZ14;;(MATCH(MAX(COUNTIF(G14:ZZ14,G14:ZZ14)),COUNTIF(G14:ZZ14,G14:ZZ14),0))) 

用您的范围replaceG14:ZZ14的5个引用。