分享

Excel取唯一值的五种方法

 L罗乐 2016-11-25

来自IT部落窝

链接:http://www./article/1473.html

内容提要
文章总结Excel中取唯一值的多种方法:分别用函数、技巧、透视、VBA多种方法实现取唯一值。

Excel取唯一值,也称为提取不重复。在实际工作中,经常会使用到。


Excel取唯一值的方法很多,比如通过高级筛选、函数公式以及自定义函数都可以实现。


我们以下图为例,A列城市,有重复的。需要提取唯一值放在C列。


方法一:


使用Excel流行的筛选公式实现,C1输入公式:=INDEX(A:A,SMALL(IF(MATCH(A$2:A$9,A$2:A$9,)=ROW($1:$8),ROW($2:$9),4^8),ROW(A1)))&'',按Ctrl Shift Enter组合键结束。


方法二:


单击数据——高级筛选,可以直接筛选不重复值,即唯一值。使用高级筛选需要注意一点的是,必须包含列字段。比如下图A2:A9只是数据内容,需要再选中A1,即列表区域为:A1:A9。其设置参看下图就OK。


方法三:


Excel中数据透视表本身就有去重复功能。单击插入——数据透视表,然后勾选“城市”字段,唯一值就提取出来了。最后,也可以将数据透视表提取出来的唯一值复制到其余单元格,然后把不需要的数据透视表删得即可。


具体可以参看下面的动画演示,很简单的操作过程。


方法四:


学习VBA的朋友,也可以使用自定义函数取唯一值。


方法是:按Alt F11组合键,插入→模块→在VBE窗口中复制以下代码,回到工作表中,C1单元格输入公式:=wsingle($A$1:$A$9,ROW(A1)),下拉,直到出现0为止,A列所有的唯一不重复值就别提取出来了。


Function Wsingle(rng1 As Range, x As Integer)
Dim m As Range
Dim n As Range
Dim i As Integer
For Each m In rng1
    k = k 1
    If k > Application.WorksheetFunction.CountA(rng1) 10 Then Exit Function
        If Application.WorksheetFunction.CountIf(rng1.Offset(k - 1, 0), m) = 1 Then
j = j 1
If j = x Then
Wsingle = m
End If
End If
Next m
End Function

方法五:


这个方法也是使用VBA代码,按Alt F11组合键,插入→模块→在VBE窗口中复制以下代码,并单击工具栏的绿色“运行”按钮,就可以实现将A列唯一值提取自动提取到B列。

Sub 取唯一值()

Dim i As Range
Dim n As Long
n = 1
For Each i In Range('a1:a100')
If Application.WorksheetFunction.CountIf(Range('$A$1:' & i.Address), i) = 1 Then
Cells(n, 2) = i
n = n 1
End If
Next
End Sub




●本文编号494,以后想阅读这篇文章直接输入494即可

●输入m可以获取到全部文章目录

●输入c可以获取到全部动画下载地址

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多