• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Rakam ve harf ayır

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı geceler.

Ekte gönderdiğim sayfada A sütunundaki karışık rakam ve harfler var bunları yan sütunlarda KTF ile ayırmak istiyorum.

Forumda ve internette araştırdım ancak benim bu istediğim çalışma gibi bir çalışma bulamadım, yardımcı olur musunuz?
 

Ekli dosyalar

Deneyiniz.

Kriter bölümü boş olursa ya da 1 yazarsanız rakamlar baz alınır.
Kriter bölümüne 2 yazarsanız harfler baz alınır.

Fonksiyon içindeki "Karakter" değişkeninde ki sembolleri dilediğiniz gibi değiştirebilirsiniz. Bu değişkende bulunan semboller sonuç içinde gösterilmeyecektir.

Kod:
[COLOR="Red"]Karakter = "_|<+-/\*'´`¨~,.:;!^%&<>()[]{}#$@"""[/COLOR]


Kod:
=RH_AYIR(A1) 'Sayılar alınır.
=RH_AYIR(A1;1) 'Sayılar alınır.
=RH_AYIR(A1;2) 'Harfler alınır.

Kod:
Function RH_AYIR(Veri As Range, Optional Kriter As Byte = 1)
    Application.Volatile True
    Karakter = "_|<+-/\*'´`¨~,.:;!^%&<>()[]{}#$@"""
    For X = 1 To Len(Veri.Value)
        If IsNumeric(Mid(Veri.Value, X, 1)) Then
            If InStr(1, Karakter, Mid(Veri.Value, X, 1)) = 0 Then
                Rakam = Rakam & Mid(Veri.Value, X, 1)
                Rakam = Replace(Rakam, "  ", " ")
                If Right(Harf, 1) <> " " And Harf <> "" Then Harf = Harf & " "
            End If
        Else
            If InStr(1, Karakter, Mid(Veri.Value, X, 1)) = 0 Then
                Harf = Harf & Mid(Veri.Value, X, 1)
                Harf = Replace(Harf, "  ", " ")
                If Right(Rakam, 1) <> " " And Rakam <> "" Then Rakam = Rakam & " "
            End If
        End If
    Next
    Select Case Kriter
        Case 1: RH_AYIR = Trim(Rakam)
        Case 2: RH_AYIR = Trim(Harf)
        Case Else: RH_AYIR = "Hata !"
    End Select
End Function
 
Merhaba,

2. Seçenek olsun.

RakamHarf(A1) --> Sayı
RakamHarf(A1;1) --> Sayı
RakamHarf(A1;2) --> Harf

Kod:
Function RakamHarf(Deg As Range, Optional Tip As Integer = 1)

    Dim Match, Matches
    Dim Rakam As String
    Dim Harf As String
        
    With CreateObject("VBScript.RegExp")
        .Pattern = "(\d+|\D+)"
        .Global = True
            Set Matches = .Execute(Deg.Value)
            Rakam = ""
            Harf = ""
            For Each Match In Matches
                If IsNumeric(Trim(Match)) = True Then
                    Rakam = Rakam & " " & Trim(Match)
                Else
                    Harf = Harf & " " & Trim(Match)
                End If
            Next
            If Tip = 1 Then
                RakamHarf = Rakam
            Else
                RakamHarf = Harf
            End If
    End With

End Function
 
selam,
alternatif olarak
(Regular Expression ile)

Yeniden düzenlendi :

İstenilen durum
1 - Harf ve Rakam dışında kalan tüm işaretler Rakam ve Harflerin içerisinde yer almayacak. (Noktalama işaretleri de dahil..)
2 - Ayrıştırılacak kelimedeki Harflerin önünde ve sonrasında boşluk olmasa bile rakamlar arasında BOŞLUK bırakılacak.

Eksik kalan fakat değerlendirmeye alınan :
Harflerin içerisinde TÜRKÇE karakterler de olabilir..

Kod:
Function Rakam(c)
Set obj = CreateObject("vbscript.regexp")
obj.Global = True
obj.Pattern = "[^a-zçğıöşüA-ZÇĞİÖŞÜ,^\d]|[,.^]+"
t = obj.Replace(c, "")
obj.Pattern = "[a-zçğıöşüA-ZÇĞİÖŞÜ]+"
s = obj.Replace(t, " ")
Rakam = Trim(s)
End Function

Kod:
Function Harf(c)
Set obj = CreateObject("vbscript.regexp")
obj.Global = True
obj.Pattern = "[^a-zçğıöşüA-ZÇĞİÖŞÜ]+"
a = obj.Replace(c, " ")
Harf = Trim(a)
End Function

KTF lerin kullanımı :
=Rakam(A1)
=Harf(A1)

Yeni düzenlenen duruma uygun hazırlanan örnek ektedir.
Eki inceleyiniz..
 

Ekli dosyalar

Son düzenleme:
Sayın Korhan Bey ellerinize sağlık çok güzel olmuş, Allah razı olsun.

Küçük bir sorun var / * - + gibi olanları da harflere ekliyor, bunu da ayırabilir miyiz?
Sadece A-Z arasındaki harfleri alsın. Diğer başka simgeleri almasın.
 

Ekli dosyalar

Son düzenleme:
Sayın sakman26 ellerinize sağlık çok güzel olmuş, size de çok teşekkür ederim Allah razı olsun.

Küçük bir sorun var / * - + gibi olanları da rakamlara ve harflere ekliyor, bunu da ayırabilir miyiz?
Sadece A-Z arasındaki harfleri alsın. Diğer başka simgeleri almasın.
 

Ekli dosyalar

Son düzenleme:
Sayın Necdet Bey size de çok teşekkür ederim, Allah razı olsun.

Ancak sizin göndermiş olduğunuz kod'dada kelimelere / * - + gibi simgeleri ekliyor.
 
4 no lu mesajın, yeniden düzenlenmesi ve ekin de eklenmesi nedeniyle
bu mesaj içeriği tarafımdan silinmiştir.
 
Son düzenleme:
Sayın sakman26 hazırlamış olduğum örnekte simgeler yoktu, kodlar simgeleri rakamların ve harflerin arasına alabileceğini
fark etmedim, sonradan göndermiş olduğunuz örnekte o şekilde denediğimde simgeleri de rakamların ve harflerin arasına aldığını gördüm,
bu yüzdende yeniden hazırladığım örneği göndermiştim.

Harf denildiği zaman A ile Z arasındaki harfler değil midir?

Rakam denildiği zaman 0 ile 9 arasındaki rakamlar değil midir?
 
4 no lu mesajın, yeniden düzenlenmesi ve ekin de eklenmesi nedeniyle
bu mesaj içeriği tarafımdan silinmiştir.
 
Son düzenleme:
Sayın sakman26 hazırlamış olduğum örnekte simgeler yoktu, kodlar simgeleri rakamların ve harflerin arasına alabileceğini
fark etmedim, sonradan göndermiş olduğunuz örnekte o şekilde denediğimde simgeleri de rakamların ve harflerin arasına aldığını gördüm,
bu yüzdende yeniden hazırladığım örneği göndermiştim.

Harf denildiği zaman A ile Z arasındaki harfler değil midir?

Rakam denildiği zaman 0 ile 9 arasındaki rakamlar değil midir?


4 no lu mesajın, yeniden düzenlenmesi ve ekin de eklenmesi nedeniyle
bu mesaj içeriği tarafımdan silinmiştir.
 
Son düzenleme:
Sayın sakman26 ilginiz için çok teşekkür ederim, aradığım buydu, ellerinize sağlık Allah razı olsun.

Hayırlı çalışmalar, hayırlı sabahlar dilerim.
 
#2 nolu mesajımı son isteklerinize göre düzenledim. Tekrar deneyiniz.
 
Geri
Üst