Renklere ve Değere Göre Sayma

Katılım
21 Eylül 2011
Mesajlar
115
Excel Vers. ve Dili
Office 365 - İngilizce
Altın Üyelik Bitiş Tarihi
6.6.2022
Merhaba,

Ekte basit bir vardiya çizelgesi yaptım.
Bu çizelgede "H.T" yazan yerler çalışanın hafta tatili yapacağını gösteriyor.
Ama bazı durumlarda çalışanı hafta tatilinde mesaiye çağırıyorum. Bu durumlarda hangi vardiyada mesai yapacaksa "H.T" yerine çalışacağı vardiyayı yazıyorum.

Yaptığım bu mesaileri vardiyalara göre saymak istiyorum.
Aslında bir nevi eğersay işlemi yapmak istiyorum ama eğersay işlemindeki gibi ölçüt değerini seçtiğimde, hücre renginin de seçtiğim ölçüte uyanlarını saydırmak istiyorum.
Umarım anlatabilmişimdir.
 

Ekli dosyalar

Katılım
21 Eylül 2011
Mesajlar
115
Excel Vers. ve Dili
Office 365 - İngilizce
Altın Üyelik Bitiş Tarihi
6.6.2022
Merhaba;
Hücre rengini işlevlerle sayamazsınız.
ekteki makro çözümü deneyin.
İyi çalışmalar.
Çok teşekkürler, ellerinize sağlık.
Aslında istediğim sonucu veriyor ama bunu butona atamadan ben hücrede değişiklik yaptığımda sonuçlar direk değişecek şekilde yapabilir miyiz?
Makro olduğu için tetiklenmesi şart mı?
 
Katılım
21 Eylül 2011
Mesajlar
115
Excel Vers. ve Dili
Office 365 - İngilizce
Altın Üyelik Bitiş Tarihi
6.6.2022
Korhan Bey,

Konuyu açmadan önce Necdet Bey'in örneğini görüp inceledim.
Hatta tam aradığımı buldum sandım ama içinde numerik değerler olan tüm hücreleri sayıyor.
Ben hücrenin içindeki değerin de aynı olduğu hücreleri saydırmak istiyorum.
Yani hücre rengi sarı olan ve içinde 2 yazan kaç tane hücre var onu saymak istiyorum.
muygun'un hazırladığı örnek ile bunu kısmen yapıyor.
Sadece Necdet Bey'in örneğindeki gibi hücre rengi veya içeriği değiştiğinde sonucun direkt değişmesini sağlayabilirsem tam olacak...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki KTF'yi deneyebilirsiniz.

Kullanım örnekleri;

=R_TOPLA_SAY(B$6:B$14;$A16;YANLIŞ) 'Alandaki rengi ve değeri uyan hücrelerdeki verileri sayar.
=R_TOPLA_SAY(B$6:B$14;$A16;0) 'Alandaki rengi ve değeri uyan hücrelerdeki verileri sayar.
=R_TOPLA_SAY(B$6:B$14;$A16) 'Alandaki rengi ve değeri uyan hücrelerdeki verileri toplar.
=R_TOPLA_SAY(B$6:B$14;$A16;1) 'Alandaki rengi ve değeri uyan hücrelerdeki verileri toplar.
=R_TOPLA_SAY(B$6:B$14;$A16;DOĞRU) 'Alandaki rengi ve değeri uyan hücrelerdeki verileri toplar.



C++:
Option Explicit

Function R_TOPLA_SAY(Alan As Range, Kriter As Variant, Optional İşlem As Boolean = True)
    Dim Veri As Range
    
    Application.Volatile True
    
    For Each Veri In Alan
        If Veri.Interior.ColorIndex = Kriter.Interior.ColorIndex Then
            If Veri.Value = Kriter.Value Then
                If İşlem = True Then
                    If IsNumeric(Veri.Value) Then
                        R_TOPLA_SAY = R_TOPLA_SAY + Veri.Value
                    End If
                Else
                    R_TOPLA_SAY = R_TOPLA_SAY + 1
                End If
            End If
        End If
    Next
End Function
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
hücre rengi veya içeriği değiştiğinde sonucun direkt değişmesini sağlayabilirsem tam olacak...
Sayfadaki renk değişimi makrodaki change olayını tetiklemez , sizin tekrar ilgili kullanıcı tanımlı fonksiyonu çalıştırmanız gerekir.
 

msofuoglu

Altın Üye
Katılım
4 Eylül 2017
Mesajlar
61
Excel Vers. ve Dili
2013 Pro. 64 bit Türkçe ve Office 365
Altın Üyelik Bitiş Tarihi
27-01-2027
Herkese merhaba,
Taslak organizasyon şemasında; bir - 3 ve altı ay sonra işe kaç kişi başlatılacağını belirleyen organizasyon şemasında kutuları saymak yerine bir numaralı mesaj benzeri gibi ekte örneği yer alan dosyada ilgili renklerin nasıl sayılacağını beceremedim. Buradaki makro ya da diğer çalışmalardan faydalanarak yapmayı başaramadım. Şimdiden teşekkür ediyor herkese sağlıklı, huzurlu günler diliyorum.
 

Ekli dosyalar

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Birleştirilmiş hücre kullanmışsınız. Kullanıcı tanımlı fonksiyon kullanırsak, bunların herbirini bir hücre sayacak. Eğer hücre birleştirmeden , ilgili hücreyi genişleterek kullanırsanız zemin rengi sayılabilir.
 

msofuoglu

Altın Üye
Katılım
4 Eylül 2017
Mesajlar
61
Excel Vers. ve Dili
2013 Pro. 64 bit Türkçe ve Office 365
Altın Üyelik Bitiş Tarihi
27-01-2027
Birleştirilmiş hücre kullanmışsınız. Kullanıcı tanımlı fonksiyon kullanırsak, bunların herbirini bir hücre sayacak. Eğer hücre birleştirmeden , ilgili hücreyi genişleterek kullanırsanız zemin rengi sayılabilir.
İlginiz için teşekkür ederim Ali bey, ünvana göre hücrelerde değişiklik olması gerekiyor fakat önerinize göre revize etmeye çalışacağım. Sağlıklı ve huzurlu günler dilerim.
 

Korhan Ayhan

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

Dosyanıza boş bir modüle ekleyin ve aşağıdaki kodu uygulayın.

C++:
Option Explicit

Function R_TOPLA_SAY(Alan As Range, Kriter As Variant, Optional İşlem As Boolean = True)
    Dim Veri As Range, Adres As Object, Merge_Cells As Range
   
    Application.Volatile True
   
    Set Adres = VBA.CreateObject("Scripting.Dictionary")
   
    For Each Veri In Alan
        If Veri.Interior.ColorIndex = Kriter.Interior.ColorIndex Then
            If Not Adres.Exists(Veri.Address) Then
                For Each Merge_Cells In Veri.MergeArea
                    Adres.Add Merge_Cells.Address, Nothing
                Next
                If İşlem = True Then
                    If IsNumeric(Veri.Value) Then
                        R_TOPLA_SAY = R_TOPLA_SAY + Veri.Value
                    End If
                Else
                    R_TOPLA_SAY = R_TOPLA_SAY + 1
                End If
            End If
        End If
    Next
   
    Set Adres = Nothing
End Function
Sonra dosyanızı "Makro İçerebilen Excel Çalışma Kitabı" formatıyla kayıt edin.

Excel sayfasında L19 hücresine aşağıdaki formülü uygulayın.

C++:
=R_TOPLA_SAY($D$28:$CM$80;B19;0)
Diğer hücreleri siz halledersiniz...
 
  • Beğen
Reactions: Ali

msofuoglu

Altın Üye
Katılım
4 Eylül 2017
Mesajlar
61
Excel Vers. ve Dili
2013 Pro. 64 bit Türkçe ve Office 365
Altın Üyelik Bitiş Tarihi
27-01-2027
Merhaba,

Dosyanıza boş bir modüle ekleyin ve aşağıdaki kodu uygulayın.

C++:
Option Explicit

Function R_TOPLA_SAY(Alan As Range, Kriter As Variant, Optional İşlem As Boolean = True)
    Dim Veri As Range, Adres As Object, Merge_Cells As Range
  
    Application.Volatile True
  
    Set Adres = VBA.CreateObject("Scripting.Dictionary")
  
    For Each Veri In Alan
        If Veri.Interior.ColorIndex = Kriter.Interior.ColorIndex Then
            If Not Adres.Exists(Veri.Address) Then
                For Each Merge_Cells In Veri.MergeArea
                    Adres.Add Merge_Cells.Address, Nothing
                Next
                If İşlem = True Then
                    If IsNumeric(Veri.Value) Then
                        R_TOPLA_SAY = R_TOPLA_SAY + Veri.Value
                    End If
                Else
                    R_TOPLA_SAY = R_TOPLA_SAY + 1
                End If
            End If
        End If
    Next
  
    Set Adres = Nothing
End Function
Sonra dosyanızı "Makro İçerebilen Excel Çalışma Kitabı" formatıyla kayıt edin.

Excel sayfasında L19 hücresine aşağıdaki formülü uygulayın.

C++:
=R_TOPLA_SAY($D$28:$CM$80;B19;0)
Diğer hücreleri siz halledersiniz...
Değerli Korhan Ayhan üstad,
Söylediğiniz şekilde uyguladım ve mükemmel şekilde çalıştı. Hatta üç ayrı sayfada farklı organizasyon şemalarına uyguladım, her birinde mükemmel şekilde çalıştı, elinize sağlık çok teşekkür ederim.
Renk değişikliği denemeleri yaptığımda işlemin gerçekleşmesi için formül olan hücrelerden herhangi birine gidip enter yapılması durumunda renk sayma işlemi yapıyor, yani renk değişikliği yapıldığında otomatik olarak formüller çalışmıyor.
Her şey için tekrar teşekkür ediyor sağlıklı, huzurlu günler diliyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Renk değişimlerinde F9 tuşuna basarsanız hesaplama otomatik yapılacaktır.
 

msofuoglu

Altın Üye
Katılım
4 Eylül 2017
Mesajlar
61
Excel Vers. ve Dili
2013 Pro. 64 bit Türkçe ve Office 365
Altın Üyelik Bitiş Tarihi
27-01-2027
Renk değişimlerinde F9 tuşuna basarsanız hesaplama otomatik yapılacaktır.
Teşekkür ederim Korhan Ayhan üstadım, sağlıklı huzurlu günler dilerim.
 
Üst