About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2009-03-14

Há dias, colocaram-me, por e-mail, a seguinte questão (adaptada), que, igualmente foi posta num grupo de discussão:

“Gostaria de saber qual a fórmula  para mostrar o valor do peso da freguesia de Bustos que mais se repete (função estatistica Moda() [ing. Mode()])?


Exemplo:


Nome Sexo Freguesia Peso
   A        F         OIà      12
   B       M         BUSTOS 11
   C        F         OIà       12
   D       M         BUSTOS 11
   E        F         OIà       13
   F        M         BUSTOS 14
   G        F         OIà       15
   H       M         BUSTOS  16
   I         F         OIà        17
   J       M          BUSTOS 18”

 

Teríamos, então, como resposta para BUSTOS, o valor 11.

 

Ilustrando o exemplo:

 

image

Ora, o peso que mais se repete na Freguesia de BUSTOS, é o 11.

image

 

O que se pretende, assim, é coligir, em primeiro lugar, todos os valores de peso a que corresponda a Freguesia BUSTOS, ou seja:

11, 11, 14, 16, 18.

Podemos, então, escolher como fonte, onde serão colocados tais valores, o Range L1:L20.

Assim, em I2, colocaremos a seguinte fórmula, utilizando a função MODA():

=MODA(L1:L20)

 

Resta-nos, agora, criar o código, para colocar, dentro desse Range – L1:L20, os valores que tenham correspondência com a Freguesia pretendida, no caso do exemplo, BUSTOS, o que daria os seguintes dados:

image

 

Cria-se o Botão de Comando, a que, no caso do exemplo, daremos o nome de VALIDAR:

image

E, se seguida, atribuiremos a esse Botão de Comando - VALIDAR, o seguinte Código:


'----------------------------------------------------------
' Procedure : Validar_Click
' DateTime  : 14-03-2009 18:51
' Author    : Jorge Rodrigues
' Purpose   : Atribuir valores no Range L1:L20 retirados
'           : do Range D8:D17, a que correspondam,
'           : no Range C8:C17, ao nome da Freguesia BUSTOS
'----------------------------------------------------------
'
Private Sub Validar_Click()
    Dim spRange As Range
    Dim cell As Range
    Dim nome As Variant
    Dim number As Integer

    number = 1
    nome = Range("H2").Value
    
    Range("L1:L20").ClearContents
    
    Set spRange = Range("C8:C17")
    For Each cell In spRange
        number = number + 1
        If cell = nome Then
            Range("L" & number).Value = cell.Offset(0, 1)
        End If
    Next cell
    
End Sub


De notar que, como atribuímos para identificar o nome da Freguesia, a célula H2, então, com a simples modificação do conteúdo desta célula, para, por exemplo, OIÃ, que se encontra na tabela acima ficaríamos a saber, igualmente, o valor de peso que mais se repete nesta Freguesia, que seria o valor 12.

image

 

Tópicos relacionados: