简单的数据透视表来计算唯一值

use*_*422 134 excel pivot-table excel-formula

这似乎是一个简单的数据透视表来学习.我想为我正在分组的特定值计算唯一值.

例如,我有这个:

ABC   123
ABC   123
ABC   123
DEF   456
DEF   567
DEF   456
DEF   456
Run Code Online (Sandbox Code Playgroud)

我想要的是一个数据透视表,向我展示了这个:

ABC   1
DEF   2
Run Code Online (Sandbox Code Playgroud)

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

ABC   3
DEF   4  
Run Code Online (Sandbox Code Playgroud)

但我想要的是唯一值的数量.

我真正想要做的是找出第一列中哪些值在所有行的第二列中没有相同的值.换句话说,"ABC"是"好","DEF"是"坏"

我确信有一种更简单的方法可以做到这一点,但我想我会试试枢轴表......

Mea*_*ald 248

更新:您现在可以使用Excel 2013自动执行此操作.我已将此创建为新答案,因为我之前的答案实际上解决了稍微不同的问题.

如果您有该版本,则选择您的数据以创建数据透视表,并在创建表时,确保选中"将此数据添加到数据模型"复选框(见下文).

勾选

然后,当您的数据透视表打开时,通常会创建行,列和值.然后单击要计算其不同计数的字段并编辑"字段值设置": 编辑字段值设置

最后,向下滚动到最后一个选项,然后选择"Distinct Count". 选择

这应该更新您的数据透视表值以显示您正在查找的数据.

  • 仅供参考:如果您尚未将文件保存为Excel(.xlsx)文件(例如:您打开了.csv文件),则"将此数据添加到数据模型"选项将被禁用/显示为灰色.简单的解决方案是将文件保存为Excel文件. (11认同)
  • 这不支持Mac吗?此选项不适合我.我的版本是15.27. (8认同)
  • @MichaelK如果你有Excel 2013就好多了 (5认同)
  • 这也可以用于现有的数据透视表,因此我们不需要重新创建200多个表来访问不同的计数功能吗? (3认同)
  • 这个选项在Mac上确实不存在,因为数据模型通常是仅限Windows的功能. (3认同)
  • @Sawd如果您尝试将使用数据模型功能的文件保存为较旧的Excel格式,则会收到警告"某些数据透视表函数将无法保存" - 我假设任何尝试以Excel 2010打开此文件的人都不会能够看到它.如果您尝试传输数据,则可以始终复制数据透视表并将值粘贴到新工作表中.不理想,但始终兼容!:) (2认同)

Sid*_*out 106

插入第3列并在Cell中C2粘贴此公式

=IF(SUMPRODUCT(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,1)
Run Code Online (Sandbox Code Playgroud)

并将其复制下来.现在根据第1列和第3列创建您的数据透视表.查看快照

在此输入图像描述

  • 请注意,如果使用"数据透视表"选项过滤掉某些行,则此答案将不会提供正确的解决方案.假设第一行被过滤掉了.然后,ABC的总和将显示为0! (13认同)
  • 很好的技术.我不知道这个.您可以使用数组函数`= IF(SUM((A $ 2:A2 = A2)*(B $ 2:B2 = B2))> 1,0,1(1)`来执行相同的操作(按Ctrl-Shift-Enter时输入公式,使其获得围绕它的"{}". (2认同)

Mea*_*ald 10

我想在混合中添加一个不需要公式的附加选项,但如果需要在两个不同的列中计算集合中的唯一值,则可能会有所帮助.使用原始示例,我没有:

ABC   123  
ABC   123  
ABC   123   
DEF   456  
DEF   567  
DEF   456  
DEF   456
Run Code Online (Sandbox Code Playgroud)

并希望它显示为:

ABC   1  
DEF   2
Run Code Online (Sandbox Code Playgroud)

但更像是:

ABC   123  
ABC   123  
ABC   123  
ABC   456  
DEF   123  
DEF   456  
DEF   567  
DEF   456  
DEF   456
Run Code Online (Sandbox Code Playgroud)

并希望它显示为:

ABC  
   123    3  
   456    1  
DEF  
   123    1  
   456    3  
   567    1
Run Code Online (Sandbox Code Playgroud)

我找到了将数据转换为此格式的最佳方法,然后能够进一步操作它是使用以下内容:

在此输入图像描述

选择"Running total in"后,选择辅助数据集的标题(在这种情况下,它将是包含123,456和567的数据集的标题或列标题).这将为您提供主数据集中该集合中项目总数的最大值.

然后我复制了这些数据,将其粘贴为值,然后将其放在另一个数据透视表中,以便更轻松地操作它.

仅供参考,我有大约25万行数据,所以这比一些公式方法要好得多,特别是那些试图比较两列/数据集的方法因为它不断崩溃应用程序.


Pet*_*ter 6

我发现最简单的方法是使用下面的Distinct Count选项Value Field Settings(左键单击Values窗格中的字段).选项Distinct Count位于列表的最底部.

点击位置

这是之前(TOP;正常Count)和之后(BOTTOM; Distinct Count)

计数

DISTINCT COUNT

  • 从Office 2016开始:为了能够使用此功能,应在选中“将此数据添加到数据模型”的情况下创建数据透视表。 (2认同)