Soru Rakamla harfleri ayırma

Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Elimde yaklaşık 1500 satırlık bir liste var. Rakamla başlıyor fakat bazıları 2 haneli bazıları daha fazla 5 haneli kadar oluyor. Birde iki veri arasında sadece harfle girilen veriler var. Öncelikle sadece harfle girilen veriler ayıklanacak daha sonra kalan 23423Asder... gibi olan veriler rakamlardan ayrılıp liste oluşacak. Sanırım kodla yapılabilecek. Örnek dosya EK tedir. Dedim ama dosya yükleyemedim. Şimdiden teşekkürler.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Hızlı Doldurma (Flash Fill) ile yapabilirsiniz.
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
 

Sayın muratboz06 güzel bir özellikmiş verdiğiniz örnek, fakat benim isteğime uymadı. Benim listemde altalta olan verilerin hepsi yazılmayacak sadece önünde rakam olan veriler yazılacak.

 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Regular Expressions ile VBA'de yapılır ama Google Sheets'de çok daha kolay ;



.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,261
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Sadece harfleri almak için
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(A1;0;"");1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"")



Sadece sayıları almak için

=--YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(BÜYÜKHARF(A1);"A";"");"B";"");"C";"");"Ç";"");"D";"");"E";"");"F";"");"G";"");"Ğ";"");"H";"");"I";"");"İ";"");"J";"");"K";"");"L";"");"M";"");"N";"");"O";"");"Ö";"");"P";"");"Q";"");"R";"");"S";"");"Ş";"");"T";"");"U";"");"Ü";"");"V";"");"W";"");"X";"");"Y";"");"Z";"")


verinin A1 hücresinde olduğu varsayılmıştır
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
3110Ada doğanı
fghgh
löol
ğpp
5880Ada martısı
çvjhj
mn mn
10090Ağaç incirkuşu
Tsingy
12370Ağaç kamışçını
rousettus
........
.......
----------------------------------
Ada doğanı
Ada martısı
Ağaç incirkuşu
Ağaç kamışçını
......
........

Bu şekilde olacak, arada kalanlar silinecek.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,261
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Örnek dosya eklemenizde fayda var
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,204
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
A sütunundaki verilerinizi B sütununa listeler.

Deneyiniz.

C++:
Option Explicit

Sub Sayi_Icerenleri_Yana_Aktar()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long, Zaman As Double
    
    Zaman = Timer
    
    Range("B:B").ClearContents
    
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
    
    Veri = Range("A1:A" & Son).Value
    
    ReDim Liste(1 To Son, 1 To 1)
    
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
        .Global = True
        .Pattern = "[0-9]+"
        For X = LBound(Veri, 1) To UBound(Veri, 1)
            If IsNumeric(Left(Veri(X, 1), 1)) Then
                Say = Say + 1
                Liste(Say, 1) = .Replace(Veri(X, 1), "")
            End If
        Next
    End With
    
    If Say > 0 Then Range("B1").Resize(Say) = Liste
    
    MsgBox "İşleminiz tamamlanmıştır." & vbLf & vbLf & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
6. mesajdaki açıklamalar doğrultusunda, "Google Sheets" ile alternatif;




.
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Sayın Korhan Ayhan çok teşekkür ederim istediğim tam olarak buydu 908 adet satırı 0.04 sn de ayıklayıp sıraladı. Allah razı olsun.
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Sayın Haluk dediğiniz uygulamayı bilmiyorum ama bunu da incelemeye başlayacağım çok teşekkür ederim ilginizden dolayı.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
A sütunundaki verilerinizi B sütununa listeler.

Deneyiniz.

C++:
Option Explicit

Sub Sayi_Icerenleri_Yana_Aktar()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long, Zaman As Double
   
    Zaman = Timer
   
    Range("B:B").ClearContents
   
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
   
    Veri = Range("A1:A" & Son).Value
   
    ReDim Liste(1 To Son, 1 To 1)
   
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
        .Global = True
        .Pattern = "[0-9]+"
        For X = LBound(Veri, 1) To UBound(Veri, 1)
            If IsNumeric(Left(Veri(X, 1), 1)) Then
                Say = Say + 1
                Liste(Say, 1) = .Replace(Veri(X, 1), "")
            End If
        Next
    End With
   
    If Say > 0 Then Range("B1").Resize(Say) = Liste
   
    MsgBox "İşleminiz tamamlanmıştır." & vbLf & vbLf & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
Üstad eline sağlık, harika bir kod. Acaba biraz daha geliştirmek mümkün mü ?
* Kod sayı ile başlarsa çalışıyor. Sayı ve harfler karışık olsa da veya sayılar sağda olsa
* Sayılar C sütununa yazdırılabilir mi
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Sayi_Icerenleri_Yana_Aktar()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long, Zaman As Double
    
    Zaman = Timer
    
    Range("B:C").ClearContents
    
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
    
    Veri = Range("A1:A" & Son).Value
    
    ReDim Liste(1 To Son, 1 To 2)
    
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
        .Global = True
        For X = LBound(Veri, 1) To UBound(Veri, 1)
            If IsNumeric(Left(Veri(X, 1), 1)) Then
                Say = Say + 1
                .Pattern = "[0-9]+"
                Liste(Say, 1) = .Replace(Veri(X, 1), "")
                .Pattern = "[^0-9]+"
                Liste(Say, 2) = .Replace(Veri(X, 1), "")
            End If
        Next
    End With
    
    If Say > 0 Then Range("B1").Resize(Say, 2) = Liste
    
    MsgBox "İşleminiz tamamlanmıştır." & vbLf & vbLf & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sayın Haluk dediğiniz uygulamayı bilmiyorum ama bunu da incelemeye başlayacağım çok teşekkür ederim ilginizden dolayı.
11. mesajda önerdiğim Google Sheets alternatifinin açıklamalı uygulaması için kişisel blog'umu ziyaret edebilirsiniz.



.
 
Katılım
24 Nisan 2005
Mesajlar
3,670
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Alternatif;

C#:
Sub sayilari_cikar()
   Application.ScreenUpdating = False
   Range("B:B").ClearContents
   For i = 1 To Cells(Rows.Count, "A").End(3).Row
      gec = Cells(i, "A").Value
      If InStr(gec, "0") > 0 Or InStr(gec, "1") > 0 Or InStr(gec, "2") > 0 Or InStr(gec, "3") > 0 Or InStr(gec, "4") > 0 Or InStr(gec, "5") > 0 Or InStr(gec, "6") > 0 Or InStr(gec, "7") > 0 Or InStr(gec, "8") > 0 Or InStr(gec, "9") > 0 Then
        Cells(i, "B").Value = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(gec, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")
      End If
   Next i
   Range("B:B").Sort key1:=Range("B1"), order1:=xlAscending
   Application.ScreenUpdating = True
End Sub
 

TheSuleyman

Altın Üye
Katılım
12 Şubat 2012
Mesajlar
53
Excel Vers. ve Dili
Türkçe
Altın Üyelik Bitiş Tarihi
06-01-2026
Excelde bu kodları uyguladığımda tüm veriler siliniyor özel karakterlerden oluşan isimler var ondan dolayı mı acaba
 
Katılım
24 Nisan 2005
Mesajlar
3,670
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Excelde bu kodları uyguladığımda tüm veriler siliniyor özel karakterlerden oluşan isimler var ondan dolayı mı acaba
Ne yapmak istiyorsunuz?
Örnek bir hücre verisi ve olmasını istediğiniz sonuç verisini yazabilir misiniz?
 
Üst