Print side | Luk vindue

Tæl.Hvis giver forkert resultat

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Formler
Forum beskrivelse: Hjælp til formler i regneark og/eller brugen af disse.
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=1021
Udskrevet den: 19.Maj.2024 kl. 22:55


Emne: Tæl.Hvis giver forkert resultat
Besked fra: bekn
Emne: Tæl.Hvis giver forkert resultat
Posteringsdato: 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



Svar:
Besked fra: Allan
Posteringsdato: 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


Besked fra: bekn
Posteringsdato: 07.Jan.2013 kl. 10:35
Hej Allan,
Mange tak for opklaringen og anvisning på en nyttig løsning.
Bent


Besked fra: EXCELGAARD
Posteringsdato: 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.


Besked fra: EXCELGAARD
Posteringsdato: 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.



Print side | Luk vindue