ALT + ENTER içeren hücredeki veriyi sütunlara ayrıştırmak

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,104
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhabalar,
Bir hücre içinde alt+enter ile oluşturulmuş satırlar halindeki bir metini sütunlara nasıl ayırırız?
Teşekkürler
Metin1:
Değer1 ,23456


Metin2:eğer2; gasdggdf


Metin3:
Değer 31 k,dgaghfhhf
Değer 32 :3Şdgdgdgg


Metin4: Değer440: gfdgfg
Değer441: gdsgDGDG

Değer442: fgffhhf

Değer443
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,727
Excel Vers. ve Dili
2021 Türkçe
Merhaba.
Kod:
Sub test()
    Dim Deger As Variant
    Dim Sira As Integer
    Dim Satir As Integer
    Dim Bak As Long
    For Bak = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        Satir = 1
        Deger = Split(Cells(Bak, "A"), Chr(10))
        For Sira = 1 To UBound(Deger)
            If Deger(Sira - 1) <> "" Then
                Satir = Satir + 1
                Cells(Bak, Satir) = Deger(Sira - 1)
            End If
        Next
    Next
    MsgBox "Tamamlandı."
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,652
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub cozumle()
    Dim i&, al$, veri, elem, kSira&
    Dim dic As Object, re As Object, m As Object

    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = "(^Değer\d+)[\s,:;]+(.+)"
    re.Global = False
    re.IgnoreCase = True

    Set dic = CreateObject("Scripting.Dictionary")
    For i = 2 To 12
        dic.Add Cells(1, i).Value, i
    Next i

    For i = 2 To Cells(Rows.Count, 1).End(3).Row
        al = Cells(i, 1).Value
        If al = "" Then GoTo devam
        al = Replace(al, "Değer  ", "Değer")
        veri = Split(al, Chr(10))
        For Each elem In veri
            kSira = InStr(elem, "Değer")
            If kSira > 0 Then
                elem = "Değer" & Trim(Replace(Mid(elem, kSira), "Değer", ""))
                Set m = re.Execute(elem)
                If m.Count > 0 Then
                    Set m = m(0).submatches
                    If dic.exists(m(0)) Then
                        Cells(i, dic(m(0))).Value = m(1)
                    End If
                End If
            End If
        Next elem
devam:
    Next i
    Set dic = Nothing: Set re = Nothing: Set m = Nothing
End Sub
 

Korhan Ayhan

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

Eğer 1. satırdaki başlıklar önemliyse veyselemre beyin çözümü işinizi görecektir.

Başlıklar önemli değilse ve formülle çözüm isteseniz alternatif olsun.. B2 hücresine uygulayıp sağa doğru sürükleyiniz.

C++:
=KIRP(PARÇAAL(YERİNEKOY(DAMGA(10)&YERİNEKOY(YERİNEKOY(YERİNEKOY($A2;DAMGA(10)&DAMGA(10);DAMGA(10));DAMGA(10)&DAMGA(10);DAMGA(10));DAMGA(10)&DAMGA(10);DAMGA(10));DAMGA(10);YİNELE(" ";255));SÜTUN(A$1)*255;255))
 
Üst