TC Kimlik No ve isimleri Birbirinden Ayırma

Mikdad

Altın Üye
Katılım
5 Ocak 2006
Mesajlar
333
Excel Vers. ve Dili
365 Türkçe
Altın Üyelik Bitiş Tarihi
26-10-2026
Selamun Aleykum dostlarım, aşağıdaki formatta a2 hücresinde isim tc yazılı listem var benim tc ve isimleri birbirinden ayırmam lazım. metni sutunlara dönüştür dediğim zaman ayırıyor ama iki isimli kişilerde sorun çıkıyor. Bu konuda yardımcı olur musunuz?

Süleyman AĞIRMAN 12345678911

Esra AĞIRMAN 12345678911

Furkan AĞIRMAN 12345678911

Bahar KAYA 12345678911

Rozalin KAYA 12345678911

Zeynep Kamile KAYA 12345678911

 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
dosyayı incele
 

Ekli dosyalar

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Merhaba,
Kod:
=ARA(9,99999999999999E+307;--SAĞDAN(A2;SATIR($1:$1024)))
deneyiniz.
 

Mikdad

Altın Üye
Katılım
5 Ocak 2006
Mesajlar
333
Excel Vers. ve Dili
365 Türkçe
Altın Üyelik Bitiş Tarihi
26-10-2026
Hocam bu şekilde sıkıntısız ayırdı. peki adı soyadı ve tc sini 3 parçaya bölebilir miyiz.
yani adı ayrı sutunda soyadı ayrı sutunda tc si ayrı sutunda.
 

Mikdad

Altın Üye
Katılım
5 Ocak 2006
Mesajlar
333
Excel Vers. ve Dili
365 Türkçe
Altın Üyelik Bitiş Tarihi
26-10-2026
Ekte Şablonu Sunuyorum. daha iyi anlaşılır.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
B2 formülü:

=KIRP(EĞER(UZUNLUK(KIRP(A2))-UZUNLUK(YERİNEKOY(KIRP(A2);" ";""))<2;SOLDAN(KIRP(A2);BUL(" ";KIRP(A2))-1);SOLDAN(KIRP(A2);BUL(" ";KIRP(A2);BUL(" ";KIRP(A2))))))

C2 formülü:

=KIRP(YERİNEKOY(YERİNEKOY(KIRP(A2);B2;"");D2;""))

D2 formülü:

=SAĞDAN(KIRP(A2);11)*1

E2 formülü:

=KIRP(B2&" "&C2)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub adSoyadTcAyir()
    For i = 2 To Cells(Rows.Count, 1).End(3).Row
        ver = Split(Cells(i, "A"), " ")
        tc = ver(UBound(ver))
        ad = ""
        If UBound(ver) = 2 Then
            ad = ver(0)
            soyad = ver(1)
        Else
            For ii = 0 To UBound(ver) - 2
                ad = ad & ver(ii) & " "
            Next ii
            ad = Trim(ad)
            soyad = ver(UBound(ver) - 1)
        End If
        adSoyad = ad & " " & soyad
        Cells(i, "B") = ad
        Cells(i, "C") = soyad
        Cells(i, "D") = tc
        Cells(i, "E") = adSoyad
    Next
End Sub
 

Mikdad

Altın Üye
Katılım
5 Ocak 2006
Mesajlar
333
Excel Vers. ve Dili
365 Türkçe
Altın Üyelik Bitiş Tarihi
26-10-2026
Veyselemre hocam Allah Razı Olsun tam istediğim gibi . başka arkadaşların da ihtiyacı olur diye son şablonu paylaşıyorum. yüreğinize sağlık
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bir kod da ben yazmıştım alternatif olsun

PHP:
Sub aktar()

sayf1 = "Rapor"

Worksheets(sayf1).Range("B2:E" & Rows.Count).ClearContents

For r = 2 To Worksheets(sayf1).Cells(Rows.Count, "A").End(3).Row
aranan = Trim(Worksheets(sayf1).Cells(r, "A").Value)
deg1 = Split(aranan, " ")

If UBound(deg1) = 4 Then
Cells(r, 2).Value = deg1(0) & " " & deg1(1)
Cells(r, 3).Value = deg1(2) & " " & deg1(3)
Cells(r, 4).Value = deg1(4)
Cells(r, 5).Value = deg1(0) & " " & deg1(1) & " " & deg1(2) & " " & deg1(3)
GoTo atla2
MsgBox "Bu kişinin iki adı ve iki soyadı var "
End If


If UBound(deg1) > 2 Then GoTo atla1
If UBound(deg1) > 0 Then
For j = 0 To UBound(deg1)
Cells(r, j + 2).Value = deg1(j)
Next j
Cells(r, 5).Value = deg1(0) & " " & deg1(1)

GoTo atla2
atla1:

msg1 = MsgBox(aranan & Chr(10) & Chr(10) & "İki isim için       EVET  tıklayınız. " & Chr(10) & Chr(10) & _
"İki Soyad için   HAYIR  tıklayınız. ", vbYesNo + vbInformation, "u y a r ı !")

If msg1 = vbYes Then
Cells(r, 2).Value = deg1(0) & " " & deg1(1)
Cells(r, 3).Value = deg1(2)
Cells(r, 4).Value = deg1(3)
Cells(r, 5).Value = deg1(0) & " " & deg1(1) & " " & deg1(2)
End If

If msg1 = vbNo Then
Cells(r, 2).Value = deg1(0)
Cells(r, 3).Value = deg1(1) & " " & deg1(2)
Cells(r, 4).Value = deg1(3)
Cells(r, 5).Value = deg1(0) & " " & deg1(1) & " " & deg1(2)
End If

atla2:
atla3:
End If


Next r
MsgBox " Düzenleme Tamanlanmıştır..."

End Sub


Yeni Bit Eşlem Resmi (3).jpg
 

Ekli dosyalar

Son düzenleme:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Formül yada makro kullanmadan Hızlı Doldurma ile yapabilirsiniz. Ben denedim çalıştı.
İlk 2 satırı elle yazın daha sonra hızlı doldurma'ya tıklayın.
 
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Dosyanız.
 

Ekli dosyalar

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Kod:
Sub adSoyadTcAyir()
    For i = 2 To Cells(Rows.Count, 1).End(3).Row
        ver = Split(Cells(i, "A"), " ")
        tc = ver(UBound(ver))
        ad = ""
        If UBound(ver) = 2 Then
            ad = ver(0)
            soyad = ver(1)
        Else
            For ii = 0 To UBound(ver) - 2
                ad = ad & ver(ii) & " "
            Next ii
            ad = Trim(ad)
            soyad = ver(UBound(ver) - 1)
        End If
        adSoyad = ad & " " & soyad
        Cells(i, "B") = ad
        Cells(i, "C") = soyad
        Cells(i, "D") = tc
        Cells(i, "E") = adSoyad
    Next
End Sub
Yunus emre hocam örneğin HASAN HÜSEYİN BARAN gibi formatlarda kayma oluyor buna bir çözüm bilabilirmiyiz
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Kod:
Sub adSoyadTcAyir()
    For i = 2 To Cells(Rows.Count, 1).End(3).Row
        ver = Split(Cells(i, "A"), " ")
        tc = ver(UBound(ver))
        ad = ""
        If UBound(ver) = 2 Then
            ad = ver(0)
            soyad = ver(1)
        Else
            For ii = 0 To UBound(ver) - 2
                ad = ad & ver(ii) & " "
            Next ii
            ad = Trim(ad)
            soyad = ver(UBound(ver) - 1)
        End If
        adSoyad = ad & " " & soyad
        Cells(i, "B") = ad
        Cells(i, "C") = soyad
        Cells(i, "D") = tc
        Cells(i, "E") = adSoyad
    Next
End Sub
Veysel emre hocam format şu şekilde olursa 12345678911 ALİ AKDENİZ ve 123456789011 HASAN HUSEYİN BARAN makroyu nasıl revize etmemiz gerekiyor
 

muzaffer.sm

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
372
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 TR
Altın Üyelik Bitiş Tarihi
07-12-2024
Bir alternatif kodda ben vereyim.
Sabitleşmiş bir fonksiyon.

Public Function SplitText1(hwRng As Range, pIsNumber As Boolean) As String

Dim xLen As Long
Dim xStr As String
xLen = VBA.Len(hwRng.Value)
For i = 1 To xLen
xStr = VBA.Mid(hwRng.Value, i, 1)
If ((VBA.IsNumeric(xStr) And pIsNumber) Or (Not (VBA.IsNumeric(xStr)) And Not (pIsNumber))) Then
SplitText1 = SplitText1 + xStr
End If
Next
End Function

a2 ve sonrasındaki verilerin olduğuna göre

=SplitText(A2;0) B sütuna isim gelir B sütununda formülu uygulayın.
=SplitText(A2;1) c sütuna isim TC ler gelir. C sütununda olmak üzere formülü uygulayın




 
 
Üst