• DİKKAT

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

En çok tekrar eden değeri bul

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. DİZİN de en çok tekrar eden metinsel değeri bulmak nasıl mümkün olabilir. Aşağıdaki dizinde en çok tekrar eden veri ADANA. Nasıl bir formül ile ADANA yı bulmak mümkün olur ?

A1 ADANA
A2 ADANA
A3 SAMSUN
A4 ADANA
A5 ADANA
 
Merhaba,

Yanlış anlamadıysam,

Örnek 50 satır içindir, ADANA ve diğer isimler B1'de varsayılmıştır, A sütununda iseler formüldeki B yi A, C yi B yapın...

C1'e ; =EĞERSAY($B$1:$B$50;B1) aşağıya doğru kopyalayın

Her hangi bir hücreye ; =İNDİS(B1:B50;KAÇINCI(BÜYÜK($C$1:$C$50;1);$C$1:$C$50;0);0)
 
Sayın 1Al2Ver ilginize çok teşekkür ederim. Bu çözüm ile ilk B1 deki veri tekrar bulunuyor. ihtiyacım olan özellik : DİZİN deki veriler içinde en çok olanı bulması !!
 
Sayın 1Al2Ver ilginize çok teşekkür ederim. Bu çözüm ile ilk B1 deki veri tekrar bulunuyor. ihtiyacım olan özellik : DİZİN deki veriler içinde en çok olanı bulması !!

Sayın serdarokan merhaba,

DİZİN'den kastınızı anlamadım, önerdiğim formül B1:B50 aralığında olan veriler arasında en çok tekrar edileni, yardımcı sütun (C1:C50) kullanarak bulup, seçilen hücrede ( örn; D1 ) göstermek idi.

Burada yanlış olan nedir ? Daha açık anlatabilir misiniz ?

Teşekkür ederim.
 
Yardımınız için teşekkür ediyorum sayın 1Al2Ver. Sadece durum şu ki; Tek 1 hücre kullanarak EN ÇOL TEKRAR edeni bulmam gerekiyor.
 
Merhaba,

KTF, Modüle ,

Kod:
Function ENÇOKOLAN(Alan As Range, Çokluk_Sırası As Long)
    Dim Hücre As Range
    Dim Dizi As Object
    Dim WF As WorksheetFunction
    Dim Say As Long
    Dim X As Long
    Dim Y As Long
    Dim VeriA As Variant
    Dim VeriB As Variant
    
    Application.Volatile True
    
    Set Dizi = CreateObject("Scripting.Dictionary")
    Set WF = WorksheetFunction
    
    ReDim Liste(1 To 2, 1 To 1)
    
    For Each Hücre In Alan
        If Hücre.Value <> "" Then
            If Hücre.Height <> 0 Then
                If Not Dizi.Exists(Hücre.Value) Then
                    Say = Say + 1
                    Dizi.Add Hücre.Value, 1
                    ReDim Preserve Liste(1 To 2, 1 To Say)
                    Liste(1, Say) = Hücre.Value
                    Liste(2, Say) = WF.CountIf(Alan, Hücre.Value)
                End If
            End If
        End If
    Next
    
    For X = LBound(Liste, 2) To UBound(Liste, 2)
        For Y = X + 1 To UBound(Liste, 2)
            If Liste(2, X) < Liste(2, Y) Then
                VeriA = Liste(1, Y)
                VeriB = Liste(2, Y)
                Liste(1, Y) = Liste(1, X)
                Liste(2, Y) = Liste(2, X)
                Liste(1, X) = VeriA
                Liste(2, X) = VeriB
            End If
        Next
    Next
    
    ENÇOKOLAN = Liste(1, Çokluk_Sırası)
End Function


B1'e =ENÇOKOLAN($A$1:$A$1000;SATIR()-1) şeklinde dener misiniz ?
 
Çok teşekkür ediyorum sayın 1Al2Ver. Size zahmt verdim. KTF normal modül gibi mi kaydedilmelidir ?
 
Evet modüle kayıt edip kullanabilirsiniz.
 
Sayın 1Al2Ver, Sayın Korhan Ayhan ilginize çok teşekkür ederim. Kodu modüle yapıştırdım. B1 e =ENÇOKOLAN($A$1:$A$1000;SATIR()-1) formülünü yazdım. Sonuç #DEĞER! olarak çıkıyor. Acaba Referans tanımlaması mı gerekiyor ?
 
Sayın 1Al2Ver, Sayın Korhan Ayhan ilginize çok teşekkür ederim. Kodu modüle yapıştırdım. B1 e =ENÇOKOLAN($A$1:$A$1000;SATIR()-1) formülünü yazdım. Sonuç #DEĞER! olarak çıkıyor. Acaba Referans tanımlaması mı gerekiyor ?

Sayın serdarokan merhaba,

Excel 2010 kullanıyorum ve sorun almıyorum, ancak şöyle bir durum var, en çok olanları alt alta sıralamaya kalktığınızda,( örn; B sütununda ) A sütununda olmayan bir veri varsa #DEĞER! hatası alısınız. Örneklemek gerekirse ; B5'e KTF uyguladığınızda, A1:A50 arasındaki olmayan isim için hatayı alıyorsunuz,

Daha iyi gözlemlemek için C1' e ; =EĞERSAY(A:A;B1) yazın ve aşağıya doğru kopyalayın, B sütununda bir yerde #DEĞER! hatası alacaksınız.



Kolay gelsin...
 
Son düzenleme:
Çok özür diliyorum, benim acemiliğimden. Sayın 1 Al2Ver, konu tamamdır. Şimdi kullanabiliyorum. Sabrınız ve iyi niyetiniz için çok teşekkür ediyorum. Allah sizleri başımızdan eksik etmesin. Sağlıcakla kalın.
 
Çok özür diliyorum, benim acemiliğimden. Sayın 1 Al2Ver, konu tamamdır. Şimdi kullanabiliyorum. Sabrınız ve iyi niyetiniz için çok teşekkür ediyorum. Allah sizleri başımızdan eksik etmesin. Sağlıcakla kalın.

Rica ederim Sayın serdarokan,

Sorunun hallolmasına sevindim, güzel düşünceleriniz için ben teşekkür ederim.

Saygılarımla.
 
Verinizin a sütununda olduğunu varsayarsak aşağıdaki formül işinizi görür.

En çok tekrar edenleri alt alta sıralar.

Dizi formülüdür. CTRL+SHIFT+ENTER ile kapatmayı unutmayın.

Kod:
=İNDİS($A$1:$A$100;KAÇINCI(BÜYÜK(EĞER(EĞERSAY(DOLAYLI("A1:A"&SATIR($1:$100));$A$1:$A$100)+SATIR($1:$100)/1000=EĞERSAY($A$1:$A$100;$A$1:$A$100)+SATIR($1:$100)/1000;EĞERSAY($A$1:$A$100;$A$1:$A$100)+SATIR($1:$100)/1000);SATIR(A1));EĞER(EĞERSAY(DOLAYLI("A1:A"&SATIR($1:$100));$A$1:$A$100)+SATIR($1:$100)/1000=EĞERSAY($A$1:$A$100;$A$1:$A$100)+SATIR($1:$100)/1000;EĞERSAY($A$1:$A$100;$A$1:$A$100)+SATIR($1:$100)/1000);0))
 
Teşekkür ederim sayın kuvari. Sağlıcakla kalın.
 
Geri
Üst