Yinelenen değeri 1 kere saydırma

Katılım
27 Aralık 2023
Mesajlar
7
Excel Vers. ve Dili
Excel365 türkçe
Merhaba ben bir konuda tıkandım yardımcı olursanız sevinirim. Bir sütunda eğersay fonksiyonu ile aynı değerleri saydırdım. Ancak bir de aynı tarihte olanları 1 sefer saydırmak istiyorum onu nasıl formülize edebilirim. Örneğin sütunda isimler var ben eğersay ile aynı isim kaç kere yazıyor buldum. Ancak bir de başka bir sütunda herhangi bir ismin farklı günlerde işe gelişleri yazıyor burda ise aynı gün içinde birkaç defa gelmiş ise onların hepsini 1 kez saymasını istiyorum. Çokeğersay ile denedim yapamadım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Verilerinizin paylaşılan örnek dosyadaki gibi olduğunu varsayarsak kullandığınız sürüme göre aşağıdaki formülü deneyebilirsiniz.

C++:
=BAĞ_DEĞ_SAY(BENZERSİZ(FİLTRE(A:B;A:A="Ahmet")))
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Düşük versiyonlar için alternatif.
=TOPLA(EĞER(D2=A:A;1/(ÇOKEĞERSAY(A:A;$D2; B:B; E$1)); 0))
1703712248866.png
 
Katılım
27 Aralık 2023
Mesajlar
7
Excel Vers. ve Dili
Excel365 türkçe
Merhaba ben bir konuda tıkandım yardımcı olursanız sevinirim. Bir sütunda eğersay fonksiyonu ile aynı değerleri saydırdım. Ancak bir de aynı tarihte olanları 1 sefer saydırmak istiyorum onu nasıl formülize edebilirim. Örneğin sütunda isimler var ben eğersay ile aynı isim kaç kere yazıyor buldum. Ancak bir de başka bir sütunda herhangi bir ismin farklı günlerde işe gelişleri yazıyor burda ise aynı gün içinde birkaç defa gelmiş ise onların hepsini 1 kez saymasını istiyorum. Çokeğersay ile denedim yapamadım.
Ben sorunu şöyle özetliyim;

Ahmet 01/01/2023
Ahmet 01/01/2023
Ahmet 02/01/2023
Ahmet 01/01/2023

bu şekilde iki sütunda normalde EĞERSAY fonksiyonu ile ahmetleri saydırsam "4" çıkacak ÇOKEĞERSAY ile tarih filtresi koysam 01/01/2023 için "3" çıkacak ama benim istediğim aynı tarihli olanları "1" sayması yani formülü yazdığımda farklı tarihleri normal olarak sayarken aynı tarihleri "1" olarak sayması yani bu örnek için formülü yazdığımda saydırmanın sonucu "2" çıkmalı
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Verdiğimiz formülleri denediniz mi?
 
Katılım
27 Aralık 2023
Mesajlar
7
Excel Vers. ve Dili
Excel365 türkçe
BAĞ_DEĞ formülü çalışmadı TOPLA ile başlayan formül de tarih olduğu için mi bilmiyorum virgüllü değer verdi alakasız yerelere evrildi
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu durumda küçük bir örnek dosya paylaşmanız çözüm için kolaylık sağlayacaktır.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Makro ile denemek isterseniz kodu.
Kod:
Sub ABTekrarları()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim dict As Object
    Dim key As Variant
    Dim value1 As Variant
    Dim value2 As Variant
    Dim combinedValue As String
    
    Set ws = ThisWorkbook.Sheets("Sayfa1")
    
    lastRow = ws.Cells(ws.Rows.count, "A").End(xlUp).Row

    Set dict = CreateObject("Scripting.Dictionary")
    
    For i = 1 To lastRow

        value1 = ws.Cells(i, 1).Value

      
        value2 = ws.Cells(i, 2).Value
        
      
        combinedValue = value1 & "|" & value2

        If dict.Exists(combinedValue) Then
            dict(combinedValue) = dict(combinedValue) + 1
        Else

            dict.Add combinedValue, 1
        End If
    Next i

    k = 1
    For Each key In dict.Keys

        Range("C" & k) = key & ": " & IIf(dict(key) > 1, "1 adet", dict(key) & " adet")
        k = k + 1
    Next key

End Sub
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
BAĞ_DEĞ formülü çalışmadı TOPLA ile başlayan formül de tarih olduğu için mi bilmiyorum virgüllü değer verdi alakasız yerelere evrildi
Test etmediğimiz formülü göndermeyizki. Dosyayı deneyin. Örneğe göre formül yazıyoruz. Asıl formatınızda değişiklikler varsa formülü ona göre güncellemeniz gerekiyor.
 

Ekli dosyalar

Katılım
27 Aralık 2023
Mesajlar
7
Excel Vers. ve Dili
Excel365 türkçe

Ahmet

01/01/2023

  

Ahmet

01/01/2023

  

Ahmet

01/01/2023

  

Ahmet

02/01/2023

  
    

Örnekte ki gibi bir tabloda sadece "Ahmet" olarak EĞERSAY yaptığımda sonuç 4 çıkıyor. Ancak ben tarih filtresini de ekleyip aynı tarihleri 1 sayarak sonucun 2 çıkmasını istiyorum.

   
 

Korhan Ayhan

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

Ben İngilizce sürüm kullanıyorum. Size önerdiğim formülün uygulanmış halidir.



248792
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Korhan Bey'in örneğe bakınca soruyu yanlış anladığımı farkettim. Siz tarih kriteri vermiyorsunuz. O zaman formülüm hatalı. Haklısınız.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu da alternatif olsun..

Hücre aralığını kendi dosyanıza göre revize edersiniz.

C++:
=TOPLA.ÇARPIM((A1:A1000=D1)/ÇOKEĞERSAY(A1:A1000;A1:A1000&"";B1:B1000;B1:B1000&""))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu da başka bir alternatif..

Dizi formüldür.

C++:
=BAĞ_DEĞ_SAY(1/SIKLIK(EĞER(A1:A1000=D1;KAÇINCI(B1:B1000;B1:B1000;0));SATIR(B1:B1000)))
 
Katılım
27 Aralık 2023
Mesajlar
7
Excel Vers. ve Dili
Excel365 türkçe
Bu da alternatif olsun..

Hücre aralığını kendi dosyanıza göre revize edersiniz.

C++:
=TOPLA.ÇARPIM((A1:A1000=D1)/ÇOKEĞERSAY(A1:A1000;A1:A1000&"";B1:B1000;B1:B1000&""))
Bu sorunumu çözdü çok teşekkür ederim tek bir sorum var D1 değişkenini D2 D3 olarak böyle seri halinde değiştirebileceğim kısa bir yol varmı yoksa elle mi güncelleme yapmak zorundayım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki formülü aşağıya kopyalarsanız kendi seri olarak adresleri güncelleyecektir.

C++:
=TOPLA.ÇARPIM((A$1:A$1000=D1)/ÇOKEĞERSAY(A$1:A$1000;A$1:A$1000&"";B$1:B$1000;B$1:B$1000&""))
 
Üst