Avatar billede ae03 Novice
31. oktober 2012 - 13:06 Der 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?
Avatar billede vejmand Juniormester
31. oktober 2012 - 13:46 #1
Bare til info:
Har lige lavet en test, min gør det også. (Excel 2007)
Aner ikke hvorfor......
Avatar billede NCG Novice
31. oktober 2012 - 13:49 #2
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
Avatar billede 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).
Avatar billede ae03 Novice
01. november 2012 - 08:59 #4
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
Avatar billede 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.

Hans
Avatar billede ae03 Novice
01. november 2012 - 10:23 #6
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.
Avatar billede NCG Novice
01. november 2012 - 10:32 #7
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester