MS Excel 2007 se então problemas de fórmula

1

Este é um caso simplificado de um problema que estou vendo usando o MS Excel 2007.

Format your sheet to be currency with 2 decimal places.

Cell A1 type 25

Cell A2 type 20.13

Cell A3 type 4.87

CELL B3 enter the formula =A1-A2

Cell A4 enter the formula =IF(A1-A2=A3,"TRUE","FALSE")

Cell B4 enter the formula =IF(A3=B3,"TRUE","FALSE")

ERROR is A4 displays FALSE and B4 displays FALSE

NOTA : notei pela primeira vez um erro de precisão com a versão simplificada. Primeiro, alterei a precisão para calcular por exibição usando o este guia . Isso corrigiu minha versão simples, mas ainda vi o problema na minha página. Eu mudei a exibição de decimais para 12 casas decimais, tudo após a segunda casa decimal é um zero em todos os valores na folha.

Alguém tem alguma sugestão sobre o que mais posso tentar corrigir minha fórmula / planilha.

    
por JabberwockyDecompiler 10.10.2013 / 18:37

1 resposta

1

Ao usar a aritmética de ponto flutuante e usar o resultado para fazer avaliações ou cálculos adicionais, geralmente é melhor garantir que o resultado tenha a precisão certa / esperada.

O melhor método para garantir que você tenha a precisão certa é usar ROUND() em sua fórmula. Nesse caso, seria =IF(ROUND(A1-A2,2)=ROUND(A3,2),"TRUE","FALSE") .

O segundo método recomendado pela microsoft aqui somente garante que as células sejam exibidas com as decimais corretas. Internamente, eles ainda podem estar um pouco fora. Usá-lo para fazer novos cálculos provavelmente resultará em maior imprecisão. Para avaliações, essa configuração não tem efeito.

Observação O uso da opção Precisão como exibida pode ter efeitos de cálculo cumulativo que podem tornar seus dados cada vez mais imprecisos ao longo do tempo. Use esta opção somente se tiver certeza de que a precisão exibida irá manter a precisão dos seus dados.

Portanto, o melhor conselho é sempre usar ROUND() em suas fórmulas quando se trata de precisão esperada durante as avaliações.

    
por 10.10.2013 / 19:51