我有一个 Google 电子表格,其中有一列如下所示:
City
----
London
Paris
London
Berlin
Rome
Paris
我想统计每个不同城市的出现次数(所以我需要城市名称和出现次数)。
City | Count
-------+------
London | 2
Paris | 2
Berlin | 1
Rome | 1
我该怎么做?
解决方案0
这可以使用数据透视表来完成。
解决方案1
使用
unique
公式获取所有不同的值。然后使用 countif
获取每个值的计数。请参阅顶部的工作示例链接,了解其具体实现方式。
Unique Values Count
=UNIQUE(A3:A8) =COUNTIF(A3:A8;B3)
=COUNTIF(A3:A8;B4)
...
解决方案2
如果您这样设置数据:
City
----
London 1
Paris 1
London 1
Berlin 1
Rome 1
Paris 1
然后以下将产生所需的结果。
=sort(transpose(query(A3:B8,"Select sum(B) pivot (A)")),2,FALSE)
我确信有一种方法可以摆脱第二列,因为所有值都将为 1。在我看来,这不是一个理想的解决方案。
通过 http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html
其他可能有用的链接
您可以使用
query
函数,因此如果您的数据位于 A 列中,其中第一行是列标题...
=query(A2:A,"select A, count(A) where A != '' group by A order by count(A) desc label A 'City'", 0)
产量
City count
London 2
Paris 2
Berlin 1
Rome 1
指向工作 Google 表格的链接。
https://docs.google.com/spreadsheets/d/1N5xw8-YP2GEPYOaRkX8iRA6DoeRXI86OkfuYxwXUCbc/edit#gid=0
=iferror(counta(unique(A1:A100)))
计算从 A1 到 A100 的唯一单元格数量
如果您只想计算例如中的唯一值的数量,则此方法有效。以下范围
=counta(unique(B4:B21))
现在随着最近发布的
LAMBDA
功能,这可以做得更加优雅..
={UNIQUE(A2:A7),MAP(UNIQUE(A2:A7),LAMBDA(city,COUNTIF(A2:A7,city)))}
这类似于@JSuar 的解决方案 1...
假设您的原始城市数据是一个名为
dataCity
的命名范围。在新工作表中,输入以下内容:
A | B
----------------------------------------------------------
1 | =UNIQUE(dataCity) | Count
2 | | =DCOUNTA(dataCity,"City",{"City";$A2})
3 | | [copy down the formula above]
4 | | ...
5 | | ...
=UNIQUE({filter(Core!L8:L27,isblank(Core!L8:L27)=false),query(ArrayFormula(countif(Core!L8:L27,Core!L8:L27)),"select Col1 where Col1 <> 0")})
其中
Core!L8:L27
是问题中的列表。