LibreOffice:计算列中的不同值

LibreOffice:计算列中的不同值

我有一列包含一些可重复的值,例如材料对象列表中的颜色名称。我如何计算每个唯一值出现的次数(例如,给定的 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 - 过滤

  1. 复制列数据,并粘贴到新工作表的 A 列中。
  2. 转到数据 -> 更多过滤器 -> 标准过滤器。
  3. 更改Field Name- none -。展开Options并检查No duplicates。按 OK。
  4. 在 B1 中,输入公式=COUNTIF($Sheet1.G1:G100,"="&A1)。将“G”更改为您在 Sheet 1 中使用的列。
  5. 将公式向下拖动。

获取不同值的链接位于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)

相关内容