Tablo içerisinden filtrelenen hücrelerdeki metinleri birleştirme

Katılım
25 Kasım 2020
Mesajlar
3
Excel Vers. ve Dili
2016
Tablomun içerisindeki I sütununun her bir hücresinde virgül ile ayrılmış metin ve sayı içeren değerler bulunmaktadır. Bu değerlerin girildiği tarihi gün ve saat olarak gösteren bir sütun daha bulunmaktadır(E sütunu). Benim yapmak istediğim şey ise; bu tablo içerisinde istediğim günü girdiğim bir hücreye göre filtreleme yaptıktan sonra I sütununun filtreleme sonucu kalan hücrelerindeki metinleri birleştirip tek bir hücreye yazdırmak. Bana yardımcı olabilecek en ufak bir desteğe minnettar olurum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,157
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kullandığınız versiyona göre makro ile bu işlemi yapabilirsiniz.

Aşağıdaki kullanıcı tanımlı fonksiyonu bir modüle uyguladıktan sonra excel sayfasına dönüp hücreye formül şeklinde yazarak kullanabilirsiniz.

Filtre uyguladığınızda filtrelenmiş verileri birleştirecektir.

=K_BİRLEŞTİR(Hücre_Aralığı;Birleştirme_Ayıracı)

C++:
Option Explicit

Function K_BİRLEŞTİR(Alan As Range, Optional Ayıraç As String = "-")
    Dim Veri As Range, Liste As Variant, Say As Long
   
    Application.Volatile True
   
    ReDim Liste(1 To 1)
   
    For Each Veri In Alan
        If Veri.Value <> "" And Veri.RowHeight <> 0 Then
            Say = Say + 1
            ReDim Preserve Liste(1 To Say)
            Liste(Say) = Veri.Value
        End If
    Next
   
    K_BİRLEŞTİR = Join(Liste, Ayıraç)
End Function
 
Katılım
25 Kasım 2020
Mesajlar
3
Excel Vers. ve Dili
2016
Kullandığınız versiyona göre makro ile bu işlemi yapabilirsiniz.

Aşağıdaki kullanıcı tanımlı fonksiyonu bir modüle uyguladıktan sonra excel sayfasına dönüp hücreye formül şeklinde yazarak kullanabilirsiniz.

Filtre uyguladığınızda filtrelenmiş verileri birleştirecektir.

=K_BİRLEŞTİR(Hücre_Aralığı;Birleştirme_Ayıracı)

C++:
Option Explicit

Function K_BİRLEŞTİR(Alan As Range, Optional Ayıraç As String = "-")
    Dim Veri As Range, Liste As Variant, Say As Long
  
    Application.Volatile True
  
    ReDim Liste(1 To 1)
  
    For Each Veri In Alan
        If Veri.Value <> "" And Veri.RowHeight <> 0 Then
            Say = Say + 1
            ReDim Preserve Liste(1 To Say)
            Liste(Say) = Veri.Value
        End If
    Next
  
    K_BİRLEŞTİR = Join(Liste, Ayıraç)
End Function
Google Form'da makrolara eklemeye çalıştım ama olmadı sanırım. syntaxerror verdi. Makro olmadan formülle istediğimi yapmam mümkün değil mi acaba?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,157
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
=TEXTJOIN("-";TRUE;FILTER(I2:I100;E2:E100=TODAY()))
 
Üst