Planilha eletrônica em finanças: centavos × frações

Um erro bastante comum que vejo no uso de planilhas eletrônicas em cálculos financeiros e monetários é o tratamento incorreto de centavos na divisão não-inteira e cálculos com números fracionários com mais de duas casas decimais. Nesse artigo vou abordar o problema e soluções para tratá-lo adequadamente.

Problema: Formatação exibida × valor armazenado

Quando se trabalha com valores monetários (financeiros), é comum usar a formatação de número das células como “Moeda”, “Contábil” ou ainda “Número”, com duas casas decimais. Isso faz a planilha eletrônica exibir os valores sempre arredondados em duas casas decimais, para representar adequadamente os centavos.

Por padrão, essa precisão de casas decimais da formatação é usada apenas na exibição, mas o armazenamento e cálculos do valor usam toda a precisão que a planilha comporta (o Excel 2010, por exemplo, tem precisão máxima de 15 dígitos).

Se o valor da célula tem parte fracionária com mais de duas casas decimais — um caso típico é o resultado de uma divisão não inteira — mas apenas a exibição é formatada com duas casas decimais (para os centavos), isso pode resultar em divergências de arredondamento de centavos, quando esse valor é usado em cálculos.

Veja o exemplo, células das colunas B e C formatadas como moeda (duas casas decimais):

A B C
1 n v n*v
2 3 R$ 0,33 R$ 1,00
3 3 R$ 0,67 R$ 2,00
4 3 R$ 0,33 R$ 0,99
5 3 R$ 0,67 R$ 2,01

Por que aparentemente os cálculos nas linhas 2 e 3 são iguais aos das linhas 4 e 5, mas os valores resultantes da multiplicação (coluna C) são diferentes? Porque os valores armazenados nas células B2 e B3 são as fórmulas =1/3 (0,333333333333333) e =1/4 (0,666666666666667) respectivamente, enquanto nas células B4 e B5 são efetivamente 0,33 e 0,67.

Solução 1: Precisão de cálculo igual à exibição

Uma solução, fácil de aplicar mas que deve ser usada com muito cuidado, porque afeta globalmente a planilha eletrônica e faz com que valores digitados percam definitivamente a precisão de casas decimais excedentes, é utilizar uma opção do Excel que faz com que a precisão de cálculo seja igual ao exibido.

No Excel 2010:

  1. Clique na guia Arquivo, clique em Opções e, em seguida, clique na categoria Avançado.
  2. Na seção Ao calcular esta pasta de trabalho, selecione a pasta de trabalho desejada e, em seguida, marque a caixa de seleção Definir precisão conforme exibido.
  3. Selecione OK.

Observe que o Excel alerta que dados (digitados) perderão definitivamente a precisão (casas decimais excedentes ao exibido). Isso significa que se houvesse um valor digitado e armazenado como 0,666667 na célula formatada como 2 casas decimais, após ativada a opção o valor seria definitivamente convertido para 0,670000. Isso não afeta porém valores que são fórmulas como =2/3.

Referência: Ajuda do Excel 2010 – Alterar a precisão dos cálculos em uma pasta de trabalho.

Solução 2: Utilizar fórmulas de arredondamento

Outra forma de evitar/solucionar essa divergência é utilizar nas células fórmulas que explicitamente arredondem ou trunquem os valores armazenados para duas casas decimais. Existem várias fórmulas para isso. Peguemos o exemplo de tratar a fração a/b (por exemplo, 1/3 ou 2/3):

  • =ARRED(a/b;2) → Arredonda um número (primeiro parâmetro) até a quantidade especificada de dígitos (segundo parâmetro, no caso, 2 casas decimais). A regra de arredondamento é a comum: valor 5 em diante na casa decimal seguinte arredonda para cima, 0 a 4 para baixo (trunca).
  • =ARREDONDAR.PARA.CIMA(a/b;2) → Sempre arredonda um número para cima afastando-o de zero. Ou seja, “para cima” é aumentar o valor absoluto; no caso de valores negativos, -0,333 resulta em -0,34.
  • =TETO(a/b;0,01) → Arredonda um número sempre para cima, para o próximo múltiplo significativo (do segundo parâmetro, no caso, 0,01 = 1 centavo). Para números positivos, funciona igual a ARREDONDAR.PARA.CIMA.
  • TRUNCAR(a/b;2) → Trunca um número até a quantidade de casas decimais especificadas no segundo parâmetro (no caso, 2; se omitido assumiria o padrão 0, para truncar para inteiro).
  • =ARREDONDAR.PARA.BAIXO(a/b;2) → Arredonda um número para baixo, aproximando-o de zero.
  • =ARREDMULTB(a/b;0,01) → Arredonda um número para baixo até o múltiplo ou a significância mais próxima (segundo parâmetro, no caso, 0,01) É a função oposta a TETO.

Os mais comuns são arredondar (ARRED) ou truncar (TRUNCAR).

Referência: Ajuda do Excel 2010 – Arredondar um número.

2 Replies to “Planilha eletrônica em finanças: centavos × frações”

  1. Olá, bom dia.
    Parabens peça postagem, mas estou com uma dúvida.
    Preciso fazer uma planilha que arredonde os valores de acordo com a metade, por exemplo, 1,4 (ou valores entre 1,4 e 1,1 arredondar para 1, e 1,6 (ou valores entre 1,6 e 1,9) arredondar para 2. Além disso, preciso utilizar os valores arredondados para uma outra multiplicação, por exemplo: 1,4 -> 1 -> 1 X A1.

    Entendeu?
    Obrigado.

  2. Boa tarde. Ao usar a fórmula SOMACOR (para somar os valores de células de determinadas cores), ela me retorna um resultado errado, pois somente soma os valores inteiros, deixando de somar os valores dos centavos de um intervalo (casas decimais). O que eu devo fazer para corrigir isto?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *