Excel如何提取不重复的数据

因为是要保留源数据的,所以此处不允许用删除重复项等一些操作。

本文介绍一种函数和一段vba代码,进行运算。

源数据如下:

函数的方式是D1=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,)=ROW($1:$10),ROW($1:$10),65536),ROW(A1))),最后是数组三键来完成。

因为区域是A1:A10,所以公式里都是10.如果区域是20,就都改成20.

因为涉及的函数很多,对于不了解函数的菜鸟来说,也不好理解。所以就直接告诉大家如何去修改,使用。见红字。

VBA编程的方法是按ALT+F11,进入VBE编辑器,插入模块。输入代码如下:

Private Sub 提取不重复_Click()

Dim myList As New Collection, Cel As Range, itm, i As Integer, maxRow As Long

maxRow = Sheets("Sheet1").[B65536].End(xlUp).Row ‘获取A列的最后一个非空单元格的行号 Office2007的最大行号是1048576

On Error Resume Next

For Each Cel In Range("B1:B" & maxRow)

myList.Add Cel.Value, CStr(Cel.Value)

Next

On Error GoTo 0

i = 1

For Each itm In myList

Cells(i, 4) = itm ‘新数据输出列,4=D列

i = i + 1

Next

End Sub

按F5就能运行结果。

本篇结束。Vba属于excel中较高级的部分。菜鸟学Excel的阶段,应该是基础制表-函数-透视表。

office办公软件入门基础教程 » Excel如何提取不重复的数据

本文链接:【Excel如何提取不重复的数据】https://www.officeapi.cn/11577.html

OFFICE,天天学一点,进步多一点

联系我们