2012-08-25 228 views
34

什么是计算电子表格列中出现次数的好方法?这可以通过一个阵列公式完成吗?计算列中出现的次数?

实施例(列A输入,列BC是自动生成的):

| A | B | C | 
+-------+-------+-------+ 
| Name | Name | Count | 
+-------+-------+-------+ 
| Joe | Joe |  2 | 
| Lisa | Lisa |  3 | 
| Jenny | Jenny |  2 | 
| Lisa |  |  | 
| Lisa |  |  | 
| Joe |  |  | 
| Jenny |  |  | 
+2

你也可以使用= ARRAYFORMULA(COUNTIF(A2:A8,“=”和B2:B8))。这是一个简单的方法。 – oshliaer

回答

36

Try:

=ArrayFormula(QUERY(A:A&{"",""};"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'";1))


22/07/2014在上个月一段时间,表格已经开始支持阵列的更灵活的级联,使用嵌入式阵列。因此该解决方案可能会稍微缩短为:

=QUERY({A:A,A:A},"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'",1)

+0

对我而言,A是日期。分组时,该日期转换为第二列的整数?我如何确保第二列的格式与第一列(日期)相同? – ghal

+0

这将如何更改为对多列执行相同操作? – noisygecko

31
=COUNTIF(A:A;"lisa") 

可以从列B替换单元格引用的标准

+1

再次阅读:“B”列*是自动生成*。 – feklee

77

更简单的方法,以本

在塔B的开始,型

= UNIQUE(A:A)

然后在列C中,使用

= COUNTIF(A:A,B1)

,并在所有行列C.

编辑复制它们:如果不为你工作,请尝试使用分号,而不是逗号:

= COUNTIF(A:A; B1)

+1

我刚刚检查过,实际上这看起来像一个优雅的解决方案!尽管如此,我现在仍然接受@AdamL的答案,因为它将所有内容都放在一行中,而不需要复制C列中的行。 – feklee

+0

我无法得到这个工作,你能明白为什么吗?这是一个示例电子表格https://docs.google.com/spreadsheets/d/1HWdVTQAdWKbsdzO80MtYqwk1rNigqnfqSk24hjNS3Wk/edit?usp=sharing – bluantinoo

+0

不知何故,在电子表格中,您需要使用分号而不是逗号,即= COUNTIF(B:B; C2 )。但是如果我自己创建一个新的电子表格,我可以使用逗号。不知道为什么.. –

1

=arrayformula(if(isblank(B2:B),iferror(1/0),mmult(sign(B2:B=TRANSPOSE(A2:A)),A2:A)))

我得到这个从一个很好的教程 - 不记得标题 - 大概使用MMULT

0

将下面的B3(信贷@亚历山大·伊万诺夫为COUNTIF条件):

={UNIQUE(A3:A),ARRAYFORMULA(COUNTIF(UNIQUE(A3:A),"=" & UNIQUE(A3:A)))} 

优点:它仅需要编辑1细胞时,它包括由唯一性过滤的名称,它是简洁。

缺点:它运行的独特功能3X

只有一次使用了独特的功能,将它分成2个细胞:

B3:=UNIQUE(A3:A)

C3:=ARRAYFORMULA(COUNTIF(B3:B,"=" & B3:B))