• DİKKAT

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

Koşullu Toplama

  • Konbuyu başlatan Konbuyu başlatan seismic
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Ekim 2004
Mesajlar
223
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2024
Eğersay ile ilgili bir sorun

Forumda yeterince örnek ve konu başlığı bulunuyor ancak benim sorunum biraz spesifik. Ya da bana öyle geliyor, bilemiyorum. Acemilik zor..!

Dosya üzerinde sorunumu anlattım, ilgilenecek arkadaşlara şimdiden teşekkür ediyorum.
 

Ekli dosyalar

Son düzenleme:
Etopla ile toplayıp koşulu sağlayan kadar sayıya bölerseniz sonuç olmuyor mu?
 
Sayın muokumus ilgine teşekkür ederim ancak bu formül ile istenilen değerler gelmiyor. Şöyle tarif edeyim;

"AX" sütununda doğru değerler mevcut. Formülleri "AY" sütununa girdiğimizde "AX" sütunundaki değerlerin birebir aynıları gelmesi gerek çünkü "AY2" hücresindeki değer de tıpkı "AX2" hücresindeki gibi 1. ayı gösteriyor. Bunu yalnızca deneme amaçlı girmiştim. Formülleri oturtabilirsek "AY2" hücresindeki değeri 2 yapacağım.

Sizin yazmış olduğunuz formülde "AY" sütunundaki sonuçlar sıfır çıkıyor. Doğru diyebilmem için "AX" sütunundaki değerler ile aynı çıkması gerekiyor.
 
Söz konusu değerler için;

=TOPLA.ÇARPIM((1/EĞERSAY(HSP;HSP));(HSP))

gibi bir formül uyguladım ancak bu formülde de "HSP" alanındaki tüm farklı değerlerin toplamını alıyor. Yalnızca belirtilen sipariş numarasına karşılık gelen hesaplama değerlerini toplaması için bir formül düzenleyemedim. Aslında formül doğru çalışıyor ama istenilen doğru sonuçları getirmesi için ya "HSP" ile adlandırılmış alanın dinamik olması gerekiyor ya da bu formüle bir şart daha ekleyerek yalnızca belirtilen alanda "eğersay" yapması gerekiyor.

Kaç gündür bu dosya üzerinde çalışıyorum. Önce SQL tablo bağlantıları, sonra başka sorunlar derken bir de üzerine bu hesaplama sorunu çıktı. Birileri acilen yardımcı olabilirse çok sevineceğim. İlgilenecek arkadaşlar şimdiden teşekkürler.
 
Sorunuz anlaşılmıyor.

SPR 00001 ... 04.01.2011 ... 03.01.2011 ... 1
SPR 00001 ... 10.01.2011 ... 10.01.2011 ... 0
SPR 00001 ... 10.01.2011 ... 10.01.2011 ... 0
SPR 00001 ... 17.01.2011 ... 17.01.2011 ... 0
SPR 00001 ... 10.01.2011 ... 10.01.2011 ... 0

Buradaki hesaplama mantığı nasıldır. Detaylı açıklama yapınız.

.
 
Sayın Ömer,

Hesaplama "Termine Uyum" (J) sütunundaki verilerden değil, "Hesap" (K) sütunundaki verilerden elde edilecek. Oradaki mantık ise basit. "Termin Tarihi" (C) sütunundaki tarihler ile "Sevk Tarihi" (I) sütunundaki tarihin farkını hesaplayıp "Termine Uyum" (J) sütununa yazıyor. Eğer fark 2'den büyük ise bulduğu değeri 0,33 ile çarpıyor ve sonucu "Hesap" (K) sütununa yazıyor. Örnek vermek gerekirse;

SPR 00008.....09.01.2011.....05.01.2011.....1,32
SPR 00008.....06.01.2011.....07.01.2011.....0,00
SPR 00008.....17.01.2011.....14.01.2011.....0,99

Burada sevk tarihleri farklı olduğu için (dolayısıyla irsaliye numaraları da farklı oluyor) 1,32 + 0,00 + 0,99 değerlerini toplaması gerekiyor. Başka bir sipariş numarasına bakalım;

SPR 00010.....06.01.2011.....04.01.2011.....0,00
SPR 00010.....06.01.2011.....10.01.2011.....1,32
SPR 00010.....06.01.2011.....12.01.2011.....1,98
SPR 00010.....03.01.2011.....05.01.2011.....0,00
SPR 00010.....06.01.2011.....05.01.2011.....0,00
SPR 00010.....06.01.2011.....10.01.2011.....1,32
SPR 00010.....06.01.2011.....05.01.2011.....0,00
SPR 00010.....03.01.2011.....04.01.2011.....0,00
SPR 00010.....06.01.2011.....04.01.2011.....0,00
SPR 00010.....06.01.2011.....05.01.2011.....0,00
SPR 00010.....06.01.2011.....14.01.2011.....2,64
SPR 00010.....06.01.2011.....05.01.2011.....0,00
SPR 00010.....06.01.2011.....10.01.2011.....1,32

Bu sipariş numarasında (yalnızca bir kısmını yazdım) 3 adet 1,32 değeri mevcut. Ancak bunlar aynı tarihte yani aynı irsaliye numarası ile sevk edilmiş malzemeler olduğundan dolayı hesabı yaparken yalnızca bir defa 1,32 değeri toplaması gerekiyor. Buna göre bu hesap 1,32 + 1,98 + 2,64 olması gerekiyor. Söz konusu sipariş numarası için dosya üzerindeki toplam değer 9,57 olmalı.

Umarım ne demek istediğimi anlatabilmişimdir. Sürçü lisan ettiysem affola diyorum.
 
AY3:

Kod:
=TOPLA(EĞER(SIKLIK(EĞER($A$2:$A$150=AX3;KAÇINCI("~"&$C$2:$C$150&$I$2:$I$150;
$C$2:$C$150&$I$2:$I$150&"";0));SATIR($C$2:$C$150)-SATIR($C$2)+1);$K$2:$K$150))

Dizi formülüdür. Ctrl + shift + enter tuş kombinasyonu ile girişini tamamlayınız. Son satırı 150 olarak aldım. Siz kendinize göre değiştirirsiniz..

.
 
Sayın Ömer teşekkür ederim bu formül doğru sonuçları getiriyor ancak mümkünse bir ekleme daha gerekiyor. "Termin Tarihi" sütununda yazan tarihin hangi ay olduğunu tespit edip o aya ait verileri "AY3:BJ3" arasındaki aylara bakarak getirmesi gerekiyor. Yani formülü bir yandaki sütuna kopyaladığımda 2. aydaki hareketleri, sonrakinde 3. aydakileri vs vs. kontrol etmesi gerekiyor.

=TOPLA(EĞER(SIKLIK(EĞER($A$2:$A$150=AX3;KAÇINCI("~"&$C$2:$C$150&$I$2:$I$150;
$C$2:$C$150&$I$2:$I$150&"";0));SATIR($C$2:$C$150)-SATIR($C$2)+1);$K$2:$K$150))

Formüle bir koşul daha eklememiz mümkün mü? Denedim ama sonuç #YOK olarak veriyor.
 
Kod:
=TOPLA(EĞER(SIKLIK(EĞER(($A$2:$A$150=$AX3)*(AY($C$2:$C$150)=AY$2);KAÇINCI("~"&
$C$2:$C$150&$I$2:$I$150;$C$2:$C$150&$I$2:$I$150&"";0));SATIR($C$2:$C$150)
-SATIR($C$2)+1);$K$2:$K$150))
Dizi formülüdür..

.
 
Sayın Ömer ilginize çok teşekkür ederim, formül cuk oturdu.
 
Geri
Üst