Articles

Porque é que a sua Fórmula Excel não está a calcular?

Fb-Button

p> Neste artigo, aprenderemos Porque é que a sua fórmula Excel não está a calcular?.

Cenário:

Muitas vezes, como quando extraímos números da cadeia, eles são texto por propriedade. Não se podem fazer operações de números sobre eles. Então temos a necessidade de converter esse texto para um número. Assim, para converter qualquer texto para um número, podemos adoptar várias abordagens, dependendo da situação. Vamos ver essas abordagens…

Utilizar a Função VALOR para Converter Texto em Número

Assim, se transferir dados de soma de um website, é comum obter alguns números como datas especiais de formato de texto. Basta embrulhar estes textos numa função VALOR. Irá retornar um número puro.

função VALOR Sintaxe

>p>=VALOR(texto)>br>>p>>p> Então para converter um texto na célula B2 em número escreva esta fórmula de VALOR.

=VALOR(B2)

br>

Adicionar 0 ao texto para Converter Texto em Número

Se adicionar qualquer número usando + operador a um número formatado de texto, converterá o texto num número e depois adicionará o número dado ao número convertido. Finalmente o resultado será um número.

Por exemplo, se houver um número formatado em texto em B4, então basta adicionar 0 para converter a string em número.

=B4+0

br>>p>p>Resultado será um número de certeza.

Como vos disse no início, este problema ocorre quando extraímos números de cordas. Portanto, se quiser que o texto extraído seja numerado basta adicionar 0 no final.

Por exemplo, estou a extrair o citycode do texto B6. Extraí-o utilizando a função ESQUERDA. Mas não é um número por isso adicionei um 0 na própria fórmula.

=LEFT(B6,6)+0

br>>>p>>

Utilizar a Notificação Excel para Converter Texto em Número

Quando um número tem a forma de um texto, o Excel notifica-o mostrando um canto verde da célula.

Quando clica na célula, mostra um pequeno ícone de exclamação no canto esquerdo da célula.

Quando clica nela, mostra uma opção de Converter em Número. Clique nele e o texto será convertido para number.

Converter Texto para Número usando VBA
Então, se tiver um intervalo fixo que deseja converter para texto, então use este trecho de VBA.

Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").ValueEnd Sub

Quando executa o código acima, converte o texto do intervalo A3:A8 em texto.
Este código pode parecer mais elegante se o escrevermos assim.

Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End WithEnd Sub

Como funciona?

p>Bem, é bastante simples. Primeiro alteramos o formato numérico da gama para Geral. Depois colocamos o valor dessa gama no mesmo intervalo utilizando VBA. Isto elimina completamente a formatação do texto. Simples, não é?

Alterar o número de formatação de uma gama dinâmica

No código acima, alteramos o texto para número no código acima de uma gama fixa mas este não será o caso na maioria das vezes. Para converter texto para um número de intervalos dinâmicos, podemos avaliar a última célula utilizada ou seleccionar o intervalo dinamicamente.

É assim que ficaria:

Sub ConvertTextToNumber()With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).NumberFormat = "General" .Value = .ValueEnd With

Aqui, eu sei que o intervalo começa em A3. Mas não sei onde pode terminar.

Por isso, identifico dinamicamente a última linha de excel utilizada que tem dados na mesma utilizando as Células de fragmentação VBA(Rows.Count, 1).End(xlUp).Row. Retorna o último número de linha usado que estamos a concatenar com “A3:A”.

Nota: Este trecho VBA funcionará na pasta de trabalho activa e na folha de trabalho activa. Se o seu código mudar através de múltiplas folhas, seria melhor definir um objecto de intervalo da folha de trabalho pretendida. Assim

Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "General" .Value = .Value End WithEnd Sub

O código acima mudará sempre o texto para o número da folha1 da pasta de trabalho que contém este código.

Loop e CSng para alterar o texto para número

Outro método é fazer loop através de cada célula e alterar o valor da célula para um número usando a função CSng. Aqui está o código.

Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each cel In Rng.Cells cel.Value = CSng(cel.Value) Next celEnd Sub

No trecho acima de VBA, estamos a usar VBA For loop para iterar sobre cada célula do intervalo e converter o valor de cada célula num número usando a função CSng de VBA.

Então sim pessoal, é assim que se pode alterar os textos para números no Excel usando VBA. Pode usar estes trechos para preparar a sua folha de trabalho antes de fazer qualquer operação numérica sobre eles. Espero ter sido suficientemente esclarecedor. Pode descarregar o ficheiro de trabalho aqui.

Mudar Texto para Número Usando VBA.

Espere que este artigo sobre Porque é que a Sua Fórmula Excel não Calcula seja explicativa. Encontre aqui mais artigos sobre o cálculo de valores e fórmulas Excel relacionadas. Se gostou dos nossos blogs, partilhe-o com os seus amigos no Facebook. E também pode seguir-nos no Twitter e no Facebook. Gostaríamos muito de ouvir a sua opinião, diga-nos como podemos melhorar, complementar ou inovar o nosso trabalho e torná-lo melhor para si. Escreva-nos em [email protected].

Artigos Relacionados :

Como obter Texto & Número em Reverso através de VBA no Microsoft Excel : Para reverter número e texto usamos loops e função média em VBA. 1234 será convertido para 4321, “você” será convertido para “uoy”. Aqui está o snippet.

Formato de dados com formatos de números personalizados usando VBA no Microsoft Excel : Para alterar o formato numérico de colunas específicas no Excel use este snippet em VBA. Converte o formato numérico especificado para formato especificado num clique.

Artigos Populares :

Como usar a Função IF no Excel : A instrução IF no Excel verifica a condição e retorna um valor específico se a condição for VERDADEIRA ou retorna outro valor específico se for FALSA.

Como usar a Função VLOOKUP no Excel : Esta é uma das funções mais usadas e populares do Excel que é usada para pesquisar valores de diferentes intervalos e folhas.

Como usar a Função SUMIF no Excel : Esta é outra função essencial do painel de instrumentos. Isto ajuda-o a resumir valores em condições específicas.

Como usar a Função COUNTIF no Excel : Contar valores com condições usando esta espantosa função. Não precisa de filtrar os seus dados para contar valores específicos. A função COUNTIF é essencial para preparar o seu tablier.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *