• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

mantığım almıyor excel doğru toplama yapamıyormu?

Katılım
22 Nisan 2006
Mesajlar
7
Arkadaşlar merhaba,


Uzun zamandır excel kullanmama rağmen çok basit bir sorun ile karşılaştım ve çözemiyorum kendimden utanıyorum yardımlarınızı bekliyorum :)

sorun: listem 35.000 satır 95 kolon ..sadeleştiri anlatayım, aynı satırdaki 3 kolona ait numeric bilgiyi kendi aralarında toplatıp çıkarıyorum tam sonuç vermiyor, rakamlarım noktadan sonra 10 digit (000.0000000000 formatında)

örnek:

1280.2200000000 + 5028.7600000000 - 5897.8200000000 =

sonuç = 411.160000000000 olması gerekirken 411.1600000010 çıkıyor

not: formulü ben sağlama yapmak , çıkan sonucu kontrol etmek için kullanıyorum bu nedenle round kullanmamın anlamı yok çünkü PDU (Parts Data Upload) ile yurtdışındaki bir sisteme yüklüyorum sistem hata veriyor

kafayı kırcam a+b-c= hata olcak iş değil



:kafa:
 
Büyük ihtimalle işlem yaptığınız sayıların 10 digitten sonrasında da rakamlar mevcut, ve işlem yaparken bunlar dikkate alınıyor.
 
Sn karamurselli,

Sizin dosyada da aynı sorun var.
Virgülden sonraki basamak sayısını arttırırsanız 1 rakamını göreceksiniz.
İlginç bir durum.
 
iyi ki, paralardan 6 sıfır atıldı, enflasyondan dolayı 10 haneli sıfırlara kadar paralar olsaymış, yanlışlıklar başlıyacaktı demek.
 
Bildiğim kadarı nedenini basit olarak söyleyeyim:

1. Excel'in 15 dijit sınırı.
2. Sayıların 10'luk sistemden ikili sayılı sisteme dönüşleri,
3. 1/3, 1/6... ve benzeri sayılardaki son dijitin ne olacağı sorunu,

İster istemez excelde bazı işlemler birbirlerine eşit çıkmamakta ve bunu bilen excel yapımcıları da bu tür hataları gidermek ve diğer işlemler için;

INT
MROUND
ROUND
ROUNDDOWN
ROUNDUP
TRUNC

işlevleri excele koymuşlar.

Bu nedenle, bu problemde, round fonksiyonu kullanılıp istenilen dijitte yuvarlama yapılırsa hata giderilebilir.
 
Merhaba

Belki bundandır.......

15 basamak duyarlı Excel anlamlı 15 basamağı kaydedip duyarlı olarak hesaplar.


Excel, görüntülenen değerleri değil, saklanan değerleri hesaplar Görüntülenen ve yazdırılan değer saklanan değeri biçimlendirmeyi ve görüntülemeyi nasıl seçtiğinize bağlıdır. Örneğin, tarihi "22.6.2008" olarak görüntüleyen bir hücre, hücredeki tarih için depolanan değer olan bir seri numarası da içerir. Tarihin görüntüsünü, başka bir biçime değiştirebilirsiniz (örneğin, "22-Haz-96"); fakat, bir değerin çalışma sayfasındaki görünümünü değiştirmek, depolanan değeri değiştirmez.

.




Excel'de
Özellik En büyük sınır

Sayı duyarlığı 15 basamak

Bir hücreye girilebilecek en yüksek sayısal değer 9,99999999999999E307

En yüksek pozitif sayısal değer 1,79769313486231E308

En düşük negatif sayısal değer 2,2250738585072E-308

En düşük pozitif sayısal değer 2,229E-308

En yüksek negatif sayısal değer -1E-307

Formül içeriğinin uzunluğu 1.024 karakter

Çalışma sayfası dizileri Kullanılabilen bellekle sınırlıdır. Ayrıca, diziler tüm sütunlara başvuramazlar. Örneğin, bir dizi tüm C:C sütununa veya C!:C65536 aralığına başvuramaz. Ancak, bir dizi C1:D65535 aralığına, bu aralığın en büyük çalışma sayfası boyutundan bir satır kısa olması ve tüm C veya D sütununu içermemesi nedeniyle başvurabilir.

Seçilmiş aralıklar 2.048

Bir fonksiyondaki bağımsız değişkenler 30

Fonksiyonların iç içe düzeyleri 7

Kullanılabilen çalışma sayfası fonksiyon sayısı 329

Hesaplama için izin verilen en erken tarih 1.Ocak.1900 (1904 tarih sistemi kullanılıyorsa, 1.Ocak.1904)

Hesaplamalar için izin verilen en son tarih 31.Aralık.9999
Girilebilecek en büyük saat 9999:99:99


Edit: Gene formumda değilmişim
 
Bende bildiğim kadarıyla benzer şeyler söylemek isterim. Çünkü böyle bir sorunla bende karşılaşmıştım.

Örneğin;
A1 hücresine 1235,
B1 hücresine 1000
yazdınız ve
C1 hücresinde "=A1/B1"
işlemini yaptınız ve sonucu 1,235 şeklinde çıktı. Size virgülden sonra 1 hane yeterli olduğundan hücre ayarını yaptınız (ondalık basamak sayısı 1) ve artık hücrede 1,2 gözüküyor.
Siz şimdi örneğin;
D1 hücresinde "=C1*5" işlemini yaptığınızda sonucun 6 olmasını beklersiniz. Çünkü 1,2*5=6 dır. Ama sonuç "6,175" olarak çıkar. Çünkü excel işlem yaparken gözüken değeri değil aslını hesaba katar.
Ama C1 hücresine "=YUVARLA(A1/B1;1)" diyerek işlem yaptırırsanız gözüken değerle işlem yapılan değer aynı olmuş olur.
 
teşekkürler

Arkadaşlar daha önce bu siteden hiç yardım almamıştım , sorunlarımı kendi başıma çözmeye çalışmıştım hızlı ve gerçekçi yardım çabalarınız için teşekkür ederim, sanırım sizinle daha sık görüşeceğiz,

buarada leventm... işlem yaptığım rakamlarda 10. digitden sonra bilgi yok formatını 20 digitede çıkarıp kontrol etmiştim değişmiyor

zafer in belirttiği teoriye göre max 15 digitten az olduğu için kapsam dışı diye düşünüyorum


slmlr
 
Sayın xternet C1'i 1,2 olarak kabul eder eğer Araçlar/Seçenekler/Hesaplamalar'dan duyarlılık görüntelendiği gibi butonunu doldurursanız."C1*5"=6 her zaman 6 çıkar
 
Bu bilgiden dolayı teşekkür ederim Sn.otufan03. Şu excelde yok yok.
 
Acil çözüm bulmam lazım.

Arkadaşlar ,

Ekteki sorunumun nedeni ile ilgili microsoft'a yazdım cevap gelince sizinle paylaşırım,
 
Micorsoft un cevabı !!

Arkadaşlar,

Micorsoft dan gelen cevap ektedir anladığım kadarı ile Excel hesaplamayı IEEE standartlarına göre yapıyor (ne demekse) round hariç çözüm yok yani excel yanlış hesap yapıyor

:hiho:
adamların örneği de ilginç =1*(.5-.4-.1) =0.0000000000000000278

1*0= 0.0000000000000000000 olması lazım !!


----------------------------------------------------------
SYMPTOMS
Many combinations of arithmetic operations on floating-point numbers in Microsoft Excel and Microsoft Works may produce results that appear to be incorrect by very small amounts. For example, the equation
=1*(.5-.4-.1)
may be evaluated to the quantity (-2.78E-17), or -0.0000000000000000278 instead of 0.

CAUSE
This behavior is not a problem in or a limitation of Excel or Works; this behavior occurs because the Institute of Electrical and Electronics Engineers (IEEE) 754 floating-point standard requires that numbers be stored in binary format.
WORKAROUND
Method 1
To minimize any effects of floating point arithmetic storage inaccuracy, use the Round() function to round numbers to the number of decimal places that is required by your calculation. For example, if you are working with currency, you would likely round to 2 decimal places:

=ROUND(1*(0.5-0.4-0.1),2)
 
Geri
Üst