我有一列包含一些可重复的值,例如材料对象列表中的颜色名称。我如何计算每个唯一值出现的次数(例如,给定的 100 行中有 5 个红色、15 个绿色和 80 个黑色)?我无法使用,COUNTIF
因为我不知道可能出现的所有“颜色”。
用 SQL 方式我会做类似的事情
SELECT count(`color`), `color` FROM `MyTable` goup by `color`
答案1
电子表格无法像 SQL 那样轻松地完成此操作,但这里有两种解决方案。
方法 1 - 数据透视表
确保列的第一行包含标签,例如Color
。在下一列中,将标签设置为。输入所有颜色Count
的数量。1
Color Count
red 1
green 1
red 1
然后,选择这两列并转到数据 -> 数据透视表 -> 创建。拖动Color
到行字段,然后拖动Count
到数据字段。
方法 2 - 过滤
- 复制列数据,并粘贴到新工作表的 A 列中。
- 转到数据 -> 更多过滤器 -> 标准过滤器。
- 更改
Field Name
为- none -
。展开Options
并检查No duplicates
。按 OK。 - 在 B1 中,输入公式
=COUNTIF($Sheet1.G1:G100,"="&A1)
。将“G”更改为您在 Sheet 1 中使用的列。 - 将公式向下拖动。
获取不同值的链接位于https://stackoverflow.com/a/38286032/5100564。
答案2
另一个简单的选择:
假设:
- 您的数据已排序
- 对于下面的示例,您的数据在 A 列(相应调整)。
- 对于下面的示例,您在第 2 行输入公式。
在第 2 行添加一个新列,并创建下面的公式,然后将其复制到所有其他行。
IF(A2 == A1, 0, 1)
1
然后,每当值与上一行不同时,您就会在该列中得到一个。然后,您只需将这些1
值相加即可:
SUM(B2:B?)
您的电子表格将如下所示:
1 "A" | "B"
-------------
2 VALA 1 <-- IF(A2 == A1, 0, 1)
3 VALA 0
4 VALA 0
5 VALB 1
6 VALB 0
7 VALC 1
8 VALD 1
9 VALD 0
10 4 <-- SUM(B2:B9)