O post de hoje foi sugestão de uma leitora do blog, que escreveu perguntou como fazer para que o Excel exibisse em uma célula a quantidade de casas decimais de um número contido em outra célula. Ex: se em C5 está o valor 4,587 então em C6 (ou qualquer outra célula próxima) deve aparecer o número 3, pois existem 3 casas após a vírgula.
Bem, confesso que a pergunta me pegou desprevenido, pois nunca havia tentado isso e desconheço função específica para este fim. Se você por acaso conhecer alguma, peço que me avise para que eu possa atualizar o post. Depois de muito pesquisar, descobri que é possível fazer isto utilizando duas funções: NÚM.CARACT e LOCALIZAR. Como ainda não falei delas aqui, vou aproveitar e “apresentá-las” primeiro, para depois então juntar as duas e resolver a pergunta da leitora.
FUNÇÃO LOCALIZAR
Esta função retorna a “posição” de um caractere específico, que pode ser letra, número, sinal gráfico, etc., contando uma posição para cada caractere. Ex: a palavra internet tem 8 letras, ou seja, 8 “posições”. A letra R, por exemplo, está na posição 5.
A sintaxe desta função é a seguinte:
=LOCALIZAR(texto_procurado;no_texto;[núm_inicial])
sendo que texto_procurado é o caractere (pode-se usar mais de um) que se deseja localizar. No exemplo do parágrafo anterior, seria o R (deve-se usar entre aspas na fórmula). A opção no_texto indica onde está o texto (qual a célula). E a opção [núm_inicial] é opcional, e por isso aparece entre colchetes. Ela indica a partir de qual posição será feita a verificação. Se for deixada em branco, o Excel assume o valor 1 como padrão.
Usando o exemplo do parágrafo mais acima (considerando-se que o texto estivesse em B5), a fórmula ficaria assim:
=LOCALIZAR(“r”;B5)
FUNÇÃO NÚM.CARACT
Esta função, como o nome sugere, retorna o número de caracteres (incluindo espaços, vírgulas, números e tudo o mais) existentes em uma célula. Sua sintaxe é bem simples:
=NÚM.CARACT(texto)
sendo que texto é o valor que se deseja verificar. Você pode digitar o texto na fórmula (neste caso tem que ser entre aspas) ou pode indicar uma célula que contenha o texto/número desejado. Veja um exemplo abaixo:
Para a primeira linha, a fórmula foi =NÚM.CARACT(A1). Para as outras, foi só manter o padrão.
CONTANDO AS CASAS DECIMAIS
Após conhecer estas duas funções, vamos agora “juntá-las”. Vamos por partes. O raciocínio aqui é o seguinte: A função LOCALIZAR irá determinar a posição da vírgula, e a função NÚM.CARACT irá informar quantos caracteres o número tem ao todo.
Para entender melhor, vamos pegar o número 125,9748. Este número tem 8 caracteres (3 antes da vírgula, a vírgula e mais 4 após a vírgula), e a vírgula está na posição 4. Ou seja, se a vírgula está na posição 4 e existem 8 caracteres, isso quer dizer que existem 4 números após ela, que é a quantidade de casas decimais deste número. Resumindo, primeiro vamos determinar quantos caracteres existem no número, e depois qual a posição da vírgula neste número. Depois é só subtrair o primeiro do segundo. Veja um “passo a passo” abaixo:
Na primeira linha, usei em B2 a fórmula =NÚM.CARACT(A2) para retornar o número de caracteres. Em C2, a fórmula foi =LOCALIZAR(“,”;A1). Em C2 foi uma subtração simples, porém fica melhor se juntarmos tudo em uma fórmula só, assim:
=NÚM.CARACT(A2)-LOCALIZAR(“,”;A1)
Para finalizar, duas observações:
- Se a função LOCALIZAR não encontrar o valor procurado, retornará a mensagem de erro #VALOR!
- Caso você formate os números para uma quantidade de casas decimais diferente da “original”, a função continuará retornando este, pois internamente o número continua o mesmo. Ex: 23,4565 tem 4 casas decimais. Se for formatado com 2 casas, aparecerá como 23,46 porém continuará com 4 casas para fins de contagem. Duvida? Então tente multplicar este número por 1000 no Excel para ver o que acontece. Lembre também que os zeros à direita, após a vírgula, não são contados para este caso.
Por hoje é isto. Espero que tenham gostado. Até mais!
Ueritom