计算电子表格中的不同值

Mar*_*ila 69 count distinct google-sheets

我有一个Google电子表格,其中的列如下所示:

City
----
London
Paris
London
Berlin
Rome
Paris
Run Code Online (Sandbox Code Playgroud)

我想计算每个不同城市的外观(所以我需要城市名称和出现次数).

City   | Count
-------+------
London |  2
Paris  |  2
Berlin |  1
Rome   |  1
Run Code Online (Sandbox Code Playgroud)

我怎么做?

JSu*_*uar 87

链接到工作示例

解决方案0

这可以使用数据透视表来完成.

数据透视表示例 - 按值计算行数

解决方案1

使用unique公式获取所有不同的值.然后countif用来获取每个值的计数.请参阅顶部的工作示例链接,以确切了解其实现方式.

Unique Values        Count
=UNIQUE(A3:A8)       =COUNTIF(A3:A8,B3)
                     =COUNTIF(A3:A8,B4)
                     ...
Run Code Online (Sandbox Code Playgroud)

解决方案2

如果您按如下方式设置数据:

City    
----    
London   1
Paris    1
London   1
Berlin   1
Rome     1
Paris    1
Run Code Online (Sandbox Code Playgroud)

然后以下将产生所需的结果.

=sort(transpose(query(A3:B8,"Select sum(B) pivot (A)")),2,FALSE)
Run Code Online (Sandbox Code Playgroud)

我确信有一种方法可以摆脱第二列,因为所有值都是1.在我看来,这不是一个理想的解决方案.

通过http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html

其他可能有用的链接


d-_*_*_-b 19

=iferror(counta(unique(A1:A100))) 计算从A1到A100的唯一单元格数

  • OP并没有要求计算唯一值,但是如果你想要那么你可以通过使用= COUNTUNIQUE(A:A)来简化它 (5认同)
  • 在这种情况下你能解释iferror()的功能吗?counta(独特(A1:A100))给了我正在寻找的结果. (2认同)

小智 12

你可以使用这个query函数,所以如果你的数据在col A中,那么第一行就是列标题......

=query(A2:A,"select A, count(A) where A != '' group by A order by count(A) desc label A 'City'", 0)
Run Code Online (Sandbox Code Playgroud)

产量

City    count 
London  2
Paris   2
Berlin  1
Rome    1
Run Code Online (Sandbox Code Playgroud)

链接到工作的Google表格.

https://docs.google.com/spreadsheets/d/1N5xw8-YP2GEPYOaRkX8iRA6DoeRXI86OkfuYxwXUCbc/edit#gid=0


Fab*_* PH 11

不完全是用户要求的,而是一种计算唯一值的简单方法:

Google 引入了一个新函数,只需一步即可计算唯一值,您可以将其用作其他公式的输入:

=COUNTUNIQUE(A1:B10)

  • @JoshuaDance 你是对的,但 op 的帖子被称为“计算电子表格中的不同值”。对我来说,这看起来像是对这个精确问题的合法答案。请注意,它不会将“空单元格”视为值 (3认同)

小智 7

如果您只想要以下范围内的唯一值计数,则此方法有效

=counta(unique(B4:B21))
Run Code Online (Sandbox Code Playgroud)