raathass Skrevet 10. februar 2007 Rapporter Del Skrevet 10. februar 2007 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
Harald Staff Skrevet 10. februar 2007 Rapporter Del Skrevet 10. februar 2007 Jeg vil tro du ryker på en avrundingsfeil; forårsaket av at begge tall er resultater av beregninger og dermed ikke nødvendigvis er avrundet samme vei. Se http://www.cpearson.com/excel/rounding.htm om dette. Jeg ville sjekket om avviket var mindre enn ett øre. HTH. Beste hilsen Harald Lenke til kommentar
raathass Skrevet 10. februar 2007 Forfatter Rapporter Del Skrevet 10. februar 2007 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
Harald Staff Skrevet 13. februar 2007 Rapporter Del Skrevet 13. februar 2007 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå