如何从 Excel 中的数据范围中获取唯一值?

如何从 Excel 中的数据范围中获取唯一值?

我有一列,其行如下:

Facebook、Skype
Facebook、Skype
Facebook、Twitter、Skype
Facebook、Twitter
Facebook、Skype
Facebook、Skype
Facebook、Twitter、Skype
Facebook、Skype、Instagram、Viber

我怎样才能从这个数据范围中挑选出唯一的值以便结果如下:

Facebook、Skype、Twitter、Instagram、Viber

答案1

假设我们在列中有这样的数据A

在此处输入图片描述

运行此 VBA 宏:

Sub GatherUniques()
    Dim N As Long, cl As Collection
    Dim i As Long
    Set cl = New Collection
    N = Cells(Rows.Count, "A").End(xlUp).Row
    On Error Resume Next

    For i = 1 To N
        st = Replace(Cells(i, 1).Text, " ", "")
        ary = Split(st, ",")
        For Each a In ary
            cl.Add a, CStr(a)
        Next a
    Next i

    On Error GoTo 0
    st = cl.Item(1)
    For i = 2 To cl.Count
        st = st & "," & cl.Item(i)
    Next i
    Range("B1").Value = st
End Sub

会产生:

在此处输入图片描述

宏的安装和使用非常容易:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要使用 Excel 中的宏:

  1. ALT-F8
  2. 选择宏
  3. 触摸运行

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必须启用宏才能使其工作!

答案2

我会使用 notepad++ 或 ms word。将列复制/粘贴到其中。通过制表符查找/替换“,” 。复制/粘贴回 excel。或者,如果这是工作表中唯一的数据,您可以尝试将其保存为 csv 文件,然后在 excel 中重新打开。

答案3

在“数据”下使用“文本到列”按钮,并在向导中选择“分隔”和“逗号”。这会将数据拆分为单独的位,以便下一步获取唯一值。

然后在数据下对每一列使用“高级过滤器”并选择“复制到另一个位置”,对于“列表范围”,从新扩展的数据范围中选择一列,然后选中“仅唯一记录”并选择“复制到”位置。

或者,您可以将拆分列复制在一起并执行一次高级过滤。

可以通过多种方式将其整理回用逗号分隔的单个单元格。

相关内容