Her ismi bir defa getirme

Katılım
12 Şubat 2014
Mesajlar
216
Excel Vers. ve Dili
office2013
Altın Üyelik Bitiş Tarihi
15-12-2021
Merhaba.
ÖZET sayfası A3 hücresinden A1000 hücresine kadar farklı personel isimşeri bulunuyor
ÖZET sayfası B4 hücresinden B1000 hücresine kadar depo isimleri bulunuyor
YARIŞMA sayfasında C8 hücresinde istenen depo adı bulunuyor
YARIŞMA sayfası C10 hücresine ve aşağıya doğru ÖZET sayfasındaki depo isimlerine göre personel isimlerini tekrarsız şekilde getirmesini istiyorum.
Aşağıdaki şekilde bir formül uyguladım ama sadece 1 isim getiriyor. Yardımcı olabilir misiniz?

=EĞERHATA(İNDİS(Özet!$A$3:$A$10000;KÜÇÜK(EĞER((Özet!$B$3:$B$10000=$C$8)*(Özet!$C$3:$C$10000=1);SATIR(Özet!$A$3:$A$10000)-SATIR(Özet!$A$3)+1);SATIR(A1)));"")
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,000
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
{=EĞERHATA(İNDİS(ÖZET!$A$3:$A$1000; KÜÇÜK(EĞER(ÖZET!$B$3:$B$1000=$C$8; SATIR(ÖZET!$A$3:$A$1000)-2); SATIR(A1))); "")}
Eğer bu sayfaların adları farklıysa, formüldeki ÖZET! ve YARIŞMA! kısımlarını kendi sayfa adlarınızla değiştirmeniz gerekir.Dizi formülüdür.
 
Son düzenleme:
Katılım
12 Şubat 2014
Mesajlar
216
Excel Vers. ve Dili
office2013
Altın Üyelik Bitiş Tarihi
15-12-2021
maalesef olmadı. Hem 1 satır geldi, hemde gelen isim yanlış oldu
 

antonio

Destek Ekibi
Destek Ekibi
Katılım
13 Şubat 2011
Mesajlar
1,165
Excel Vers. ve Dili
Microsoft Office Professional Plus 2013 Türkçe
Merhaba,
Veri sekmesi altındaki "Yinelenenleri kaldır" aracını kullanmanızı öneririm.
 
Katılım
20 Ekim 2005
Mesajlar
495
s.a.
Kod:
Sub DepoyaGorePersonelListele()
    Dim wsOzet As Worksheet, wsYarisma As Worksheet
    Dim depoAdi As String
    Dim sonSatir As Long, i As Long
    Dim personel As String
    Dim dict As Object
    Dim hedefSatir As Long
   
    ' Sayfaları tanımla
    Set wsOzet = ThisWorkbook.Sheets("ÖZET")
    Set wsYarisma = ThisWorkbook.Sheets("YARIŞMA")
   
    ' YARIŞMA sayfasındaki depo adı
    depoAdi = wsYarisma.Range("C8").Value
   
    ' ÖZET sayfasında son satırı bul
    sonSatir = wsOzet.Cells(wsOzet.Rows.Count, "A").End(xlUp).Row
   
    ' Tekrarsız liste için Scripting.Dictionary kullan
    Set dict = CreateObject("Scripting.Dictionary")
   
    ' ÖZET sayfasında dolaş
    For i = 3 To sonSatir
        If wsOzet.Cells(i, "B").Value = depoAdi Then
            personel = wsOzet.Cells(i, "A").Value
            If Not dict.exists(personel) Then
                dict.Add personel, 1
            End If
        End If
    Next i
   
    ' YARIŞMA sayfasında C10'dan itibaren yaz
    wsYarisma.Range("C10:C1000").ClearContents
    hedefSatir = 10
    For Each personel In dict.keys
        wsYarisma.Cells(hedefSatir, "C").Value = personel
        hedefSatir = hedefSatir + 1
    Next personel
   
    MsgBox "Listeleme tamamlandı!", vbInformation
End Sub
Dener misiniz
 
Katılım
12 Şubat 2014
Mesajlar
216
Excel Vers. ve Dili
office2013
Altın Üyelik Bitiş Tarihi
15-12-2021
teşekkürler
 
Üst