简单的数据透视表,用于计算唯一值数量

139

这似乎是一个简单的透视表。我想对我正在分组的特定值进行唯一值的计数。

例如,我有这个:

ABC   123
ABC   123
ABC   123
DEF   456
DEF   567
DEF   456
DEF   456

我想要的是一个数据透视表,它能够展示给我这样的结果:

ABC   1
DEF   2

我创建的简单数据透视表只是给了我这个(行数的计数):

ABC   3
DEF   4  

但我希望得到唯一值的数量。

我真正想做的是找出第一列中所有行的第二列值不相同的值。换句话说,“ABC”是“good”,“DEF”是“bad”。

我相信有更简单的方法,但想试试透视表...


9
请注意,对于最近版本的Excel,这个答案最为方便。 - Dennis Jaheruddin
16个回答

1
你可以使用COUNTIFS进行多个条件的计数,
=1/COUNTIFS(A:A,A2,B:B,B2) 然后向下拖动。你可以放置任意数量的条件,但这往往需要较长的处理时间。

0

你也可以使用VLOOKUP作为辅助列。我测试过,它似乎比COUNTIF快一点。

如果你在单元格A2开始使用标题和数据,那么在同一列的任何单元格中使用这个公式,并将其复制到其他所有单元格中:

=IFERROR(IF(VLOOKUP(A2;$A$1:A1;1;0)=A2;0;1);1)

0
如果您已经将数据排序,我建议使用以下公式。
=IF(OR(A2<>A3,B2<>B3),1,0)

它使用更少的单元格计算,因此速度更快。


0

我通常按照需要进行唯一计数的字段对数据进行排序,然后使用IF(A2=A1,0,1);这样你就可以在每个ID组的顶部行中获得一个1。简单而且不需要在大型数据集上计算太多时间。


0
你可以添加一列来存储唯一性,然后在数据透视表中对其进行求和。
我的意思是,单元格C1应该始终为1。单元格C2应包含公式=IF(COUNTIF($A$1:$A1,$A2)*COUNTIF($B$1:$B1,$B2)>0,0,1)。将此公式复制下来,使得单元格C3包含=IF(COUNTIF($A$1:$A2,$A3)*COUNTIF($B$1:$B2,$B3)>0,0,1),以此类推。
如果你有一个标题单元格,你需要将它们全部向下移动一行,并且你的C3公式应为=IF(COUNTIF($A$2:$A2,$A3)*COUNTIF($B$2:$B2,$B3)>0,0,1)。

-3

我发现了一个更简单的方法。参考Siddarth Rout的示例,如果我想要计算列A中唯一值的数量:

  • 添加一个新的列C,并在C2中填写公式“=1/COUNTIF($A:$A,A2)”
  • 将公式拖动到该列的其余部分
  • 使用列A作为行标签进行数据透视表,并将Sum{column C)用于值,以获取列A中唯一值的数量

从逻辑上讲,这对OP来说不可能起作用,因为它没有查看列“B”。你将如何使其适用于多个列? - ErikE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接