Hücrede bulunan birden fazla ":" karakterinin kaçıncı sıralardada olduğu

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
Hücrede bulunan birden fazla ":" karakterinin kaçıncı sıralarda olduğunu yardımcı sütun kullanarak fonksiyonla ekli dosyada görüldüğü gibi buluyorum. Makro ile nasıl bulurum.
Saygılarımla
 

Ekli dosyalar

Korhan Ayhan

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

Eğer amacınız örnekteki gibi sayısal verileri almak ise görseldeki gibi bir işlem ile sonuca gidebilirsiniz.

239378
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Günaydın Korhan Hocam,
Evet derdim sayıları almak, makroyu yazdım ama bir yerde döküm alamadım. Böyle çok sayıda farklı testin verisi var. Bunları datanın hizasına yan yana almak istiyorum.
Saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben size basit bir örnek verdim. Siz bu kodu döngüye alıp kullanabilirsiniz.

Yapamam derseniz bahsettiğiniz veriyi içeren örnek dosya paylaşınız.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Hocam,
Döngüyü denemedim. Hemen deneyeyim.
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Sanırım el verseniz daha iyi olacak.
Saygılarımla
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test1()
    With CreateObject("Vbscript.Regexp")
        .Pattern = "\d"
        .Global = True
        al = Range("B1").Value
        If .Test(al) Then
            sut = 4
            For Each mtch In .Execute(al)
                Cells(1, sut).Value = Val(mtch)
                sut = sut + 1
            Next
        End If
    End With
End Sub

Sub test2()
    With CreateObject("Vbscript.Regexp")
        .Pattern = """\w"":\s(\d)"
        .Global = True
        al = Range("B1").Value
        If .Test(al) Then
            sut = 4
            For Each mtch In .Execute(al)
                Cells(1, sut).Value = mtch.submatches(0)
                sut = sut + 1
            Next
        End If
    End With
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Veysel Emre Hocam,
İlginize çok teşekkür ederim.
Saygılarımla
 

Korhan Ayhan

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

Önerdiğim kodun dosyanıza uyarlanmış hali;

C++:
Option Explicit

Sub Test()
    Dim My_Text As String, My_Data As Variant, X As Byte, Y As Byte
    
    My_Text = Range("B1").Text
    My_Data = Split(Replace(My_Text, ":", ","), ",")
    
    Range("A2").Resize((UBound(My_Data) + 1) / 2, 2).ClearContents
    
    Y = 2
    
    For X = LBound(My_Data) To UBound(My_Data) Step 2
        Cells(Y, 1) = My_Data(X)
        Cells(Y, 2) = My_Data(X + 1)
        Y = Y + 1
    Next X
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Ayhan Hocam,
İlginize çok teşekkür ederim.
Saygılarımla
 
Üst