O Excel SUM não é igual ao valor digitado manualmente

1

Naimagemacima,noExcel,abriumarquivoCSVdetransaçõesmonetáriasdomeubanco.AdatadatransaçãoestánacolunaA,ovaloremBeosaldocomputadodobancoemD.EstoucomputandomeuprópriosaldoemexecuçãonacolunaF(=SUM($A$2:An))eacolunaHforneceumdestaqueparaindicarquaisquerdiscrepâncias(=IF(Dn="", TRUE, Fn=Dn ) , infelizmente, como mostra a captura de tela, o Excel está dizendo que £898.15 não igual £898.15 .

Eu queria ver se havia um erro de arredondamento, por isso, na coluna K , defini a fórmula =Dn-Fn e, em seguida, expandi o número de casas decimais exibidas. Que mostra um erro de minuto de -0.00000000000272848 .

Pergunta 1: De onde vem esse erro insignificante e por que o Excel considera os valores diferentes na linha 206?

Pergunta 2: Outras linhas têm uma discrepância idêntica (por exemplo, 188 e 184 versus linha 206), então por que o Excel reclama de repente?

Pergunta 3: Por que o Excel não está tratando valores monetários como valores integrais e não como ponto flutuante, portanto, não deve haver erro algum.

    
por Dai 18.03.2015 / 08:20

3 respostas

1

Quando você insere números no Excel, eles são convertidos em uma representação binária interna, por exemplo, 8.25 é traduzido em 1000.01 , mas 8.26 se torna 1000.01000010100011110101110000101000 .

Quando você começa a adicionar números no Excel, os números decimais inseridos são convertidos em binário, a soma é feita em binário e depois convertida em decimal novamente. E esse é o momento em que você obtém alguns números imprecisos, como o -0.00000000000272848 que você obtém em discrepâncias entre seus números e o do Excel. Você precisará multiplicar esse valor por bilhões para obter um valor diferente em centavos.

Portanto, o teste deve ser =IF(ABS(Calculated-Real)<0.01,"OK","Not Equal") . Até obtermos um computador decimal, você receberá esse erro em qualquer computador digital binário.

    
por 02.04.2015 / 02:02
0
    O erro
  1. insignificante provavelmente se deve ao arredondamento. Você vê apenas dois dígitos decimais nas colunas do banco, mas talvez haja mais, tente aumentar também o número de decimais.
  2. a diferença mínima a ser identificada pelo excel não é um valor absoluto, mas está relacionada à magnitude dos números comparados. Você pode ler mais aqui
  3. A razão por trás do uso de números de ponto flutuante é geralmente a maior flexibilidade do intervalo coberto, mas não acho que seja importante agora, pois não podemos alterá-lo.
por 18.03.2015 / 09:14
0

Este é um exemplo clássico de erro aritmético de ponto flutuante. Isso é causado por como o Excel está interpretando os números, como uma causalidade da função soma e como você fez isso manualmente. Mais do que provavelmente o resultado é armazenado como um número de ponto flutuante depois que a função sum terminar, o que (como você pode ver) não combina perfeitamente com o cálculo manual real.

    
por 19.03.2015 / 03:35