萬盛學電腦網

 萬盛學電腦網 >> Excel教程 >> excel綜合 >> 提取Excel不重復值的自定義函數方案

提取Excel不重復值的自定義函數方案

提取Excel不重復值的自定義函數方案,Function MergerRepeat(Index As Integer, ParamArray arglist() As Variant)
---------------------------------------------
’時間:2008-12-26
’理整:宇 bengdeng
’功能:獲得指定單元格區域或數組中的不重復集合或值
’參數說明:
’Index:整型,當值小於1時,函數返回一個集合;
’    大於1且小於不重復項的時,返回一個不重復的值
’    大於不重復項時,返回空。
’arglist():可為單元格區域或數組常量。
----------------------------------------------
Dim NotRepeat As Object, tStr As String
Set NotRepeat = CreateObject("Scripting.Dictionary")
For Each arg In arglist
For Each rRan In arg
If TypeName(rRan) = "Range" Then
If rRan.Value <> "" Then NotRepeat(rRan.Value) = 0
Else
NotRepeat(rRan) = 0
End If
Next
Next
If Index < 1 Then
MergerRepeat = NotRepeat.keys
ElseIf Index <= NotRepeat.Count Then
arr = NotRepeat.keys
MergerRepeat = arr(Index - 1)
Else
MergerRepeat = ""
End If
End Function

下面用幾個應用的實例,來說明該函數的應用。

1、返回A1:A10中不重復值的個數。

=COUNTA(MergerRepeat(0,A1:A10))

2、在B列從B1格開始列出A1:A10的不重復數值。

在B1格設定公式:

=MergerRepeat(ROW(),$A$1:$A$10)

並向下填充。

3、求多個區域(可以不連續)加數組的不重復個數。

=COUNTA(MergerRepeat(0,A1:A6,{"abc","Excel吧",1,"excelba.com"},C2:C6))

copyright © 萬盛學電腦網 all rights reserved