Permitir ao usuário do Excel selecionar operador para fórmula

0

Gostaria de configurar uma planilha que permita ao usuário selecionar o operador para aplicar a outras células. Por exemplo: Se A1 tiver 5 e A2 tiver 10, eu gostaria que o usuário pudesse selecionar os operadores mais ou menos da célula A3 (A4 resultante exibindo o resultado de: A1 + A2 ou A1 - A2).

Eu sei que posso fazer isso com uma declaração IF ou CHOOSE. Mas eu queria saber se havia algo mais curto. Eu tentei definir A4 para essas opções, mas nenhuma funciona como pretendido. Eu quero um resultado numérico, como 15 ou -5

Veja o que eu tentei:  - = A1 e A3 e A2  - = A1 + A3A2

Existem outros métodos além de IF ou ESCOLHER?

    
por user348514 30.04.2016 / 20:01

1 resposta

0

Há duas partes para a resposta a essa pergunta ...

  1. Criando uma string apropriada para avaliar, respondeu aqui
  2. Avaliando essa sequência como se fosse uma fórmula real, respondido aqui

Um exemplo de construção da string correta, para o problema que você expôs: Na célula A4, coloque a seguinte fórmula ...

=A1&A3&A2

Se você colocar 10 em A1, 11 em A2 e * em A3, isso será avaliado como 10*11

Formas mais complexas de construir a string podem exigir o uso das funções ADDRESS e / ou INDIRECT .

Versões mais antigas do Excel continham uma UDF para Evaluate, que não existe em versões mais recentes. Você precisaria criar sua própria UDF como ...

Function myEval(r As Variant) As Variant
    If TypeName(r) = "Range" Then
        myEval = Evaluate(r.Value)
    Else
        myEval = Evaluate(r)
    End If
End Function

Seguindo o exemplo, na célula A5, você pode colocar ...

=myEval(A4)

que avaliaria para 110 . Ou você pode substituir o conteúdo da Cell A4 por ...

=myEval(A1&A3&A2)

qual seria então avaliado como 110 .

    
por 01.05.2016 / 08:27