Excel高級技巧:提取不重複的數據

2015-04-01@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就能運行結果。

  作者介紹:薛奔(Sharpen),大電商網站運營分析師。

微軟Excel專家認證,擅長Excel數據報表自動化。微博@Excel報表顧問

自營店鋪:Xexcel.taobao.com 銷售本人原創的全系列Excel視頻教程


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章