Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Vrlo cudan problem u Excel-u 2003

[es] :: Office :: Excel :: Vrlo cudan problem u Excel-u 2003

[ Pregleda: 3137 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Vrlo cudan problem u Excel-u 200317.03.2014. u 15:15 - pre 122 meseci
Dugo godina koristim Excel i nikad nisam nesto primetio da ima problema sa sabiranjem, oduzimanjem i funkcijom IF.
Na slici je izlozen problem:

Moje pitanje i dilema je zasto funkcija IF u ovom slucaju remeti operacije sabiranja i oduzimanja?
Sa nekim drugim brojevima nisam primetio da ima problema (za sada).
Da li je ovo neki dokumentovani problem ili je problem "nov"? ako neko zna

U celijama su upisani brojevi bas onako kako se vide, znaci imaju maksimalno 2 decimale i formatirani su za prikaz 2 decimale ali sigurno nemaju vise decimala. Funkcija SUM i oduzimanje radi ali isto to u kombinaciji sa funkcijom IF daje drugaciji rezultat (jeste da je tek posle 12 decimale izrazena razlika ali ne znam odakle je uopste to).

U pitanju je Excel 2003 SP1 (11.6355.6360) i da li i kod vas izaziva ove probleme, ako neko moze da proveri.
I javlja li se ova greska i u 2007 ili 2010? nemam mogucnosti da proverim sada.
Prikačeni fajlovi
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Vrlo cudan problem u Excel-u 200317.03.2014. u 15:48 - pre 122 meseci
Ne radi se o grešci nego ograničenju na 15 značajnih cifara.

Pogledaj starije teme:

Zašto mi preko 15 cifara na kraju ispisuje nule

Veliki broj sa puno cifara

Da li može da se poveća tačnost Excela?

Novi excel bug? 0=-3,1E-15?

Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200317.03.2014. u 16:44 - pre 122 meseci
Citat:
3okc: Ne radi se o grešci nego ograničenju na 15 značajnih cifara.

A zasto za neke druge brojeve nije tako?
Za ogranicenje na 15 znacajnih cifara u Excelu znam, ali ovde bi trebalo da budu sve nule.

Prosto receno 32.323,00-32.323,00=0,0000... ne moze da se na 12, a ni bilo kojoj drugoj cifri, nadje bilo sta osim 0.

Meni bas ovaj racun sa ovim brojevima prikazuje gresku, a bilo koja druga kombinacija brojeva ispisuje tacan rezultat tj. daje 0 kao rezultat.
Ovde se ne radi o racunima sa velikim brojevima, nego sa malim brojevima samo na 2 decimale.

Ne radi se o tacnosti prikaza racuna nego o evidentnoj gresci u racunu kad se ukljuci funkcija IF u racun.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Vrlo cudan problem u Excel-u 200317.03.2014. u 17:12 - pre 122 meseci
Ok, nisam bio sasvim precizan, radi se zapravo o (1) računanju u pokretnom zarezu i (2) zaokruživanju na 15 značajnih cifara.

Ako te zanima, imaš gore sasvim dovoljno materijala za čitanje. Evo i video priloga:

    
Floating Point - Computerphile

Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200317.03.2014. u 17:26 - pre 122 meseci
Citat:
3okc: Ok, nisam bio sasvim precizan, radi se zapravo o (1) računanju u pokretnom zarezu i (2) zaokruživanju na 15 značajnih cifara.
...

Zasto mi ne verujes da se ne radi o zaokruzivanju i znacajnim ciframa
Hvala na pomoci, ali moje konkretno pitanje glasi:

- Zasto je sledeci racun u Excelu tacno 0,00
Code:
(3.283,40 + 30.000,00 + 16.019,23) - 49.302,63 = 0,00  

(decimalni separator je "," )

a sledeci racun nije tacno 0,00
Code:
IF (49.302,63>0; (3.283,40 + 30.000,00 + 16.019,23) - 49.302,63 ; "")


Ajde ako ti nije tesko pogledaj jos jednom prvu sliku i pitanje i proveri kod tebe u Excelu!
Uopste nije problem zbog velikih decimala jer u ovim brojevima postoje samo 2 decimale.

Kod mene tacno ovi brojevi prikazuju problem, sa ostalim je racun potpuno u redu.

Prikačeni fajlovi
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 11:46 - pre 122 meseci
Identican racun je i u Excel-u 2007 i 2010

Da li moze neko da me uputi kako da postavim ovo pitanje tehnickoj podrsci Microsofta?

Interesuje me zasto samo u ovom slucaju kombinacije brojeva funkcija IF izbacuje rezultat razlicit od nule i da li postoje jos neki slucajevi kada se moze ocekivati ovakav netacan racun?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 12:12 - pre 122 meseci
Pa, ne razumeš šta ti je napisao 3okc.

Brojevi u Excelu se predstavljaju u floating point zapisu, pa dolazi do greške zaokruživanja.
Pogledaj primer u C:

Code (c):

$ cat testdouble.c
#include <stdio.h>
void main() {
  double a = 3283.40;
  double b = 16091.23;

  printf("%10.40f + %10.40f = %10.40f\n", a, b, a+b);
  printf("%10.40f\n", (double) 49302.63);
}
$ make testdouble
cc     testdouble.c   -o testdouble
$ ./testdouble.exe
3283.4000000000000909494701772928237915039060 + 16091.2299999999995634425431489944458007812500 = 19374.6300000000010186340659856796264648437500
49302.6299999999973806552588939666748046875000
$
 


A na tvoje pitanje, kada se to događa - uvek, kada god decimalni deo broja ne može da se napiše kao zbir negativnih stepena dvojke:

Tako, 0.5 može da se zapamti tačno jer je 0.5 = 2^-1, 0.25 = 2^-4, 0.75 = 2^-1 + 2^-4,
dok brojevi 0.1, 0.2, 0.3 itd ne mogu jer nisu zbir negativnih stepena dvojke, nego se pamte približno.

U prvom primeru napiši

=if(A1>0; ROUND(SUM(C1:E1)-A1;2); "")
i radiće.
Dakle, UVEK koristi ROUND kada radiš sa decimalnim zapisima novčanih vrednosti, a NEMOJ da se oslanjaš na format polja.

PODSETNIK: kada radiš sa novčanim vrednostima (sa dve decimale), samo iznosi koji imaju .00 .25 .50 i .75 se TAČNO prikazuju i pamte, svi ostali iznosi su APROKSIMACIJE.

[Ovu poruku je menjao djoka_l dana 18.03.2014. u 13:25 GMT+1]
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 14:49 - pre 122 meseci
Citat:
djoka_l: Pa, ne razumeš šta ti je napisao 3okc.

Brojevi u Excelu se predstavljaju u floating point zapisu, pa dolazi do greške zaokruživanja.
...

Zar Excel ne garantuje preciznost na 15 decimala?
Zbunjen sam cinjenicom da ta preciznost nije uvek takva npr. u ovom slucaju problem je na 12-oj cifri.

Ali ovde je konkretno problem u IF funkciji jer racun u njoj je manje precizan nego bez nje.
Ne shvatam zasto je to tako.

A inace problem sam resio tako sto sam umesto 49.302,63 napisao 49.302,631 i umesto 16.019,23 napisao sam 16.019,231 jer mi to ne utice na racun.

Problem je vise u principu nepreciznosti nego u samom resavanju konkretnih problema.
Nisam razmisljao da Excel moze imati problema sa radom sa malim brojevima, na kraju pravljen je bas za ove stvari.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 15:47 - pre 122 meseci
Excel ne garantuje preciznost na 15 decimala.

Double zapis broja u pokretnom zarezu OBEZBEĐUJE (a ne garantuje) 15-17 ZNAČAJNIH cifara (obrati pažnju na termin značajna cifra a ne decimalna cifra).

To znači da broj 49302.63 u stvari predstavlja zapis broja 49302.630000000000 do 49302.630000000099.
Tebi se greška pojavila na 12 DECIMALI, a kako u međurezultatu imaš decimalni broj koji levo od decimalne tačke ima 5 značajnih cifara, greška je na sedamnaestoj (5+12) cifri, što je sasvim u skladu sa double preciznošću.

Nemoj da praviš gluposti sa dodavanjem treće decimale, koristi ROUND za zaokruživanje međurezultata.

Dakle možda je 0.1 različito od 0.05+0.05 ali je round(0.1,2)=round(0.05+0.05,2)
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 20:24 - pre 122 meseci
@djoka_l, OK shvatio sam, mada sam mislio da ide drugacije ali nije sad to toliko bitno.

Da li mozda mozes da pretpostavis zbog cega se ovo desava samo u kombinaciji sa funkcijom IF, a bez nje je sve OK?
Da li se brojevi drugacije interpretiraju sa funkcijama a drugacije bez njih?

Hvala za predlog koriscenja ROUND funkcije, ali ako mi se ovo desi jednom u 1.000 ili 1.000.000 slucaja onda je mozda prakticnije taj slucaj zaobici prakticnije ili samo u tom slucaju koristiti ROUND nego bas uvek.
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200318.03.2014. u 23:11 - pre 122 meseci
Excel specifications and limits
...
Number precision 15 digits (u mom racunu omasio na 13-oj cifri a ovamo se hvale sa 15 )
Smallest allowed negative number -2.2251E-308
Smallest allowed positive number 2.2251E-308
Largest allowed positive number 9.99999999999999E+307
Largest allowed negative number -9.99999999999999E+307
Largest allowed positive number via formula 1.7976931348623158e+308
Largest allowed negative number via formula -1.7976931348623158e+308
...

Ipak postoje razlike u brojevima izrazenim preko formula ...

OK, mislim da ce mi ove informacije sa teme biti dovolje, da ne smaram vise od potrebnog.
Mada ocekivao sam malo vise od matematike u Excel-u prosto deluje bezveze da jedan od najozbiljnijih alata za obradu brojeva ne moze pravilno da sabere i oduzme par malih brojeva, na samo dve decimale, u formuli.
Od danas gledam Excel malo drugacijim ocima ... daleko je on od pouzdanih alata ... sa njim bi bilo tesko stici i do Meseca a da ne spominjem neku udaljeniju planetu
Ko zna koliko on ima gresaka u racunima, kad bi se malo detaljnije i preciznije time pozabavili...

 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Vrlo cudan problem u Excel-u 200319.03.2014. u 13:35 - pre 122 meseci
Citat:
igorpet: Number precision 15 digits (u mom racunu omasio na 13-oj cifri a ovamo se hvale sa 15 ;) )


U 15 značajnih cifara ulaze s v e cifre -- gledano s leva -- a ne samo one iza decimalnog zareza.

Brkaš decimalno mesto sa preciznošću proračuna.

Ako prvi broj levo od decimale nije nula, onda je poslednja značajna vrednost na 14. decimali (jer je 15 = 1+14).

Dalje, kada radiš računske operacije, gleda se 15 cifara od konačnog rezultata. Moguće je da greška "preskoči" jedno decimalno mesto pa o tome treba povesti računa kada vršimo zaokruživanje.

Evo još jednog primera "originalne greške": (0,4 + 99 + 1,23 - 100,63) -daje malu grešku.
Dok samo jedna promena redosleda, recimo: (1,23 + 0,4 + 99 - 100,63) -daje tačan rezultat.

Ovakvih možeš da imaš koliko hoćeš.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200319.03.2014. u 15:08 - pre 122 meseci
Citat:
3okc: U 15 značajnih cifara ulaze s v e cifre -- gledano s leva -- a ne samo one iza decimalnog zareza.
Brkaš decimalno mesto sa preciznošću proračuna...
Dalje, kada radiš računske operacije, gleda se 15 cifara od konačnog rezultata...

Ja ne znam kako ih ti brojis ali ja vidim gresku u prvom slucaju na 15-oj cifri a u drugom na 13-oj,14-oj i 15-oj cifri (ako uzmemo da prvih 15 cifara moraju da budu tacne i garantuju sigurnost tacnog racuna).

Citat:
3okc: ...
Evo još jednog primera "originalne greške": (0,4 + 99 + 1,23 - 100,63) -daje malu grešku.
Dok samo jedna promena redosleda, recimo: (1,23 + 0,4 + 99 - 100,63) -daje tačan rezultat.

Ovakvih možeš da imaš koliko hoćeš.

I sta sad? To je kao OK?
U jednom redosledu zna da je nula a drugom ne zna.

Mislim da ovo nije u okviru standarda prezentovanih za Excel.
Pitanje je samo da li je bag dokumentovan ili ne, i ako jeste zasto se vuce kroz tolike verzije Excel-a.
Prikačeni fajlovi
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Vrlo cudan problem u Excel-u 200319.03.2014. u 16:09 - pre 122 meseci
Ako obrćeš desetine i stotine hiljada onda je logično da će i greška da se pozicionira "višlje".

Razmotri recimo ovaj slučaj, u jednoj ćeliji, npr A1, upiši broj 1E+20

Onda upiši formulu =A1=(A1+100000)

I rezultat će reći TRUE tj da su preth. broj i isti taj broj uvećan za 100.000 -- zapravo isti.

Da li je sada malko jasnije?
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

igorpet

Član broj: 18898
Poruke: 553
*.dynamic.isp.telekom.rs.



+46 Profil

icon Re: Vrlo cudan problem u Excel-u 200319.03.2014. u 16:46 - pre 122 meseci
Citat:
3okc: Ako obrćeš desetine i stotine hiljada onda je logično da će i greška da se pozicionira "vislje"...

Problem ovde je sto je greska pozicionirana "nize" od "zagarantovanih" 15 tacnih cifara, a racun je krenuo od brojeva koji imaju 5 i 7 cifara koji su takodje daleko ispod "zagarantovanih" 15.

Tvoj primer 1E+20 krece od cifre sa 20 brojeva sto je daleko veci broj od navedenih u primerima, i da kazemo dosta iznad onih brojeva sa 15 cifara.

Ne razumem o cemu diskutujemo u zadnjim porukama!?
Da li tvrdis da je sve ovo oko ovih racuna OK ili sta vec?
Nije nesto bog zna kako komplikovano shvatiti sabiranje i oduzimanje do 50.000 sa brojevima na 2 decimale, ali jeste nesto kompleksnije shvatiti gde je problem u Excelu jer ovi brojevi su daleko unutar deklarisanog opsega i limita.

Da li je ovo greska u programu? Ili su specifikacije i limiti nizi nego oni zvanicno navedeni?
 
Odgovor na temu

[es] :: Office :: Excel :: Vrlo cudan problem u Excel-u 2003

[ Pregleda: 3137 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.