Farklı Sayfalarda Birbirinden Farklı Sayı Adedini Bulmak

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba Arkadaşlar,

Farklı sayfalarda A sütununda sayılar ve metinsel ifadeler bulunmaktadır. Örnek dosyayı ekledim. Toplam sayı adedini bulabiliyorum.
Kaç adet birbirinden farklı sayı adedini bulmak mümkün mü ?
 

Ekli dosyalar

Katılım
25 Mayıs 2010
Mesajlar
218
Excel Vers. ve Dili
2016 Pro Plus TR
Yardımcı bir sütun kullanın;
A1 boş ve verilerinizin A2 den başladığını varsayıyorum.
Boş bir sütunun 2 satırına (örneğin C sütunu) yani C2 ye aşağıdaki kodu yapıştırıp, A sütunundaki son dolu satıra kadar aşağı doğru çoğaltın.

=EĞERSAY(A$1:A1;A2)

Sonrasında C1 hücresine aşağıdaki kodu yapıştırın;

=EĞERSAY(C2:C1000;0)

Sütun adını kendi kullandığınız sütun adıyla değiştirin. 1000 rakamını da A sütunundaki son dolu satır sayısı yapın.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Yardımcı bir sütun kullanın;
A1 boş ve verilerinizin A2 den başladığını varsayıyorum.
Boş bir sütunun 2 satırına (örneğin C sütunu) yani C2 ye aşağıdaki kodu yapıştırıp, A sütunundaki son dolu satıra kadar aşağı doğru çoğaltın.

=EĞERSAY(A$1:A1;A2)

Sonrasında C1 hücresine aşağıdaki kodu yapıştırın;

=EĞERSAY(C2:C1000;0)

Sütun adını kendi kullandığınız sütun adıyla değiştirin. 1000 rakamını da A sütunundaki son dolu satır sayısı yapın.
leguminosea ilgine çok teşekkür ederim. Bu formül ile tüm sayfalarda kaç adet benzersiz sayı olduğunu bulabilecek miyiz ?
 
Katılım
25 Mayıs 2010
Mesajlar
218
Excel Vers. ve Dili
2016 Pro Plus TR
Bu sadece kullanığınız sayfadaki benzersizleri bulacaktır.
Her sayfaya uygulamanız gerekecek.
Ya da en iyisi bunları saydırmak için ayrı bir sayfa açın.
A sütunundan başlamak üzere her sütun ayrı bir sayfanın hesabını yapacak şekilde ayarlayın.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Bu sadece kullanığınız sayfadaki benzersizleri bulacaktır.
Her sayfaya uygulamanız gerekecek.
Ya da en iyisi bunları saydırmak için ayrı bir sayfa açın.
A sütunundan başlamak üzere her sütun ayrı bir sayfanın hesabını yapacak şekilde ayarlayın.
Çok teşekkür ederim. Evet o da ara çözüm olabilir. Ama bir handikabı var : aynı veri farklı sayfalarda varsa ki bizim örnekte çok sıklıkla var, o zaman aynı veriyi bulunduğu her sayfada sayacağı için çok pratik olmayacak gibi.
 
Katılım
25 Mayıs 2010
Mesajlar
218
Excel Vers. ve Dili
2016 Pro Plus TR
Altın üye olmadığım için dosyanızı göremiyorum.
Harici bir siteye yüklermisiniz.
(dosyaupload.com , dosya.tc gibi)
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Selamlar, linkteki çözümü kullanabilirsiniz.
Üstad çok teşekkürler. Bu link faydalı oldu ve aşağıdaki formül ile istediğimi elde ettim.
=TOPLA(EĞER(SIKLIK(ANKARA:MUĞLA!A1:A10;ANKARA:MUĞLA!A1:A10)>0;1))

Amaaa :) ANKARA ve MUĞLA tanımlarını hücreden belirlemek istediğimizde DOLAYLI formülü ve DİZİ formatı ve düz format ile olmuyor. Sadece formülün içine yazarak yapabildim. Ancak sayfa isimleri değişken.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025

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
Ekteki dosyayı inceleyiniz.

Kullanıcı Tanımlı Fonksiyon (KTF) kullanılmıştır.

Fonksiyonda 3 parametre vardır.

Sayfalar (Sayfa isimlerinin bulunduğu hücreler)
Alan (Saydırılmak istenen hücre aralığı)
Kriter (0-1-2 değerleri kullanılabilir.)
"0" veri ayrımı (sayı-metin) yapmadan benzersiz sayımı yapar.
"1" sayısal verileri benzersiz sayar.
"2" metinsel verileri benzersiz sayar.
Kriter opsiyoneldir. Varsayılan olarak tüm verileri sayacak şekilde ayarlıdır.

Boş hücreler sayıma dahil edilmez.

=SAYFALARDA_BENZERSİZ_SAY(Sayfalar;Alan;Kriter)

C++:
Option Explicit

Function SAYFALARDA_BENZERSİZ_SAY(Sayfalar As Variant, Alan As Variant, Optional Kriter As Byte = 0)
    Dim Sayfa As Variant, Dizi As Object, Sh As Worksheet, X As Long, Veri As Variant
   
    Application.Volatile True
   
    Set Dizi = CreateObject("Scripting.Dictionary")
   
    For Each Sayfa In Sayfalar
        If Sayfa <> Empty Then
            Set Sh = Nothing
            Set Sh = Sheets(CStr(Sayfa))
            If Not Sh Is Nothing Then
                Veri = Sh.Range(Alan.Address).Value
                For X = LBound(Veri) To UBound(Veri)
                    If Veri(X, 1) <> Empty Then
                        Select Case Kriter
                            Case 0
                                If Not Dizi.Exists(Veri(X, 1)) Then
                                    Dizi.Add Veri(X, 1), Nothing
                                End If
                            Case 1
                                If IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                            Case 2
                                If Not IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                        End Select
                    End If
                Next
            End If
        End If
    Next
   
    SAYFALARDA_BENZERSİZ_SAY = Dizi.Count
   
    Set Sh = Nothing
    Set Dizi = Nothing
End Function
 

Ekli dosyalar

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Ekteki dosyayı inceleyiniz.

Kullanıcı Tanımlı Fonksiyon (KTF) kullanılmıştır.

Fonksiyonda 3 parametre vardır.

Sayfalar (Sayfa isimlerinin bulunduğu hücreler)
Alan (Saydırılmak istenen hücre aralığı)
Kriter (0-1-2 değerleri kullanılabilir.)
"0" veri ayrımı (sayı-metin) yapmadan benzersiz sayımı yapar.
"1" sayısal verileri benzersiz sayar.
"2" metinsel verileri benzersiz sayar.
Kriter opsiyoneldir. Varsayılan olarak tüm verileri sayacak şekilde ayarlıdır.

Boş hücreler sayıma dahil edilmez.

=SAYFALARDA_BENZERSİZ_SAY(Sayfalar;Alan;Kriter)

C++:
Option Explicit

Function SAYFALARDA_BENZERSİZ_SAY(Sayfalar As Variant, Alan As Variant, Optional Kriter As Byte = 0)
    Dim Sayfa As Variant, Dizi As Object, Sh As Worksheet, X As Long, Veri As Variant
  
    Application.Volatile True
  
    Set Dizi = CreateObject("Scripting.Dictionary")
  
    For Each Sayfa In Sayfalar
        If Sayfa <> Empty Then
            Set Sh = Nothing
            Set Sh = Sheets(CStr(Sayfa))
            If Not Sh Is Nothing Then
                Veri = Sh.Range(Alan.Address).Value
                For X = LBound(Veri) To UBound(Veri)
                    If Veri(X, 1) <> Empty Then
                        Select Case Kriter
                            Case 0
                                If Not Dizi.Exists(Veri(X, 1)) Then
                                    Dizi.Add Veri(X, 1), Nothing
                                End If
                            Case 1
                                If IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                            Case 2
                                If Not IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                        End Select
                    End If
                Next
            End If
        End If
    Next
  
    SAYFALARDA_BENZERSİZ_SAY = Dizi.Count
  
    Set Sh = Nothing
    Set Dizi = Nothing
End Function
Korhan Ayhan üstadım çok teşekkür ederim. Hem formül hem de KTF olarak harika 2 alternatif oldu. Sağlıcakla kalın.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Ekteki dosyayı inceleyiniz.

Kullanıcı Tanımlı Fonksiyon (KTF) kullanılmıştır.

Fonksiyonda 3 parametre vardır.

Sayfalar (Sayfa isimlerinin bulunduğu hücreler)
Alan (Saydırılmak istenen hücre aralığı)
Kriter (0-1-2 değerleri kullanılabilir.)
"0" veri ayrımı (sayı-metin) yapmadan benzersiz sayımı yapar.
"1" sayısal verileri benzersiz sayar.
"2" metinsel verileri benzersiz sayar.
Kriter opsiyoneldir. Varsayılan olarak tüm verileri sayacak şekilde ayarlıdır.

Boş hücreler sayıma dahil edilmez.

=SAYFALARDA_BENZERSİZ_SAY(Sayfalar;Alan;Kriter)

C++:
Option Explicit

Function SAYFALARDA_BENZERSİZ_SAY(Sayfalar As Variant, Alan As Variant, Optional Kriter As Byte = 0)
    Dim Sayfa As Variant, Dizi As Object, Sh As Worksheet, X As Long, Veri As Variant
  
    Application.Volatile True
  
    Set Dizi = CreateObject("Scripting.Dictionary")
  
    For Each Sayfa In Sayfalar
        If Sayfa <> Empty Then
            Set Sh = Nothing
            Set Sh = Sheets(CStr(Sayfa))
            If Not Sh Is Nothing Then
                Veri = Sh.Range(Alan.Address).Value
                For X = LBound(Veri) To UBound(Veri)
                    If Veri(X, 1) <> Empty Then
                        Select Case Kriter
                            Case 0
                                If Not Dizi.Exists(Veri(X, 1)) Then
                                    Dizi.Add Veri(X, 1), Nothing
                                End If
                            Case 1
                                If IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                            Case 2
                                If Not IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                        End Select
                    End If
                Next
            End If
        End If
    Next
  
    SAYFALARDA_BENZERSİZ_SAY = Dizi.Count
  
    Set Sh = Nothing
    Set Dizi = Nothing
End Function
Üstadım, aşağıdaki formülde sayfa isimlerini hücreden referansklı yapmak mümkün müdür ?
=TOPLA.ÇARPIM(--(SIKLIK(ANKARA:MUĞLA!A1:A20;ANKARA:MUĞLA!A1:A20)<>0))
 

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
Ben o kısmı için bir çözüm bulamadım. Bulursam paylaşırım.
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
437
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Ekteki dosyayı inceleyiniz.

Kullanıcı Tanımlı Fonksiyon (KTF) kullanılmıştır.

Fonksiyonda 3 parametre vardır.

Sayfalar (Sayfa isimlerinin bulunduğu hücreler)
Alan (Saydırılmak istenen hücre aralığı)
Kriter (0-1-2 değerleri kullanılabilir.)
"0" veri ayrımı (sayı-metin) yapmadan benzersiz sayımı yapar.
"1" sayısal verileri benzersiz sayar.
"2" metinsel verileri benzersiz sayar.
Kriter opsiyoneldir. Varsayılan olarak tüm verileri sayacak şekilde ayarlıdır.

Boş hücreler sayıma dahil edilmez.

=SAYFALARDA_BENZERSİZ_SAY(Sayfalar;Alan;Kriter)

C++:
Option Explicit

Function SAYFALARDA_BENZERSİZ_SAY(Sayfalar As Variant, Alan As Variant, Optional Kriter As Byte = 0)
    Dim Sayfa As Variant, Dizi As Object, Sh As Worksheet, X As Long, Veri As Variant
  
    Application.Volatile True
  
    Set Dizi = CreateObject("Scripting.Dictionary")
  
    For Each Sayfa In Sayfalar
        If Sayfa <> Empty Then
            Set Sh = Nothing
            Set Sh = Sheets(CStr(Sayfa))
            If Not Sh Is Nothing Then
                Veri = Sh.Range(Alan.Address).Value
                For X = LBound(Veri) To UBound(Veri)
                    If Veri(X, 1) <> Empty Then
                        Select Case Kriter
                            Case 0
                                If Not Dizi.Exists(Veri(X, 1)) Then
                                    Dizi.Add Veri(X, 1), Nothing
                                End If
                            Case 1
                                If IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                            Case 2
                                If Not IsNumeric(Veri(X, 1)) Then
                                    If Not Dizi.Exists(Veri(X, 1)) Then
                                        Dizi.Add Veri(X, 1), Nothing
                                    End If
                                End If
                        End Select
                    End If
                Next
            End If
        End If
    Next
  
    SAYFALARDA_BENZERSİZ_SAY = Dizi.Count
  
    Set Sh = Nothing
    Set Dizi = Nothing
End Function
Korhan Bey, emeğinize sağlık. İnanılmaz faydalı oldu.
 
Üst