Função Excel em célula VALUE para fórmulas

Função Excel em célula VALUE para fórmulas

Eu tenho uma planilha do Excel que preciso executar no Android. Único problema, usei VBA para a função Avaliar e o VBA não funciona em aplicativos Android. Estava procurando uma alternativa e me deparei com a função "VALUE()", vi que uma Célula com:

=VALUE(10 + 5 * 3)

Retornaria o resultado correto (25). Agora o que eu gostaria de fazer é:

=VALUE(A2)

Onde A2 é um texto contendo “10 + 5 * 3”. Mas isso retorna "#VALUE!"

Existe um truque para usar VALUE() para avaliar fórmulas simples?

Obrigado!

Responder1

Existe um hack que existe há anos que faz isso na versão completa do Excel. Duvido que funcione no Android, mas pode valer a pena tentar.

Estou usando o Excel 2013.

Vá para a barra de opções FÓRMULAS e escolha Definir Nome.

Dê qualquer nome, por exemplomyResult

Na parte "Refere-se a:", coloque a fórmula=EVALUATE(A2)

Agora, coloque a fórmula =myResultna sua planilha onde deseja que a resposta apareça.

Responder2

Use INDIRETO().

Exemplo (deFunção INDIRETA do Microsoft Office):

Dados
B2 1.333
B3 45
Jorge 10
5 62
Resultado da descrição da fórmula
'=INDIRETO(A2) Valor da referência na célula A2. A referência é 1.333
                   célula B2, que contém o valor 1,333.                                   
'=INDIRETO(A3) Valor da referência na célula A3. A referência é 45
                   célula B3, que contém o valor 45.
'=INDIRETO(A4) Como a célula B4 tem o nome definido "George", a referência a 10
                   esse nome definido é para a célula B4, que contém o valor 10
'=INDIRETO("B"&A5) Combina "B" com o valor em A5, que é 5. Este, por sua vez, 62
                   refere-se à célula B5, que contém o valor 62.

Aplica-se a: Excel 2016, Excel 2010, Excel Starter, Excel 2013, Excel Online, Excel 2016 para Mac, Excel para Mac 2011, Excel 2007

Responder3

Existe um "truque" para fazer isso.

Suponho que você queira avaliar uma fórmula simples como a usada em sua VALUE()fórmula: 10 + 5 * 3, em vez de uma versão literalmente entre aspas. Mas mesmo que você não estivesse usando a convenção usual para mostrar o que interessa entre aspas e realmente apresentasse a string para avaliar na célula com as aspas, bem, isso também pode ser feito.

E MUITO simplesmente.

Para fazer o que acredito que você deseja fazer: digamos que a célula A1 tenha o conteúdo: 10 + 5 * 3. Você considera para onde pretende que sua saída vá em relação à célula A1 e seleciona a célula desejada. Portanto, se você deseja a saída na célula C1, selecione C1. Enquanto estiver selecionado, crie um intervalo nomeado, talvez chamado TextCalculate, e forneça a seguinte fórmula para seu Refers tovalor:

=EVALUATE(A1)

Feche e na célula C1 digite:

=TextCalculate

e avaliará tudo o que estiver em A1 como você desejar (SE puder: tem que ser algo que o Excel possa entender!) e mostrará o resultado na célula C1.

Se você realmente quiser colocar aspas na entrada, é tão simples quanto configurar outro intervalo nomeado para esse tipo de dados de entrada e fornecer o valor de:

=EVALUATE(EVALUATE(A1))

O primeiro EVALUATE()retira as aspas e o segundo avalia a string restante limpa.

Observe que eu disse para colocar a funçãoEM UMA FAIXA NOMEADAem vez de dizer coloque-o diretamente em uma célula. Esta é uma necessidade absoluta, sem brincadeiras, e se você tentar isso e não funcionar, provavelmente você tentou no lado da célula de qualquer maneira. Faça isso EM UMA FAIXA NOMEADA e FUNCIONARÁ.

Por que é que? Bem, isso é interessante, embora eu ache que pela sua pergunta você já sabe o porquê ... mas outros que estão lendo podem não (daí o seguinte e certamente desnecessário para você advertências sobre tentar apenas em intervalos nomeados). A função faz parte do conjunto de comandos que o Excel usava para construir macros antes da implementação do VBA. Ele foi projetado para uso em macros criadas com ferramentas antigas e o único lugar no próprio Excel em que elas ainda funcionam é na funcionalidade Intervalo Nomeado. Observe que eles nunca, nenhum deles, jamais funcionou fora das macros e hoje também não: exceto dentro de um intervalo nomeado.

Contanto que a versão Android possa usar intervalos nomeados, ela poderá funcionar lá. Honestamente, não posso verificar isso e acredito que não, já que meu melhor palpite é que a versão do Android é uma reescrita, não uma porta, e eles podem ter abandonado esse aspecto do Excel, especialmente porque era para macros e você acha que o Android ganhou. Não faça isso. No entanto, como não faz parte do VBA em si, apenas é acessível a ele, pode ser que eles tenham portado e surgido, embora não tenham construído uma interface para o VBA (nem, eu presumo, para qualquer outra coisa). Então experimente EVALUATE()um intervalo nomeado no Android Excel e veja. Na verdade, pode não ter sido trazido, mas, novamente, pode ter sido. Não como uma ferramenta para VBA, obviamente, mas talvez ainda esteja disponível para intervalos nomeados.

Tenho que testar algo antes de parar... que chatice... os nomes usados LET()​​parecem muito com Intervalos Nomeados "com escopo definido" para a fórmula individual (eles parecem assim em geral e substituirão um Intervalo Nomeado realmente definido, então...), e me perguntei se funcionaria na fórmula de um nome usado em LET(). Infelizmente, isso não aconteceu... Deve ser mais (ou menos) isso.

informação relacionada