Renkli hücreleri koşula bağlı sayma ya da toplama

muratnahcivani

Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
43
Excel Vers. ve Dili
excell 2003 türkçe
Elimde yapısıyla oynayamayacağım bir tablo var. bu tablonun en alt kısmında belirtilen ürün tiplerini renktopla ya da renksay ile koşullu saydıramadım. bilgisi olan yardımcı olabilirse çok sevinirim.

Dosya biraz yavaş açılır, dosya içerisine de gerekli bilgileri belirttim
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

İstediğiniz bu mu? (Dizi formülüdür)
Kod:
=TOPLA((D49:DA49=T56)*(D8:DA46))-TOPLA((D49:DA49=T56)*(renktopla(D8:DA46;38;0)))
 

muratnahcivani

Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
43
Excel Vers. ve Dili
excell 2003 türkçe
Merhaba,

İstediğiniz bu mu? (Dizi formülüdür)
Kod:
=TOPLA((D49:DA49=T56)*(D8:DA46))-TOPLA((D49:DA49=T56)*(renktopla(D8:DA46;38;0)))
bu formül ne yazık ki çalışmıyor. ilk olarak D8: DA8 ile sadece o satırda bulunan değerleri ölçmek istiyorum. Ama asıl formülün hatası şu oluyor, renktopla formulü baştaki T56 uyumuna bakmadan satırdaki bütün değerleri topluyor. renktopla formulünü bu forumda gördüğüm örneklere bakarak yazdım. acaba sorun oradan mı kaynaklanıyor?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Module ekleyin.
Kod:
Function S_Renktopla(Aralık As Range, Renkİndeksi As Integer, _
    sat As Range, deg As Range, Optional OfText As Boolean = False) As Double

    Dim rng As Range
    Dim OK As Boolean
    
    Application.Volatile True
    For Each rng In Aralık.Cells
        If Cells(sat.Row, rng.Column) = deg Then
            If OfText = True Then
                OK = (rng.Font.ColorIndex = Renkİndeksi)
            Else
                OK = (rng.Interior.ColorIndex = Renkİndeksi)
            End If
            If OK And IsNumeric(rng.Value) Then
                S_Renktopla = S_Renktopla + rng.Value
            End If
        End If
    Next rng
    
End Function
Formül:
Kod:
=TOPLA.ÇARPIM((D49:DA49=T56)*(D8:DA46))-S_Renktopla(D8:DA46;38;D49:DA49;T56;0)
İstediğiniz bu mu?

.
 

muratnahcivani

Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
43
Excel Vers. ve Dili
excell 2003 türkçe
gerçekten de bu! ellerinize sağlık, çok teşekkür ederim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,332
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Ömer beyin verdiği çözümde tüm alan seçildiği için aradaki tarih içeren ve toplam olan hücrelerdeki değerlerde toplanıyor. Aralıkları dikkatli seçmek gerekiyor.

Ben de bir alternatif hazırladım.

Fonksiyonda belitilen aralıktaki renksiz hücrelerdeki değerleri topluyor. Sanırım bu toplam sizin istediğiniz satılmamış ürünlerin toplamıdır.

T57 hücresi için örnek kullanım;

Kod:
=K_RENK_TOPLA($D$8:$DA$31;-4142;$D$49:$DA$49;T$56)
Kod:
Option Explicit

Function K_RENK_TOPLA(Alan As Range, Renk As Integer, Kosul_Alani As Range, Kosul As Range)
    Dim Veri As Range, Kriter As Range
   
    Application.Volatile True
   
    For Each Veri In Alan
        If Veri.Interior.ColorIndex = Renk Then
            For Each Kriter In Kosul_Alani
                If Kriter.Column = Veri.Column Then
                    If Kriter.Value = Kosul.Value Then
                        K_RENK_TOPLA = K_RENK_TOPLA + Veri.Value
                    End If
                    Exit For
                End If
            Next
        End If
    Next
End Function
 
Üst