• DİKKAT

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

Benzersiz Liste Almak, Birden Çok Sütun İçin

Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

"C3:J370" arası veriler için (Sütunlarda boş olan hücreler var),

Veri Doğrulama ile "N1" den yapılan seçime göre;

"N1" BÖLGEA ise, "C3:C370" ve G3:G370" arası,

"N1" BÖLGEB ise, "D3:D370" ve "H3:H370" arası,

"N1" BÖLGEC ise, "E3:E370" ve "I3:I370" arası,

"N1" BÖLGED ise, "F3:F370" ve "J3:J370" arası,

"N4:N100" aralığına;

KTF veya makro ile benzersiz olarak sıralasın istiyorum.

Teşekkür ederim.
 

Ekli dosyalar

Merhaba,

Kullandığınız sürüme göre talebiniz formülle çözülebilir.

C++:
=BENZERSİZ(FİLTRE(DÜŞEYYIĞ(KAYDIR($A$3;;KAÇINCI($N$1;$A$2:$J$2;0)-1;370-3);KAYDIR($A$3;;KAÇINCI("2."&$N$1;$A$2:$J$2;0)-1;370-3));DÜŞEYYIĞ(KAYDIR($A$3;;KAÇINCI($N$1;$A$2:$J$2;0)-1;370-3);KAYDIR($A$3;;KAÇINCI("2."&$N$1;$A$2:$J$2;0)-1;370-3))<>""))
 
Merhaba, sayfanın kod kısmına ekleyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$N$1" Then Exit Sub
    Range("M4:N" & Rows.Count).ClearContents
    Dim sut, cell
    With CreateObject("Scripting.Dictionary")
        Select Case Target.Value
            Case "BÖLGEA": sut = 3
            Case "BÖLGEB": sut = 4
            Case "BÖLGEC": sut = 5
            Case "BÖLGED": sut = 6
        End Select
        For Each cell In Range(Cells(3, sut), Cells(Rows.Count, sut).End(3)).Value
            If cell <> "" Then .Item(cell) = Null
        Next
        For Each cell In Range(Cells(3, sut + 4), Cells(Rows.Count, sut + 4).End(3)).Value
            If cell <> "" Then .Item(cell) = Null
        Next
        If .Count > 0 Then
            Range("M4").Value = 1
            Range("M4").Resize(.Count).DataSeries
            Range("N4").Resize(.Count).Value = WorksheetFunction.Transpose(.keys)
            Range("N4").Resize(.Count).Sort Range("N4")
        End If
    End With
End Sub
 
Merhaba,

Kullandığınız sürüme göre talebiniz formülle çözülebilir.

C++:
=BENZERSİZ(FİLTRE(YATAYYIĞ(KAYDIR($A$3;;KAÇINCI($N$1;$A$2:$J$2;0)-1;370-3);KAYDIR($A$3;;KAÇINCI("2."&$N$1;$A$2:$J$2;0)-1;370-3));YATAYYIĞ(KAYDIR($A$3;;KAÇINCI($N$1;$A$2:$J$2;0)-1;370-3);KAYDIR($A$3;;KAÇINCI("2."&$N$1;$A$2:$J$2;0)-1;370-3))<>""))

Sayın Korhan Ayhan merhaba,

İlginiz için teşekkür ederim, önerilen formülü uyguladığımda #DEĞER! hatası almaktayım, sanırım ben bir hata yapıyorum,

Bunu aşabilmek adına beni yönlendirirseniz memnun olurum,

Teşekkür ederim.
 
Sayın veyselemre merhaba,

Duyarlığınız ve çözüm için teşekkür ederim.

Kod sorunsuz çalışmaktadır.

Saygılarımla.
 
Sayın Mdemir63 merhaba,

Alternatif çözüm ve ilginiz için teşekkür ederim.

Saygılarımla.
 
Rica ederim.
İyi çalışmalar
 
Sayın Korhan Ayhan merhaba,

İlginiz için teşekkür ederim, önerilen formülü uyguladığımda #DEĞER! hatası almaktayım, sanırım ben bir hata yapıyorum,

Bunu aşabilmek adına beni yönlendirirseniz memnun olurum,

Teşekkür ederim.

Bir fonksiyonu Türkçe'ye çevirirken hatalı çevirmişim. Düzelttim. Tekrar deneyebilirsiniz.
 
Sayın Korhan Ayhan merhaba,

Düzeltilmiş formül ile çözüme ulaştım,

Teşekkür ederim,

Saygılarımla.
 
Geri
Üst