当前位置:首页 > 软件教程 > Excel使用技巧 >

Excel在数据透视表中统计实现不重复值数量

时间:2016-08-17  来源:中国好系统  阅读:统计中... 次  评论:0 次(查看

在用数据透视表分析数据的过程中,有时需要统计某字段中不重复值(唯一值)的数量。例如下所示的数据源为一个随日期不断增加记录的销售流水表,其中各“分店”都有一些人员包含多条销售记录,如“姓名4”。现在需要在数据透视表中得到各“分店”有销售记录的人员数量,即得到表中各“分店”不重复“姓名”的数量。

数据透视表获取唯一值数量示例

如果直接在数据透视表中把“姓名”字段放到“数值”区域,仅能得到全部记录的计数值,而不是唯一的“姓名”数量。

直接用数据透视表时不能得到正确的结果

在这种情况下,可以用添加辅助列、使用SQL命令和利用PowerPivot的方法在数据透视表中得到不重复值数量。本文以上图中的数据为例,介绍在Excel 2010的实现方法,供参考。

方法一:添加辅助列

1.在表格的右侧增加一个辅助列,并设置一个列标题,如“人员数量”,在E4单元格中输入公式:

=IF(COUNTIF($C$4:C4,C4)=1,1,"")

然后填充公式到最后一行。

添加一个辅助列并输入公式

2.将数据区域转换为Excel 表格,这样当增加记录后,数据透视表可自动扩展数据源。方法是选择数据区域中的某个单元格,如C10单元格,依次选择“插入→表格”,弹出“插入表”对话框,单击确定。Excel将创建一个名称为“表1”的Excel表。

3.创建数据透视表。

选择上述表格中的某个单元格,依次选择“插入→数据透视表→数据透视表”,弹出“创建数据透视表”对话框,设置放置数据透视表的位置后确定。

创建数据透视表

将“分店”字段拖入到“行区域”,将“人员数量”字段拖入到“数值区域”。

右击数据透视表中的“人员数量”字段,选择“值字段设置”,在弹出的对话框中将该字段的“值汇总方式”由“计数”改为“求和”后确定,即可得到各“分店”中唯一“姓名”的数量。

设置“人员数量”字段的值显示方式

方法二:使用SQL命令

1.添加连接。

先保存工作簿,然后选择“数据”选项卡,在“连接”组中单击“链接”,弹出“工作簿连接”对话框。在对话框中单击“添加”按钮,打开“现有连接”对话框,单击“浏览更多”按钮。

在工作簿中添加连接

在“选取数据源”对话框中找到并选择当前工作簿后单击“打开”,弹出“选择表格”对话框。假如上述表格在“Sheet1”表中,选择“Sheet1”后确定。这时Excel在工作簿中添加了一个连接,连接的名称与当前工作簿相同。

选择工作表

2.在“工作簿连接”对话框中单击“属性”按钮,弹出“连接属性”对话框,选择“定义”选项卡,在“命令文本”中输入SQL命令:

select distinct 姓名, 分店 from [Sheet1$a3:d1000] where 分店 is not null

输入SQL命令

其中“select distinct ”语句返回字段中的不重复值,“[Sheet1$a3:d1000]”指定表及数据区域。单击“确定”,关闭“工作簿连接”对话框。

3.创建数据透视表。在功能区中选择“数据”选项卡,在“获取外部数据”组中单击“现有连接”,弹出“现有连接”对话框。在“此工作簿中的连接”下找到上述添加的连接,本例为“2012年销售流水”。

双击连接创建数据透视表

双击该连接或选择该连接后单击“打开”按钮,弹出“导入数据”对话框,选择“数据透视表”,并设置数据透视表的存放位置后确定。。

导入数据对话框

在“数据透视表字段列表”中将“分店”和“姓名”两个字段分别拖到“行区域”和“数值”区域即可。

将各字段拖入到相应的区域

另外,还可使用Microsoft Query来创建数据透视表,步骤如下。

1.在功能区中选择“数据”选项卡,在“获取外部数据”组中单击“自其他来源→来自Microsoft Query”,弹出“选择数据源”对话框,选择“Excel Files*”,单击“确定”按钮。此处默认已勾选“使用‘查询向导’创建/编辑查询”选项。

选择Excel文件作为数据源

2.弹出“选择工作簿”对话框,找到并选择当前工作簿后确定。

选择工作簿对话框

这时会弹出“查询向导”对话框。如果此时Excel提示“数据源中没有包含可见的表格”,“可用的表和列”区域为空,可用下面的方法让可用的表显示出来:单击对话框中的“选项”按钮,在弹出的对话框中同时勾选“表”和“系统表”后单击“确定”。有时对话框中的两个选项已处于选中状态,但“可用的表和列”区域仍然为空,可先取消选择“系统表”单击“确定”后,再次选择“系统表”并确定。由于数据在“Sheet1”工作表中,此处选择“Sheet1$”,单击“>”按钮将其添加到“查询结果中的列”区域中。

查询向导-选择列

接着单击三次“下一步”及“完成”按钮关闭“查询向导”,弹出“导入数据”对话框,单击“属性”按钮,弹出“连接属性”对话框,选择“定义”选项卡,在“命令文本”中输入上述SQL命令。

------分隔线------
  • 网友评论
  • 软件教程分类
  • 热点专题推荐