• DİKKAT

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

Yinelenen değeri 1 kere saydırma

Katılım
27 Aralık 2023
Mesajlar
12
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.
 
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")))
 
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
 
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ı
 
Verdiğimiz formülleri denediniz mi?
 
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
 
Bu durumda küçük bir örnek dosya paylaşmanız çözüm için kolaylık sağlayacaktır.
 
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
 
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


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.






 
İnceleyiniz.

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

Untitled.png


248792
 
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.
 
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 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)))
 
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
 
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&""))
 
Geri
Üst