31. oktober 2012 - 13:06Der er
5 kommentarer og 2 løsninger
Unøjagtig talrække
Jeg har et regneark, hvor jeg i en kolonne har angivet tallene 2 2,1 2,2 . . . 17,9 18 ved at skrive de første 3-4 tal og derefter trække en markering nedad. Det har givet det besynderlige resultat, at jeg i intervallet 7,7 til 9,9 har fået de fleste af tallene angivet med tilføjelsen af ekstra decimaler. Helt præcist er der på de fleste - men ikke alle - tal i intervallet tilføjet decimalerne 0000000000001 efter den ene decimal, som jeg selv har angivet.
Jeg opdagede det tilfældigt, fordi to beregninger, der burde give samme resultat, ikke var helt ens. Er der nogen, der kan forklare, hvad i alverden der er gået galt? Jeg kan reproducere fejlen, så det må være noget, Excel gør. Men er det kun på min maskine, eller er det en generel fejl i Excel 2007?
Exel kan normalt kun lave det trick, hvis det er en "kendt" Serie som heltal, måneder o.lign. - eller en kombination af disse...
Hvis du skal have indsat en talserie helt nøjagtig, så benyt: Redigering - Fyld - Serie
Synes godt om
Slettet bruger
01. november 2012 - 07:16#3
Du skrev:
Er der nogen, der kan forklare, hvad i alverden der er gået galt?
Microsoft vil formentlig hævde, at der ikke er noget der går galt, men henvise til, at:
There are a great many instances where Excel will be off by a tiny amount. It's not Excel per se, it's floating point numeric representations on digital computers in general (conversion between binary and decimal numbers).
Hvis det er noget du er interesseret i at studere nærmere findes der hundredvis af artikler om emnet på amerikanske Excel nyhedsgrupper.
Hans
(Fyld serie bruger en anden (mere nøjagtig) algoritme end Autofyld).
Jamen så blev jeg da så meget klogere og har lært en ny funktion i Excel, som jeg aldrig har vidst, at jeg savnede. ;-)
Har lidt svært ved at se, hvorfor metoden, hvor man trækker i udfyldsfeltet, skal adskille sig fra Fyld Serie, men sådan er det nok bare.
NCG og dkhanknu: Smid svar, så får I pointene.
Lars
Synes godt om
Slettet bruger
01. november 2012 - 10:00#5
En lille ting der illustrerer problematikken med "binary/decimal conversion" er denne:
=HVIS(2,3-1,1-1,2=0;"OK";"Kald mig Mads")
Prøv at overveje, hvad du ville forvente, at denne formel returnerer. Prøv herefter faktisk at indtaste den i Excel og se om resultatet svarer til din forventning.
Morale: Vær forsigtig med at teste for eksakt lighed. Det kan selvfølgelig undgås ved hjælp af afrundingsfunktioner.
Interessant lille formel med et noget overraskende resultat. Ikke mindst fordi =2,3-1,1-1,2 faktisk giver 0 med 30 decimalers nøjagtighed, hvis det tastes direkte ind.
Mit problem viste sig, fordi jeg benyttede LOPSLAG til at finde en værdi ud fra værdierne i kolonnen med de unøjagtige værdier. Det gik ikke helt glat, da funktionen fx valgte værdien svarende til 7,90000000000001 frem for den for 8,00000000000001, når den skulle finde 8. I øvrigt 'sjovt', at problemet opstår ved udfyld med stigning på 0,1 ad gangen, mens det ikke sker ved stigning på 0,5. I hvert fald ikke i intervallet 2-18, hvor jeg har brugt udfyld.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.