Satırı hücre içindekiler ile birleştirme

Katılım
16 Mart 2007
Mesajlar
46
Excel Vers. ve Dili
2013
Kıymet arkadaşlar merhaba şöyle bir sorum olacak. A sutununda her bir satırda benzersiz bir değer var. B sutununda ise her bir hücrenin içerisinde 20 satırdan fazla içerik var.

Örnek A Sutunun her bir satır aşağıdaki gibi:
Deri
Naylon
Kumaş
...

B sutununda bir hücrenin içeriği:
Çanta
Cüzdan
Ayakkabı
...

ben C sutununda bunun birleşmesini istiyorum. Yani C1 hücresinin içeriği aşağıdaki gibi olmalı: Her birinin bir satırda olması işimi görmüyor bir hücrenin içerisinde birleşmeli;
Deri Çanta
Deri Cüzdan
Deri Ayakkabı

C2 hücresi de yukarıdaki mantığa gibi olmalı bunu tüm satıra uygulayacağım.

Yardımlarınızı rica ediyorum.
 
Katılım
6 Mart 2005
Mesajlar
6,238
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Silindi
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,469
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Makro isterseniz çözüm üretebilirim. Fonksiyonu deneyeceğim.
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,469
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Formülle bir çözüm ürettim. Formül biraz daha kısaltılabilir. Vakit bulursam daha kısa bir formül oluşturmaya çalışacağım. C1 sütununa formülü kopyalayıp aşağı doğru çoğaltınız. C sütununu metni kaydır ile biçimlendiriniz.
Kod:
=KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));1*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));1*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1))) &" " & KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));2*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));2*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1))) &  " "  & KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));3*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));3*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1)))
 
Son düzenleme:
Katılım
16 Mart 2007
Mesajlar
46
Excel Vers. ve Dili
2013
Selamlar,
Formülle bir çözüm ürettim. Formül biraz daha kısaltılabilir. Vakit bulursam daha kısa bir formül oluşturmaya çalışacağım. C1 sütununa formülü kopyalayıp aşağı doğru çoğaltınız. C sütununu metni kaydır ile biçimlendiriniz.
Kod:
=KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));1*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));1*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1))) &" " & KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));2*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));2*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1))) &  " "  & KIRP(PARÇAAL(YERİNEKOY(YERİNEKOY(A1;DAMGA(10);"");" ";YİNELE(" ";UZUNLUK(A1)));3*UZUNLUK(A1)-(UZUNLUK(A1)-1);UZUNLUK(A1))) & " " &KIRP(PARÇAAL(YERİNEKOY(B1;" ";YİNELE(" ";UZUNLUK(B1)));3*UZUNLUK(B1)-(UZUNLUK(B1)-1);UZUNLUK(B1)))
Üstad ilgin için teşekkür ederim, fakat gene çalışmadı ben mi bi yerde hata yapıyorum bilmiyorum sadece ilk satır oluyor ikinci satır olmuyor.
 
Katılım
5 Haziran 2018
Mesajlar
85
Cevabınız için teşekkürler fakat olmadı sonuç şu şekilde oldu :
Deri Çanta
Cüzdan
Ayakkabı


Yani ilk kelimenin başına deri ifadesi geldi aşağıdakilere gelmedi
aslında silinmemesi lazım formülü aşağı kaydırdığınızda seçilen hücreleri kontrol eder misiniz a2 hücresine formül kayacak orada deri yazıyor mu gibi
 
Katılım
16 Mart 2007
Mesajlar
46
Excel Vers. ve Dili
2013
Dosyayı inceledim teşekkürler.

Hata şurda ilk mesajda da yazdığım gibi a sutunundaki değerlerin her biri bir satırda fakat b sutununda hücre içinde.

Örnek dosya linki aşağıdadır. Ben c sutununda olduğu gibi birleşmesin istiyorum. Örnek dosyada B sutununda 5 satır içerik var hücre içinde fakat aslında esas kullanacağım yerde 50 satır cıvarı içerik olacak hücre içinde.

Yardımlarınız için şimdiden teşekkürler.

https://drive.google.com/file/d/1DxxePf4RluLE9tIB-A7ITBqWXU4rTmWV/view?usp=sharing
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,469
Excel Vers. ve Dili
Office 2010 & 2013 tr
Formül ile de yapılabilir; fakat 50 satırlık hücre için uygun olmayacaktır. Bu nedenle makro ile bir çözüm ürettim.
Kod:
Sub hucre_birlestir()
sonsat = Cells(Rows.Count, 1).End(3).Row
For i = 1 To sonsat
If InStr(1, Cells(i, 2), Chr(10)) > 0 Then
deg = Split(Cells(i, 2), Chr(10))
For x = 0 To UBound(deg)
mtn = mtn & Cells(i, 1) & " " & deg(x) & Chr(10)
Next
Cells(i, 3) = Left(mtn, Len(mtn) - 1)
mtn = ""
End If
Next
MsgBox "İşlem tamamlandı.", vbOKOnly, "l e u m r u k"
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak aşağıdaki kullanıcı tanımlı fonksiyonu da deneyebilirsiniz.

Örnek dosyanızdaki C1 hücresi için; =KBİRLEŞTİR(A1;B1) şeklinde kullanabilirsiniz.

Kod:
Function KBİRLEŞTİR(Eklenecek_Veri As Range, Veri As Range) As String
    Dim Metin As Variant

    Application.Volatile True

    If InStr(1, Veri.Value, Chr(10)) = 0 Then
        If Len(Veri.Value) > 0 Then
            KBİRLEŞTİR = Eklenecek_Veri.Value & " " & Veri.Value
        Else
            KBİRLEŞTİR = Empty
        End If
    Else
        Metin = Split(Veri.Value, Chr(10))
        For X = 0 To UBound(Metin)
            If KBİRLEŞTİR = Empty Then
                KBİRLEŞTİR = Eklenecek_Veri.Value & " " & Metin(X)
            Else
                KBİRLEŞTİR = KBİRLEŞTİR & Chr(10) & Eklenecek_Veri.Value & " " & Metin(X)
            End If
        Next
    End If
End Function
 

Ekli dosyalar

Katılım
16 Mart 2007
Mesajlar
46
Excel Vers. ve Dili
2013
Emeğiniz ve verdiğiniz cevaplar için çok teşekkür ederim.
Siz değerli üstadlara bir sorum daha olacak.
Ben şimdi bu makroları kullanarak istediğim yaptım fakat bir ilave yapmak istiyorum.

Bir hücrenin içerisindeki satırları metine çevirmek istiyorumç Şöyle ki

Bir hücrenin içinde aşağıdaki satılar var :
Deri Çanta
Deri Cüzdan
Deri Ayakkabı
Deri Mont
Deri Kaban
Deri Ceket
Deri pantolon

Ben bir makro kullanarak her üç satırı bir cümle haline getirmek istiyorum:
Deri çanta deri cüzdan deri ayakkabı. Deri mont deri kaban deri ceket.

Yani üç satırdaki değerler yan yana gelip sonuna bir "." konacak sonra bir boşluk verilip alttaki değerler ile devam edecek.
Tabi bu iş yine bir hücre içinde olacak.

Mümkün müdür ?
 

Korhan Ayhan

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

Kullanımı ; =KBİRLEŞTİR(A1)

Kod:
Function KBİRLEŞTİR(Veri As Range) As String
    Dim Metin As Variant, Say As Integer
   
    Application.Volatile True
   
    If InStr(1, Veri.Value, Chr(10)) = 0 Then
        If Len(Veri.Value) > 0 Then
            KBİRLEŞTİR = Veri.Value & "."
        Else
            KBİRLEŞTİR = Empty
        End If
    Else
        Metin = Split(Veri.Value, Chr(10))
        For X = 0 To UBound(Metin)
            If KBİRLEŞTİR = Empty Then
                KBİRLEŞTİR = Metin(X)
                Say = Say + 1
            Else
                If Say = 3 Then
                    Say = 1
                    KBİRLEŞTİR = KBİRLEŞTİR & "." & Chr(10) & Trim(Metin(X))
                Else
                    KBİRLEŞTİR = KBİRLEŞTİR & " " & Trim(Metin(X))
                    Say = Say + 1
                End If
            End If
        Next
    End If
    If Right(KBİRLEŞTİR, 1) <> "." Then KBİRLEŞTİR = KBİRLEŞTİR & "."
End Function
 

Ekli dosyalar

Katılım
16 Mart 2007
Mesajlar
46
Excel Vers. ve Dili
2013
teşekkür ederim üstad
 
Üst