您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页Excel提取不重复值其实很简单!

Excel提取不重复值其实很简单!

来源:筏尚旅游网


Excel提取不重复值其实很简单!

要将一个多行多列区域中不重复的数据提取到一列,即对于重复的数据只提取一次,最直接的做法是先将该区域的数据转到一列中,再利用Excel2007/2010中的删除重复项功能去掉重复值。另外,还可使用数据透视表、数组公式和VBA的方法来提取,本文以Excel 2010为例分别介绍如下:

假如数据在A1:C11区域,其中还包含一些空单元格,如图所示。

方法一:利用数据透视表

利于数据透视表的多重合并计算功能,将上述数据区域作为数据透视表的多重合并计算数据区域,把“值”字段放到在数据透视表的行区域中,即可得到不重复值。步骤如下:

1、在区域左侧插入空白列。如果原数据区域不是从A列开始,则可跳过此步骤。在本例中,由于原数据区域包含工作表的第一列(A列),需先在该区域的左侧插入一个空白列,作为数据透视表的行字段。

2、选择数据区域中的某个单元格,按Alt+D,再按P键,打开“数据透视表和数据透视图向导”,选择“多重合并计算数据区域”项,单击“下一步”。

3、再次单击“下一步”,在弹出的对话框中选择并添加数据区域。在选择区域时注意要包含原数据区域的左侧列及标题列。本例为包含上述空白列的A1:D11。

单击“下一步”,在弹出的对话框中选择数据透视表存放的位置,单击“完成”按钮。本例将数据透视表放置在当前工作表F3单元格开始的区域中。

4、在数据透视表的字段列表中取消选择所有字段,然后再次勾选“值”字段,或将“值”字段拖入到“行”标签区域中,即可在F列得到原区域中的不重复值。

方法二:使用数组公式

假如数据在A1:C11区域,在E2单元格中输入数组公式:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$11<>'')*(COUNTIF($E$1:E1,$A$2:$C$11)=0),ROW($2:$11)*100+COLUMN($A:$C),7^8)),'R0C00'),)&''

公式输入完毕,按Ctrl+Shift+Enter结束。然后拖动填充柄向下填充公式,直到出现空白为止。

如果区域中的数据全部为数字和空单元格,还可用下面的数组公式:

=LARGE(IF($A$2:$C$11='','',$A$2:$C$11),SUM(COUNTIF($A$2:$C$11,$E$1:E1))+1)

方法三:使用VBA

下面的VBA代码利用Dictionary对象中的关键字具有唯一性的特点得到不重复值。使用方法是按Alt+F11打开VBA编辑器,在代码窗口中粘贴下列代码并运行,即可在F列可得到A2:C11区域中的不重复值。

Sub Uniquedata()

Dim rCell As Range

'创建Dictionary对象

Set d = CreateObject('Scripting.Dictionary')

'遍历数据区域的单元格

For Each rCell In Range('A2:C11')

'判断单元格是否为空

If rCell <> '' Then

'如果Dictionary对象中不包含指定的关键字就添加该关键字和条目

If Not d.exists(rCell.Value) Then d.Add rCell.Value, rCell.Value

End If

Next

'清除指定列内容

Range('F2:F'

Range('F2').End(xlDown).Row).ClearContents

&

'将Dictionary对象中的条目写入指定列

Range('F2').Resize(d.Count) WorksheetFunction.Transpose(d.Items)

=

End Sub

“天道酬勤·人道酬善·商道酬信”,名匠装饰致力于打造学术型企业,以高端设计为核心竞争力,为客户提供整体家居解决方案,创造不可复制与无法替代的附加值,以国际化的视野创造领先业界的设计理念与文化体系。

“精雕细琢·名匠本色”,名匠装饰以设计与文化为根,诚信与品质为本,把每一项工程都看成一件艺术品,为广大业主雕琢独一无二的尊贵府邸。

在未来的发展道路上,名匠装饰将一如既往以专业的设计、优质的工程和卓越的服务回报每一位业主,全力推动中国人居进程!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务