Ir ao conteúdo

Posts recomendados

Postado

@GENECIOFICIAL

 

uma outra solução seria você criar uma linha auxiliar:

 

primeiro copie fórmula abaixo na célula [A3]  e arraste até [J3], após fazer isso. 

=SE((A4-A5)<0;"Negativo";"")

 

Depois copie a fórmula abaixo e cole na [M4].

=SE(PROCH("Negativo";A3:J3;1;0)="Negativo";"DIVERGENTE  -  CÉLULA "&ENDEREÇO(3;CORRESP("Negativo";A3:J3))&" - VALOR "&PROCH("Negativo";A3:J6;2;0);"CONCLUSIVO")

 

pronto, é uma outra solução alternativa.

 

  • Obrigado 1
Postado

Para mais de uma ocorrência dessa condição, a fórmula pode exibir a lista de valores e endereços dessa forma,

 

=SE(SOMA(SE(A4:J4<=A5:J5;1;0))>0;"DIVERGENTE - CÉLULA(S) " & UNIRTEXTO(" / ";VERDADEIRO;SEERRO(ENDEREÇO(4;SE(A4:J4<=A5:J5;TRANSPOR(LIN(INDIRETO("1:10")));""));"")) & " - VALOR(ES) " &UNIRTEXTO(" /  ";VERDADEIRO;SE(A4:J4<=A5:J5;A4:J4;""));"CONCLUSIVO")

 

A fórmula UNIRTEXTO não é compatível com todas as versões do excel. Mas se não há necessidade de prever multiplas ocorrências é possível resolver sem ela.

  • Obrigado 1
Postado

Boa tarde! Midori

A fórmula apresentada não é compatível com o office 2016, sem assinatura. 

Apresentou a seguinte mensagem: #VALOR! no formato convencional e matriz.

 

Por favor, pode elaborar a solução em VBA, prevendo múltiplas ocorrências.

 

Grato - Geneci.

  • Solução
Postado
3 horas atrás, GENECIOFICIAL disse:

 

 ... solução em VBA, prevendo múltiplas ocorrências.

 

 

Veja se atende.

Sub ConclusivoOuDivergente()
 Dim r As Range, s As String, b As Boolean
  For Each r In [A4:J4]
   If r.Value <= r.Offset(1).Value Then
    If s <> "" Then s = s & " / "
    s = s & "célula " & r.Address(0, 0) & " - " & "valor " & r.Value: b = True
   End If
  Next r
  If b Then [M4] = "DIVERGENTE - " & s Else [M4] = "CONCLUSIVO"
End Sub

 

Postado

@GENECIOFICIAL Para usar a função como uma fórmula, cole o código no módulo e na entre com a fórmula,

 

=RESULTADO(A4:J5)

 

Function Resultado(Area As Range) As String
    Dim Celula  As Range
    Dim Endr    As String
    Dim Valr    As String
       
    Resultado = "CONCLUSIVO"
    
    For Each Celula In Area.Rows(1).Cells
        If Celula.Value <= Celula(2).Value Then
            Endr = Endr & " " & Celula.Address(False, False)
            Valr = Valr & " " & Celula.Value
            Resultado = "DIVERGENTE - CÉLULA(S)" _
                & Endr & " - VALOR(S)" & Valr
        End If
    Next Celula
End Function

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...