Gå til innhold

Excel: Regnefeil i Excel 2003?


raathass

Anbefalte innlegg

Hei.

 

Jeg kliner til og lager mitt enkeltmannsforetaksregnskap (puh) i Excel (godkjent av likningsmyndighetene dersom jeg limer en print inn i en gammeldags bok :-) ).

 

For kontrollens skyld har jeg lagt inn en celle som sammenlikner alle debet-celler med kredit-celler.

 

=IF((SUMIF(E$3:AP$3;"Debet";E4:AP4)-SUMIF(E$3:AP$3;"Kredit";E4:AP4))=0;"";"NB!")

 

Excel påstår enkelt og greit følgende

 

7725,32 = 1545,07 + 6180,25

7725,31 <> 1545,06 + 6180,25

7725,30 = 1545,05 + 6180,25

 

Dette er noe av det sjukeste jeg har opplevd i min 7 års karriere som bygger av simuleringsmodeller.

 

Jeg har lagt ut et sample av regnearket på http://www.refsdal.com/temp/regnskap.zip. Noen som kunne ta en titt og fortelle hva som gjør at det går til helvete?

 

 

/t

Lenke til kommentar
Videoannonse
Annonse

For ordens skyld, alle tre tallene er dunket inn manuelt og er ikke et resultat av beregninger.

 

Jeg har fått to andre tilbakemeldinger på en tilsvarende post på usenet

 

Excel regner internt med binære flyttall av 'single precision', og man bør unngå å sammenligne et flyttall mot et annet uten å angi en viss feilmargin. Ettersom du regner med kun to desimaler så prøv denne:

 

=IF((ROUND(SUMIF(E$3:AP$3;"Debet";E4:AP4);4)-ROUND(SUMIF(E$3:AP$3;"Kredit";E4:AP4);4))=0;"";"NB!")

 

og

 

Det stemmer, hvis man ikke gjør en avrunding så vil resultatet bli umulig å sammenligne, siden differansen i dette tilfellet blir: -0,0000000000009094947018..... noe som selvsagt er presisjonsfeilen. Det snodige er at de andre tallene ikke får denne feilen.

 

 

At Excel ikke takler enkel subtraksjon og addisjon av tall med to desimaler gjør meg svært bekymret.

 

Formelen '=6180,25+1545,06-7725,31' gir 0, unasett hvor mange desimaler jeg "presser frem" i regnearket (har forsøkt med 35

 

Det samme gjelder formelen '=sum(6180,25;1545,06)-sum(7725,31)'.

 

'=if((SUM(6180,25;1545,06)-SUM(7725,31))=0;"";"NB")', derimot, gir NB så det

gjomer...

 

Skremmende. Prøv gjerne selv.

 

 

/t

Lenke til kommentar

Jeg har selvfølgelig testet eksemplet ditt før jeg svarte, og det er som du hevder ingen åpenbare feil å se. Men SUMIF er beregninger.

 

Jeg tror du gikk glipp av et viktig poeng i artikkelen jeg henviste til: Enkelte desimaltall lar seg ikke reprodusere eksakt i det binære tallsystemet. Da kan du få presisjonsfeil i konverteringen desimal-binær-desimal. Derfor skal du legge inn en liten margin når du sammenligner annet enn tekst og heltall, ingen grunn til å føle frykt eller irritasjon av den grunn.

 

HTH. Beste hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...