sayıların eşitliğini algılamıyor

Katılım
22 Kasım 2006
Mesajlar
15
Excel Vers. ve Dili
ms office 2003 pro (ing)
x 5.788,06
x 2.155,13
x 205,88
y 8.149,07

yazdığım makro iki sütunu inceliyo. birinci sütunda değer değişene kadar ikinci sütundaki rakamlar toplanıyor. değiştiği yerde de o ana kadar ki toplam değişen satırdaki miktara eşit mi onu kontrol ediyo.

yani yukarda şunu yapacak. 1. sütun "x"lerle başlıyo. "y" ye kadar miktarları toplayacak. (5.788,06 + 2.155,13 + 205,88)
bir alt satırda y olduğu için bu sefer toplamayacak, o ana kadar ki toplamın y nin satırındaki miktar olan 8.149,07 ye eşit mi onu kontrol edecek.

normalde yukarda eşitlik sağlanıyor ama makroda eşitlik sağlanmamış gibi görünüyo. debug menüsünde kontrol ettim 8.149,07 = 8.149,07 adımına kadar geliyo ama bu eşitliğe false deyip geçiyo. bu neyden kaynaklanabilir? bi fikir verir misiniz..

hücrelerin ve toplam değişkeninin değerini başta tanımlamamıştım. bu durum olunca hepsini double olarak tanımladım. bazı miktarlarda sonuca ulaşıyor makro ama bazı gruplarda yukarıdaki gibi sonuç alınmıyo..
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Double yerine Currency olarak tanımlayınız.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Çok ilginç ...

Ne yapsak nereye koysak yine de aynı olması gereken iki değer arasında 9,09494701772928E-13 gibi bir hata oluşuyor.

Bu benim de daha önce başıma hiç gelmemiş bir şey ama önemli bir sorun olduğu belli ...

Ripek üstad, her ne kadar currency çözümü ile duyarlılık sorununu indirgemiş olsa da; bu tür double sayılarda dikkatli olmak gerekiyor galiba ...

Değişken tanımlamaları bir işe yaramıyor . Sayı dönüşümleri (Cdbl gibi) de sonuç vermiyor.

Araştırmak lazım ...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Birçok denemeden sonra bu çözümü buldum.Açıkcası bence de ilginç.

Fakat toplanan tutarları herhangi bir hücreye yazdırıp, IF fonksiyonu ile bunu toplamla
karşılaştırdığımda doğru sonuç veriyor.

Zaten kuruşlu rakamlar her zaman makrolarda problem yaratmaktadir. ;)
 
Katılım
22 Kasım 2006
Mesajlar
15
Excel Vers. ve Dili
ms office 2003 pro (ing)
currency olarak tanımlamak sorunu çözdü gibi. veri çok büyük olduğu için hepsinde deneyemedim. ama uyguladığım kısmında sorun olmadı. sorun çıkarsa da dediğiniz gibi toplamı başka hücreye yazdırmayı deniyecem.

ikinize de çok teşekkürler yardımınız için.
 
Katılım
22 Kasım 2006
Mesajlar
15
Excel Vers. ve Dili
ms office 2003 pro (ing)
bu arada başka bi şey dikkatimi çekti.

sorun sanırım sayıların 2lik sisteme dönüştürülüp tekrar 10luk sisteme dönüştürülmesi sırasında oluşuyor. arada sürekli oluşan fark 1 bitin terabit karşılığı. tahmin ediyorum ki bu da ikilik sistemdeki "0" ve "1" den "0" a eşit.

yani aslında excelin de bulduğu fark da "0".

neden bu olabilir sanırım. ama çözüm kesin bende yok. :)
 
Üst