Hello,alan_lima
Bem-vindo à comunidade Microsoft.
Para suas necessidades, parece que sua necessidade é “FD = 1 é aplicável à primeira vez que o valor máximo aparece, na segunda vez que o mesmo valor máximo é recuperado, também é expresso como 1, não 0,5”. Estou correcto?
Tentei testar isso, até mesmo utilizando fórmulas em análise estatística. No entanto, parece incapaz de procurar consistentemente o valor máximo de existências idênticas. Minha hipótese é que ele só pode recuperar um valor máximo de 1, tratando os valores subsequentes como menores que 1 após a pesquisa, mesmo que sejam iguais a 1. Isso poderia ser uma salvaguarda dentro da fórmula para evitar o estouro de dados.
Simultaneamente, poderíamos contemplar a criação de uma nova fórmula para realizar esta tarefa. Especificamente, criando uma nova fórmula usando VBA e incorporando quantas condições forem necessárias. Abaixo estão os resultados de alguns testes preliminares:
**1.**Abra a pasta de trabalho do Excel -> Pressione Alt + F11 para abrir o editor VBA. ->
**2.**Clique com o botão direito em qualquer um dos objetos no painel esquerdo -> Escolha Inserir > Módulo ->
Copie e cole o seguinte código VBA no módulo:
Function CalculateFD(PotColumn As Range) As Variant
Dim FD() As Variant
Dim maxValue As Double
Dim i As Long, countMax As Long
' Initialize the FD array
ReDim FD(1 To PotColumn.Rows.Count, 1 To 1)
' Find the maximum value in the PotColumn
maxValue = Application.WorksheetFunction.Max(PotColumn)
' Loop through the PotColumn to calculate FD
countMax = 0
For i = 1 To PotColumn.Rows.Count
If PotColumn.Cells(i, 1).Value = maxValue Then
countMax = countMax + 1
If countMax <= 2 Then
FD(i, 1) = 1
Else
FD(i, 1) = 0.5
End If
Else
FD(i, 1) = 0.5
End If
Next i
CalculateFD = FD
End Function
Importante: Verifique as condições para atribuição de FD abaixo.
If countMax <= 2 Then
*FD(i, 1) = 1*
Else
*FD(i, 1) = 0.5*
End If
Feche o editor VBA e retorne à sua pasta de trabalho do Excel. -> Use a função personalizada em sua planilha:
- Na primeira célula da coluna “FD” (digamos H2), insira a seguinte fórmula:
- =CalculateFD(C2:C5)
**3.**Este código modificado garantirá que a primeira e a segunda ocorrências do valor máximo tenham um FD de 1 e as ocorrências subsequentes tenham um FD de 0,5.

O arquivo de teste será visto em sua mensagem privada aqui, verifique:

Sinta-se à vontade para tentar fazer isso e me avise se precisar de mais ajuda!
Atenciosamente,
Chandy.L | Especialista em Suporte à Comunidade Microsoft