Düşeyara da birden fazla sonuç listeleme

Katılım
21 Mayıs 2020
Mesajlar
5
Excel Vers. ve Dili
Excel 2016
Merhaba,
Bulunan sonuç birden fazla ise bunları aynı hücreye virgülle ayırarak nasıl yazdırabilirim?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Aynı hücrede olacaksa, bu işlem için formül kullanmanızı tavsiye etmem, makro ile yapmak mantıklı olacaktır. Örnek dosya ekler misiniz, örnek üzerinden gidelim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr

Sitesine yükleyip indirme adresini paylaşabilirsiniz. Yada Altın üye olarak direk siteye yükleyebilirsiniz.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Aranacak veri sayfası A sütununa girilecek tüm veriler içindir.

Linki inceleyin.

Kod:
Sub bul()
   
    Dim Sv As Worksheet, Sy As Worksheet
    Dim ayr As String, i As Long, c As Range, Adr As String
       
    Set Sv = Sheets("Aranacak veri")
    Set Sy = Sheets("Aranılacak yer")
       
    Application.ScreenUpdating = False
    Sv.Select
    Range("B2:B" & Rows.Count).ClearContents
   
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        Set c = Sy.[A:A].Find(Cells(i, "A"), , xlValues, xlWhole)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                If Cells(i, "B") = "" Then ayr = "" Else ayr = ";"
                Cells(i, "B") = Cells(i, "B") & ayr & Sy.Cells(c.Row, "B")
                Set c = Sy.[A:A].FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    Next i
   
End Sub
 

Ekli dosyalar

Katılım
21 Mayıs 2020
Mesajlar
5
Excel Vers. ve Dili
Excel 2016
Aranacak veri sayfası A sütununa girilecek tüm veriler içindir.

Linki inceleyin.

Kod:
Sub bul()
   
    Dim Sv As Worksheet, Sy As Worksheet
    Dim ayr As String, i As Long, c As Range, Adr As String
       
    Set Sv = Sheets("Aranacak veri")
    Set Sy = Sheets("Aranılacak yer")
       
    Application.ScreenUpdating = False
    Sv.Select
    Range("B2:B" & Rows.Count).ClearContents
   
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        Set c = Sy.[A:A].Find(Cells(i, "A"), , xlValues, xlWhole)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                If Cells(i, "B") = "" Then ayr = "" Else ayr = ";"
                Cells(i, "B") = Cells(i, "B") & ayr & Sy.Cells(c.Row, "B")
                Set c = Sy.[A:A].FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    Next i
   
End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Linkteki örnekte kodları eklemiştim butona basmanız yeterli. Alt+F11 yaparsanız kodları Module sayfasında görebilirsiniz.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Rica ederim, işinize yaradığına sevindim.
 
Üst