Aracılığıyla paylaş

Formül ile toplam hatası! Görsel sonuç aynı fakat küsüratta hatalı hesaplıyor.

Anonim
2017-04-05T07:41:12+00:00

Aşağıda görüldüğü üzere toplamada nedenini çözemediğim toplama hatası veriyor. Kendiliğinden fazladan küsürat atıyor. Halbuki tüm değerler formülsüz ve virgülden sonra sadece 2 haneden oluşmakta. Sonuç doğru görüntülese de dormül içinde hesap yaparken hata ile karşılaşıyor.

En altta link olarak da gönderiyorum dosyayı. Win10 kullanıyorum ve office365 aylık ödeme ile son sürüm kullanıyorum - v1701 (Build 7766.2060).

dosya aşağıdaki linktedir:

https://1drv.ms/x/s!Ak0uOIGE3wzFgo5CywGzRm\_y79PXpg

Microsoft 365 ve Office | Excel | Ev için | Windows

Kilitli Soru. Bu soru Microsoft Destek Topluluğu’ndan aktarıldı. Yararlı olup olmadığını belirtmek için oy verebilirsiniz ancak yorum veya yanıt ekleyemez ya da soruyu takip edemezsiniz.

0 yorum Açıklama yok
Soru yazarı tarafından kabul edilen yanıt
  1. Anonim
    2017-04-07T09:36:03+00:00

    Kubilay bey merhaba,

    Öncelikle ilginize teşekkür ederim. Belirttiğiniz durumu gayet iyi biliyorum ve ne demek istediğinizi anladım fakat sorun yukarıda da izaha çalıştığım üzere sayısal değerler gerçekten virgülden sonra 2 haneli. Yani sadece elle girilmiş 11,81 şeklinde bir değer.

    "Evaluate Formula" ile işlemlerin ekran görüntüsünde bu husus gözüküyor. Yani G109 hücresi tam olarak 695,34 ile -683,53'ün toplamıdır. Bu ikisi de virgül sonrası 2 basamaklı olduğu için cevap da yine virgül sonrası 2 basamaklı şeklindedir. Excelin hesap ettiği değer enteresan şekilde bazı hücrelerde hata veriyor.

    Yani G109 hücresinin hesabını adımlarken 11,81 buluyor fakat "=IF(..." ya da türkçe karşılığı "=EĞER(..." ile başlayan ya da başka bir formül ile hesaplarken 11,8100000000001 gibi bir sonuç çıkarıyor. Bu hatayı ünlem işareti ile gösterilmiş diğer bazı hücrelerde de yapıyor. Uzun yıllardır derinlemesine bir Excel kullanıcısı olarak ilk defa bu tarz bir hataya denk geldim. VBA kodlamalarında bazen takılmalar olsa da aç kapa ile genelde değerler güncelleniyordu fakat bu hataya anlam veremedim ve aç kapa düzeltmedi.

    Umarım net bir şekilde ifade edebilmişimdir. Bu arada dosyayı yukarıda belirttiğim linkten indirip inceleyebilirsiniz.

    Saygı ve sevgiyle...

    Burak

    Tekrar Merhaba Burak,

    Bu sonucun çıkması aslında bir problem ya da Excel'in bir kısıtlaması değil.

    Davranışın sebebi, Excel'in ondalık sayıları, "Electrical and Electronics Engineers (IEEE) 754 floating point standard" kullanarak saklaması. Bu standardı kullanarak binary formatta sayıları tuttuğu için bu sorunvari durumla karşılaşılabiliyor.

    Çözüm1: Daha önce söylemiş olduğum =ROUND() fonksiyonu kullanılabilir.

    Çözüm2: Kalıcı bir çözüm için ise,

    File(Dosya) - > Options (Seçenekler) -> Gelişmiş(Advanced) ->When Calculating This Workbook(Bu çalışma Kitabını Hesaplarken) -> Set Precision as Displayed(Duyarlılığı Göründüğü gibi ayarla) seçeneğini işaretlemek.

    İyi Çalışmalar.

    6 kişi bu yanıtı yararlı buldu.
    0 yorum Açıklama yok

3 ek yanıt

Sıralama ölçütü: En yararlı
  1. Anonim
    2017-04-07T14:18:39+00:00

    Selam Kubilay,

    Sanırım sunduğun bu seçenek (Set Precision as Displayed) fazla kısıtlayıcı ve yeri geldiğinde (yeterli duyarlılık istendiğinde) sorun çıkarabilecek cinsten. Yine de önerin için teşekkür ederim.

    Benim merak ettiğim husus ise herhangi bir hücreye "=695.34-683.53=11.81" yazınca "FALSE" yanıtını alırken, "=1091.32-716.45=374.87" yanıtı "TRUE" vermesindeki düzensizliğin nedeni, ama sanırım bu altyapıda yatan daha derin bir konu. Bu sorunu VBA Editörde de denedim ve aynı sonucu aldım.

    En azından basit görünen (az haneli) bu sayılar için bunu beklemiyordum. O zaman bu durum kullanılan versiyona ait olmayıp tüm excellerde karşılaşılan bir sonuç şeklinde algılıyorum.

    Bilgilendirme için teşekkürler.

    0 yorum Açıklama yok
  2. Anonim
    2017-04-07T08:16:45+00:00

    Kubilay bey merhaba,

    Öncelikle ilginize teşekkür ederim. Belirttiğiniz durumu gayet iyi biliyorum ve ne demek istediğinizi anladım fakat sorun yukarıda da izaha çalıştığım üzere sayısal değerler gerçekten virgülden sonra 2 haneli. Yani sadece elle girilmiş 11,81 şeklinde bir değer.

    "Evaluate Formula" ile işlemlerin ekran görüntüsünde bu husus gözüküyor. Yani G109 hücresi tam olarak 695,34 ile -683,53'ün toplamıdır. Bu ikisi de virgül sonrası 2 basamaklı olduğu için cevap da yine virgül sonrası 2 basamaklı şeklindedir. Excelin hesap ettiği değer enteresan şekilde bazı hücrelerde hata veriyor.

    Yani G109 hücresinin hesabını adımlarken 11,81 buluyor fakat "=IF(..." ya da türkçe karşılığı "=EĞER(..." ile başlayan ya da başka bir formül ile hesaplarken 11,8100000000001 gibi bir sonuç çıkarıyor. Bu hatayı ünlem işareti ile gösterilmiş diğer bazı hücrelerde de yapıyor. Uzun yıllardır derinlemesine bir Excel kullanıcısı olarak ilk defa bu tarz bir hataya denk geldim. VBA kodlamalarında bazen takılmalar olsa da aç kapa ile genelde değerler güncelleniyordu fakat bu hataya anlam veremedim ve aç kapa düzeltmedi.

    Umarım net bir şekilde ifade edebilmişimdir. Bu arada dosyayı yukarıda belirttiğim linkten indirip inceleyebilirsiniz.

    Saygı ve sevgiyle...

    Burak

    0 yorum Açıklama yok
  3. Anonim
    2017-04-05T08:58:21+00:00

    Merhaba;

    Çıkarma işlemi yapmış olduğunuz hücrede biçimlendirme ile virgülden sonra iki basamak göster deseniz de Excel hesaplamayı kalan 0 bulana kadar uzatır. Bu sebepten Değer olarak gözüken 11,81 ile çıkarma sonucu gözüken 11,81 aynı değildir. 

    Böyle bir karşılaştırma yapmanız gerekiyorsa, Size tavsiyem =Round() fonksiyonu ile çıkarma işlemini iki basamağa yuvarlatmanızdır. O zaman sorunuzun çözüldüğünü göreceksiniz.

    Aşağıda örneği Mevcuttur.

    Round ( Yuvarla) Fonksiyonu ile ilgili detaylı bilgiyi  ROUND Function adlı makaleden erişebilirsiniz.

    iyi günler...

    0 yorum Açıklama yok