Excel如何提取不重复的数据
- 2022-11-30
- 来源/作者: Wps Office教程网/ 菜鸟图库
- 119 次浏览
因为是要保留源数据的,所以此处不允许用删除重复项等一些操作。
本文介绍一种函数和一段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的阶段,应该是基础制表-函数-透视表。