|
|
提取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))
|
發表留言請先登錄!
|