Retornar o dado que mais se repete numa lista - JJoão (08/2002)
Esta função retorna o(s) dado(s) que mais se repetem numa zona de celulas, apresentado o(s) respectivo(s) dado(s) e o numero de repetições
Function xMais(zona As Range)
Dim DadoCorrente, DadoPrincipal
Dim n1 As Integer, n2 As Integer
Dim Celula As Range
Dim Lidos As String
Dim Outro As Label
Application.Volatile
n1 = 0
DadoPrincipal = ""
Lidos = ""
For Each Celula In zona
DadoCorrente = Celula.Text
If InStr(1, Lidos, DadoCorrente) > 0 Or _
DadoCorrente = "" Then GoTo Outro
Lidos = Lidos & DadoCorrente
n2 = Application.WorksheetFunction.CountIf(zona, DadoCorrente)
If n2 > n1 Then
DadoPrincipal = DadoCorrente
n1 = n2
ElseIf n2 = n1 Then
DadoPrincipal = DadoPrincipal & "," & DadoCorrente
End If
Outro:
Next Celula
xMais = DadoPrincipal & " ( " & n1 & " )"
End Function
|