计算电子表格中的不同值
Posted
技术标签:
【中文标题】计算电子表格中的不同值【英文标题】:count distinct values in spreadsheet 【发布时间】:2013-01-01 02:21:46 【问题描述】:我有一个 Google 电子表格,其中有一列如下所示:
City
----
London
Paris
London
Berlin
Rome
Paris
我想计算每个不同城市的出现次数(所以我需要城市名称和出现次数)。
City | Count
-------+------
London | 2
Paris | 2
Berlin | 1
Rome | 1
我该怎么做?
【问题讨论】:
删除了我的答案,因为我无法创建一个工作示例。我建议看看IF()
和 COUNTIF()
的组合
【参考方案1】:
Link to Working Examples
解决方案 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
其他可能有用的链接
http://productforums.google.com/forum/#!topic/docs/a5qFC4pFZJ8【讨论】:
那行得通。谢谢。有趣的是,我已经在另一组中应用了第二种解决方案,但在这里没有想到。 对于解决方案 2:您可以将 B 列留空,然后使用“count”而不是“sum”: =sort(transpose(query(A3:B8,"Select count(B) pivot (A )")),2,FALSE) ...但是如何创建数据透视表?虽然这个答案看起来很棒而且很详细,但 dnlbrky 更直接的答案是拯救了我的答案。在这里,我什至没有注意到给出的更简单的替代 1 和 2 解决方案。太糟糕了:( @Balmipour Data > Pivot Table > 然后复制屏幕截图。 在您发表评论后才回到这里。我没有猜到“Pivot tables”的法语是“tableaux croisés dynamiques”。我想那天我可以搜索得更好一些,但至少,知道菜单选项就在“数据”中,让我能够找到它。【参考方案2】:您可以使用query
函数,因此如果您的数据位于第一行是列标题的col 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
【讨论】:
这种技术效果很好,在我的特殊情况下更容易应用。然而,奇怪的是,如果要计算的列中有多个不同的数值,查询似乎会中断(即它不会输出任何内容)。不过,当我将数值转换为它们的字符串等价物时,它就起作用了。 @MattV。我尝试将不同的数值添加到正在计算的列中,并且查询工作得很好。 docs.google.com/spreadsheets/d/… 要标记其他列,请准确重复它们的定义。在此示例中:label A 'City', count(A) 'Total'
【参考方案3】:
=iferror(counta(unique(A1:A100)))
计算从 A1 到 A100 的唯一单元格的数量
【讨论】:
你能解释一下这种情况下iferror()的作用吗? counta(unique(A1:A100)) 给了我想要的结果。 OP 并没有要求计算唯一值,但如果您确实需要,那么您可以使用 =COUNTUNIQUE(A:A) 来简化它【参考方案4】:不完全是用户的要求,而是一种计算唯一值的简单方法:
Google 推出了 new function 只需一步即可计算唯一值,您可以将其用作其他公式的输入:
=COUNTUNIQUE(A1:B10)
【讨论】:
这将只返回 1 个数字。唯一值的计数。但是,OP 询问如何计算每个唯一值。 @JoshuaDance 你是对的,但操作员的帖子被称为“计算电子表格中的不同值”。对我来说,这看起来像是对这个精确问题的合法答案。请注意,它不会将“空单元格”计为值 如果你们没问题,我现在就离开它。除非太多用户认为这是一个糟糕的答案,否则我将删除它。 @Balmipour 这正是我所需要的。 如果您来自 Google,这是正确的答案【参考方案5】:如果您只想计算唯一值的数量,例如以下范围
=counta(unique(B4:B21))
【讨论】:
【参考方案6】:这类似于@JSuar 的解决方案 1...
假设您的原始城市数据是一个名为dataCity
的命名范围。在新工作表中,输入以下内容:
A | B
----------------------------------------------------------
1 | =UNIQUE(dataCity) | Count
2 | | =DCOUNTA(dataCity,"City","City";$A2)
3 | | [copy down the formula above]
4 | | ...
5 | | ...
【讨论】:
【参考方案7】:=UNIQUE(filter(Core!L8:L27,isblank(Core!L8:L27)=false),query(ArrayFormula(countif(Core!L8:L27,Core!L8:L27)),"选择 Col1其中 Col1 0"))
核心!L8:L27 = 列表
【讨论】:
以上是关于计算电子表格中的不同值的主要内容,如果未能解决你的问题,请参考以下文章