49

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

示例(列A输入,列BC自动生成的):

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

6 回答 6

116

一个更简单的方法

在 B 列的开头,键入

=UNIQUE(A:A)

然后在 C 列中,使用

=COUNTIF(A:A, B1)

并将它们复制到所有行列 C 中。

编辑:如果这对您不起作用,请尝试使用分号而不是逗号:

=COUNTIF(A:A; B1)
于 2013-03-09T11:03:29.970 回答
49

尝试:

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


22/07/2014 上个月的某个时候,Sheets 开始支持更灵活的数组串联,使用嵌入式数组。所以解决方案可以稍微缩短为:

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

于 2012-09-02T05:21:35.933 回答
41
=COUNTIF(A:A;"lisa")

您可以将条件替换为 B 列中的单元格引用

于 2012-08-26T13:48:01.853 回答
4

如果需要,只需添加一些额外的排序

=QUERY(A2:A,"select A, count(A) where A is not null group by A order by count(A) DESC label A 'Name', count(A) 'Count'",-1)

在此处输入图像描述

于 2020-01-02T01:39:40.510 回答
1
=arrayformula(if(isblank(B2:B),iferror(1/0),mmult(sign(B2:B=TRANSPOSE(A2:A)),A2:A)))

我从一个很好的教程中得到这个 - 不记得标题 - 可能是关于使用 MMult

于 2014-04-23T23:32:06.347 回答
0

将以下内容放在 B3 中(归功于 @Alexander-Ivanov 的 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))

于 2016-08-24T06:31:25.727 回答