Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketTæl.Hvis giver forkert resultat

 Besvar Besvar
Forfatter
bekn Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 06.Jan.2013
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Emne: Tæl.Hvis giver forkert resultat
    Sendt: 06.Jan.2013 kl. 16:27
Jeg er stødt på et tilfælde, hvor funktionen Tæl.Hvis() giver forkert resultat.
Problemet kan illustreres med disse tal:
 
8,2 7,2 1
9 8 1
8 7 1
7 6 1
6 5 1 4
 
A1:A5 og B1:B5 indeholder hver 5 tal. I C1:C5 står =A1-B1, ..., =A5-B5.
I celle D5 står Tæl.Hvis(C1:C5;1). Resultatet skulle gerne være 5, men er 4.
Jeg har kun set fejlen når tallene 8,2 og 7,2 optræder.
Med alle andre talpar, hvor forskellen er 1, bliver resultatet 5.
Jeg har prøvet det med samme resultat i Excel 2010 og Excel 2002.
Er der nogen der kan give en forklaring? 
Bent Knudsen
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 06.Jan.2013 kl. 18:01
Hej Bent,
 
Det er klart en fejl i Excel.
Ifølge Excel, er 8,2 - 7,2 = 0,999999999999999
Laver man samme regnestykke med 9,2 - 8,2 bliver resultatet 1, hvilket er korrekt.
 
Du kan rette fejlen i dit regneark ved at udskifte formlen i C1 til =AFRUND(A1-B1;14)
Formlen afrunder resultatet til 14 decimaler og da fejlen sker i 15. decimal, vil det ikke ske igen.
 
//Allan
Til top
bekn Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 06.Jan.2013
Land: Danmark
Status: Offline
Point: 4
Direkte link til dette indlæg Sendt: 07.Jan.2013 kl. 10:35
Hej Allan,
Mange tak for opklaringen og anvisning på en nyttig løsning.
Bent
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5417
Direkte link til dette indlæg Sendt: 07.Jan.2013 kl. 11:32
Det er IKKE en fejl i Excel!

Excel benytter den såkaldte IEEE#754 standard til at gemme sine værdier - og, det er i denne standard problemet ligger, da denne standard kræver, at tal bliver gemt som binære værdier - og, ikke alle værdier er 'egnet' til at blive gemt som perfekt nøjagtige værdier i binært format!

Excel forsøger blot at være kompatibel med de gældende standarder, så Excel er så kompatibel med alle mulige andre systemer, som muligt!

Læs evt. mere her:
http://www.EXCELGAARD.dk/Lib/Rounding/Error/
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5417
Direkte link til dette indlæg Sendt: 10.Jan.2013 kl. 09:11
Så fik jeg mig taget sammen til at lave en dansk oversættelse :-)

www.EXCELGAARD.dk/Bib/Afrunding/Fejl/
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk