• DİKKAT

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

Kritere uymayanların toplamını alma

Katılım
20 Mart 2009
Mesajlar
333
Excel Vers. ve Dili
office 2003 ingilizce
Merhaba,
Örnekte ŞUBE kolonunda 601, 749 ve 894 haricindekileri D Kolununundaki karşılıklarını macro ile toplamak istiyorum?
Yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba,
Örnekte ŞUBE kolonunda 601, 749 ve 894 haricindekileri D Kolununundaki karşılıklarını macro ile toplamak istiyorum?
Yardımlarınız için şimdiden teşekkürler.
MErhaba
Ben formül ürettim ama farklı çözümü kesinlikle vardır.
Kod:
=TOPLA.ÇARPIM((B2:B17<>601)*(B2:B17<>749)*(B2:B17<>894)*(D2:D17))
 
Teşekkür eerim. Makro ile yapma şansı var mı acaba?
 
Bir de toplam almak yerine saymak istersek
=COUNTIF((B2:B17<>601)*(B2:B17<>749)*(B2:B17<>894)*(D2:D17)) şeklinde mi olacak?
 
Merhaba,

Alternatif olsun.

Toplam için formül;

Kod:
=TOPLA.ÇARPIM(EHATALIYSA(KAÇINCI(B2:B17;{601;749;894};0))*(D2:D17))
Toplam için kod;

Kod:
Sub Topla()
 
[E1] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(B2:B17,{601,749,894},0))*(D2:D17))")
 
End Sub
---------------------------------------------------------------------------------------------

Sayma için formül;

Kod:
=TOPLA.ÇARPIM(EHATALIYSA(KAÇINCI(B2:B17;{601;749;894};0))+0)
Sayma için kod;

Kod:
Sub Say()
 
[E1] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(B2:B17,{601,749,894},0))+0)")
 
End Sub

.
 
Bir de toplam almak yerine saymak istersek
=COUNTIF((B2:B17<>601)*(B2:B17<>749)*(B2:B17<>894)*(D2:D17)) şeklinde mi olacak?
MErhaba
Bu yeterli olur saymak için
Kod:
=TOPLA.ÇARPIM((B2:B17<>601)*(B2:B17<>749)*(B2:B17<>894))
 
Sonuçları diğer sayfanın bir hücresine yazmak istersem kodları nereye yazacağım Ömer Bey?
 
Sonuçları diğer sayfanın bir hücresine yazmak istersem kodları nereye yazacağım Ömer Bey?

Kodları herhangi bir module yazıp kodları aşağıdaki gibi değiştiriniz.

Kod:
Sub Say()
 
Sheets("Sheet2").[E1] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(Sheet1!B2:B17,{601,749,894},0))+0)")
 
End Sub
Toplam içinde aynı mantıkla değiştirirsiniz.

.
 
Ömer bey;
Teşekkür ederim faydalı oldu formülleriniz ve Evaulate örneğiniz.
 
özür dilerim ama toplam sıfır çıktı:(
Sheets("Rapor").[D14] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(Mahsup!B2:B102,{601,749,894},0))*(BA2:BA102))") şeklinde yazdım
 
Rica ederim, iyi çalışmalar..
 
Merhaba,
Sheets("Rapor").[B14] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(Mahsup!B2:B102,{601,749,894},0))+0)")

buradaki +0 anlamı nedir acaba?
Bir de herhangi bir sayma işlemini bununla yapabilir miyim? Mesela buradaki gibi bunların haricindekileri değilde mahsup içinde 420 yi say gibi.

Teşekkürler.
 
Yukarıdaki linkte bulamadım. Rica etsem yanıtlar mısınız?
Sheets("Rapor").[B14] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(Mahsup!B2:B102 ,{601,749,894},0))+0)")
1--Bir de herhangi bir sayma işlemini bununla yapabilir miyim? Mesela buradaki gibi bunların haricindekileri değilde mahsup içinde 420 yi say gibi.

2--burada sayı değil de text hariç demek istersek nasıl yapabiliriz? yani Mahsup içinde TR haricindekileri say ve topla.
 
Yukarıdaki linkte bulamadım. Rica etsem yanıtlar mısınız?
Sheets("Rapor").[B14] = Evaluate("=SUMPRODUCT(ISERROR(MATCH(Mahsup!B2:B102 ,{601,749,894},0))+0)")
1--Bir de herhangi bir sayma işlemini bununla yapabilir miyim? Mesela buradaki gibi bunların haricindekileri değilde mahsup içinde 420 yi say gibi.

2--burada sayı değil de text hariç demek istersek nasıl yapabiliriz? yani Mahsup içinde TR haricindekileri say ve topla.

1.Sorunuz.

Kod:
Sub say()
 
Sheets("Rapor").[B14] = WorksheetFunction.CountIf(Sheets("Mahsup").[B:B], 420)
 
End Sub
2.Sorunuzu anlayamadım.

Tek tek değilde konuyu kavramaya çalışırsanız daha faydalı olacaktır.

Burada kullanılan kodların mantığı formül ile aynı mantıktadır. Bu yüzden verdiğim likte ve dersane bölümündeki diğer fonksiyonların mantığını kavramanızı tavsiye ederim. Aksi halde sadece ezberlemiş olursunuz ve bunun size birşey kazandıracağını sanmam.

.
 
Geri
Üst