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:
Ora, o peso que mais se repete na Freguesia de BUSTOS, é o 11.
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:
Cria-se o Botão de Comando, a que, no caso do exemplo, daremos o nome de VALIDAR:
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.
Tópicos relacionados: