Excel nie potrafi odejmować

Anonimowe
2013-08-07T16:45:11+00:00

Wygląda na to, że Excel nie potrafi wykonać bardzo prostego odejmowania.

Formatujemy komórki od A1 do D1 ustawiając format liczbowy z 2 miejscami dziesiętnymi. Wprowadzamy następujące dane do komórek:

A1 11215,71

B1 =15028,31-A1

C1 3812,60

D1 =C1-B1

E1 =D1=0

W wyniku takiego działania w komórce D1 uzyskujemy wartość 0,00, natomiast wg Excela to "zero" nie jest równe zeru, co skutkuje wartością FAŁSZ w komórce E1.

Moim zdaniem jest to oczywisty błąd w programie który powinien być jak naszybciej naprawiony przez Microsoft.

Microsoft 365 i pakiet Office | Excel | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy
Odpowiedź zaakceptowana przez autora pytania
Anonimowe
2013-08-12T16:01:26+00:00

Wygląda na to, że napisaliśmy posta praktycznie w tym samym czasie, tyle że ja byłem minimalnie później :-) No cóż, już wiemy z czego wynika problem. A tak na marginesie to przed przeczytaniem Twojego posta właśnie bardzo się zdziwiłem gdy ten sam efekt uzyskałem w OpenOffice Calc stosując prostą formułę =11,34-11,33. Teraz wszystko jasne - nie ma jak stare dobre liczydło ;-)

Czy ta odpowiedź była pomocna?

Komentarze: 0 Brak komentarzy
Odpowiedź zaakceptowana przez autora pytania
Anonimowe
2013-08-12T15:36:14+00:00

Dziękuje za pozytywne podejście :)

„(…) Program Excel może przechowywać liczby z zakresu od 1,79769313486232E308 do 2,2250738585072E-308, jednak zachowuje tylko precyzję 15-cyfrową. To ograniczenie jest bezpośrednim rezultatem ścisłego przestrzegania specyfikacji IEEE 754 i nie jest związane z programem Excel. (…)”

"(...) Korygowanie błędów związanych z precyzją

Program Excel oferuje dwie podstawowe metody kompensacji błędów związanych z zaokrąglaniem: funkcja ZAOKR i opcje skoroszytu Dokładność jak wyświetlono lub Ustaw dokładność zgodnie z wyświetlaną. (...)"

więcej w artykule "Wyniki arytmetycznych obliczeń zmiennoprzecinkowych w programie Excel mogą być niedokładne" dostępnym pod: http://support.microsoft.com/kb/78113/pl

Czy ta odpowiedź była pomocna?

Komentarze: 0 Brak komentarzy

Dodatkowe odpowiedzi: 17

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2013-08-12T13:59:44+00:00

    Tak, wiem że takie "obejście" zadziała. Jednak nie przekonuje mnie zaokrąglanie już wcześniej zaokrąglonych wartości. Jak dla mnie jest to masło maślane ;-) Poza tym nie zmienia to faktu, że Excel po prostu źle liczy. Dowód: te same operacje wykonane za pomocą długopisa, kartki papieru i biurkowego kalkulatora dają inny (prawidłowy) wynik.

    Pozdrawiam,

    Piotr

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Anonimowe
    2013-08-12T13:41:04+00:00

    Wpierw wyciągasz procent (bardzo „dokładny” = do 14 miejsc po przecinku) z konkretnej liczby, tych wartości zbierasz kilkadziesiąt (~40), następnie zaokrąglasz każdą z nich przy pomocy funkcji =ZAOKR z dokładnością do dwóch miejsc po przecinku, ostatecznie sumujesz wszystkie za pomocą =SUMA.

    Tutaj wydaje się, iż leży sedno sprawy: działając na zbiorach, w naszym wypadku sumie wartości zaokrąglonych, wynik również należałoby zaokrąglić.

    Zamiast:

    Wybrać:

    Pozdrawiam.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Anonimowe
    2013-08-12T12:12:58+00:00

    Witaj.

    No niby tak, ale to nie zmienia faktu, że wszystkie wartości są zaokrąglane przy obliczeniach przez funkcję ZAOKR do 2 miejsc po przecinku, więc sumowanie, czy też odejmowanie takich wartości nie może zwracać takiego wyniku, bo to jest bez sensu:

    Pozdrawiam,

    Piotr

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy