我有大量数据(约 1,000,000 行数据)。查找一列的唯一值的最快方法是什么?
[编辑] 我不确定数据如何重复很多次或存在许多唯一值。我只想要唯一的值。可以删除原始集合中的重复值。或者取唯一集合并复制到旁边的列。
是的,1,000,000 行很多,但我无法使用任何数据库来帮助。[/编辑]
我知道数据功能区、高级选项。它很慢,有时似乎会循环。
我的excel是2013版本的。
谢谢。
答案1
查找和提取大数据范围的唯一值的最快方法是宏(VBA)。
将此代码作为标准模块随工作表插入。
Option Explicit
Sub GetUniqueList()
Dim d As Object, c As Variant, i As Long, lr As Long
Set d = CreateObject("Scripting.Dictionary")
lr = Cells(Rows.Count, 1).End(xlUp).Row
c = Range("A2:A" & lr)
For i = 1 To UBound(c, 1)
d(c(i, 1)) = 1
Next i
Range("B2").Resize(d.Count) = Application.Transpose(d.keys)
End Sub
怎么运行的:
- 在 VB 编辑器中单击工具菜单和点击参考并检查是否 Microsoft 脚本运行时是否被选中,如果没有,则选中。
- 返回工作表并运行宏。
- 它检查 A 列中的重复项并在 B 列中输出唯一值。
您会在 B 列中找到唯一值的列表。
笔记,根据需要调整代码中的单元格引用。