• DİKKAT

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

Ad ve Soyadı ayırmak

  • Konbuyu başlatan Konbuyu başlatan Mikdad
  • Başlangıç tarihi Başlangıç tarihi

Mikdad

Altın Üye
Katılım
5 Ocak 2006
Mesajlar
333
Excel Vers. ve Dili
365 Türkçe
S.a Dostlarım benim excell de bir listem var

aynı hücrede ad ve soyad yazmışım

örnek

a5 hücresinde Ali ACAR diye yazmışım
şimdi ben ad kısmını A5 soyadını ise B5 hücresine almak istiyorum

bunun için nasıl bir formul kullanmalıyım yardımcı olurmusunuz lüğtfen
 
tamamdır allah razı olsun hakkınızı helal edin
 
Arkadaşlar iyi akşamlar,
Aşağıdaki kodlar ile isim soyisimleri ayırabiliyoruz.
Ancak benim istediğim isim soyismin Sayfa1'de B15 de ve sonraki satırlarda olduğunu varsayarsak ve Sayfa2'de D18 ve sonraki satırlara adını, E18 ve sonraki satırlara ise soyisimleri aktarmak istiyorum kodlarda nasıl bir değişiklik yapabilirim.

Teşekkürler.
Sub soyad_ayir()
Columns("B:C").ClearContents
For i = 1 To Cells(65536, 1).End(xlUp).Row
a = Split(Cells(i, 1), " ")
For j = 0 To UBound(a) - 1
Cells(i, 2) = Trim(Cells(i, 2) & " " & a(j))
Next j
Cells(i, 3) = Trim(a(UBound(a)))
Next i
End Sub
 
Şunu denermisiniz...

Kod:
Sub soyad_ayir()
Sheets("Sayfa2").Range("d18:e65536").ClearContents
For i = 15 To Cells(65536, 2).End(xlUp).Row
a = Split(Cells(i, 2), " ")
For j = 0 To UBound(a) - 1
Sheets("Sayfa2").Cells(i + 3, 4) = Trim(Cells(i, 2) & " " & a(j))
Next j
Sheets("Sayfa2").Cells(i + 3, 5) = Trim(a(UBound(a)))
Next i
    MsgBox "İşlem Tamamlanmıştır...", vbExclamation, "Mustafa MUTLU 0 533 740 45 49"
End Sub
 
Mustafa Bey Teşekkürler,
Sonuç:

Mustafa MUTLU Mustafa" " MUTLU
Mehmet Ali BİRAND Ali" "BİRAND

kodları incelerseniz sevinirim.
 
Denermisiniz.
Kod:
Sub soyad_ayir()
Sheets("Sayfa2").Range("d18:e65536").ClearContents
For i = 15 To Cells(65536, 2).End(xlUp).Row
a = Split(Cells(i, 2), " ")
For j = 0 To UBound(a) - 1
Sheets("Sayfa2").Cells(i + 3, 4) = a(j)
Next j
Sheets("Sayfa2").Cells(i + 3, 5) = Trim(a(UBound(a)))
Next i
MsgBox "İşlem Tamamlanmıştır...", vbExclamation, "Mustafa MUTLU 0 533 740 45 49"
End Sub
 
Son düzenleme:
Zorbey denedim ancak iki isimli olan kişilerin ilk isimlerini aktarmıyor. Teşekkürler ilginize.
 
Zorbey emekleriniz için teşekkürler, dosyadaki kodlarda ön ismi olan kişileri örnek, Mustafa Kemal ATATÜRK isminin; Mustafa isim olarak Kemal ATATÜRK ise soy isim olarak ayırıyor. İncelerseniz sevinirim.
 
Alternatif kod:

Kod:
Sub ayir()

sat = 2
sut = "a"
For r = 2 To Cells(Rows.Count, sut).End(3).Row
deg1 = Split(WorksheetFunction.Trim(Cells(r, sut).Value), " ")
deg2 = Split(WorksheetFunction.Trim(Cells(r, sut).Value), ")")
deg3 = Split(WorksheetFunction.Trim(Cells(r, sut).Value), "(")
son = ""
say1 = ""
say2 = ""
son = UBound(deg1)

If son = 0 Then
say1 = deg1(0)

ElseIf son = 1 Then
say1 = deg1(0)
say2 = deg1(1)
ElseIf son = 2 Then

If UBound(deg2) > 0 Or UBound(deg3) > 0 Then
say1 = deg1(0)
say2 = deg1(1) & " " & deg1(2)
Else
say1 = deg1(0) & " " & deg1(1)
say2 = deg1(2)
End If
ElseIf son = 3 Then
say1 = deg1(0) & " " & deg1(1)
say2 = deg1(2) & " " & deg1(3)

ElseIf son > 3 Then
say1 = "İkiden fazla isim var"
say2 = "İkiden fazla soy isim var"
End If

Cells(sat, "b").Value = say1
Cells(sat, "c").Value = say2
sat = sat + 1
Next

End Sub


Kod:
Function isim_ayir(isim)
If isim = "" Then
isim_ayir = ""
Exit Function
End If


deg1 = Split(WorksheetFunction.Trim(isim), " ")
deg2 = Split(WorksheetFunction.Trim(isim), ")")
deg3 = Split(WorksheetFunction.Trim(isim), "(")

say1 = ""
say2 = ""

son = UBound(deg1)

If son = 0 Then
say1 = deg1(0)
ElseIf son = 1 Then
say1 = deg1(0)

ElseIf son = 2 Then
If UBound(deg2) > 0 Or UBound(deg3) > 0 Then
say1 = deg1(0)
Else
say1 = deg1(0) & " " & deg1(1)
End If
ElseIf son = 3 Then
say1 = deg1(0) & " " & deg1(1)

ElseIf son > 3 Then
say1 = "İkiden fazla isim var"
End If
isim_ayir = say1

End Function

Kod:
Function soyad_ayir(isim)
If isim = "" Then
soyad_ayir = ""
Exit Function
End If
deg1 = Split(WorksheetFunction.Trim(isim), " ")
deg2 = Split(WorksheetFunction.Trim(isim), ")")
deg3 = Split(WorksheetFunction.Trim(isim), "(")

say1 = ""
say2 = ""
son = UBound(deg1)
If son = 1 Then
say2 = deg1(1)
ElseIf son = 2 Then
If UBound(deg2) > 0 Or UBound(deg3) > 0 Then
say2 = deg1(1) & " " & deg1(2)
Else
say2 = deg1(2)
End If
ElseIf son = 3 Then
say2 = deg1(2) & " " & deg1(3)
ElseIf son > 3 Then
say2 = "İkiden fazla soy isim var"
End If

soyad_ayir = say2

End Function
 
Zorbey; sitede gerekli araştırmaları yaptıktan, bulamadığım için sorma ihtiyacı hissettim. Verdiğiniz linkteki Necdet beyin dosyasındaki kodları yazarak sordum zaten. O kodlarla aydı sayfada yapılabiliyor. Bana farklı sayfalarda lazım.
Halit bey; sizin kodlarda Zorbeyin kodları gibi ön isim olan kişilerde örn: Mehmet Ali Birand 'ı Mehmet isim hanesinde kalıyor Ali BİRAND soyisim olarak atıyor.
Kodları incelerseniz sevinirim. Her ikinize de emekleriniz için Teşekkürler.
 
Teşekkürler Zorbey,Elinize sağlık.Tam istediğim gibi
 
Kolay gelsin iyi çalışmalar.
 
Zorbey; sitede gerekli araştırmaları yaptıktan, bulamadığım için sorma ihtiyacı hissettim. Verdiğiniz linkteki Necdet beyin dosyasındaki kodları yazarak sordum zaten. O kodlarla aydı sayfada yapılabiliyor. Bana farklı sayfalarda lazım.
Halit bey; sizin kodlarda Zorbeyin kodları gibi ön isim olan kişilerde örn: Mehmet Ali Birand 'ı Mehmet isim hanesinde kalıyor Ali BİRAND soyisim olarak atıyor.
Kodları incelerseniz sevinirim. Her ikinize de emekleriniz için Teşekkürler.

Bu isim tamammen hayal ürünüdür

örnek : Emine YALÇIN (AKSOY)

iki soyadı olan kişileri nasıl ayırmasını bekliyosunuz.
 
Bu kod iki soy ismi kullanılanlarla ilgili eğer ikinci soy ismi parantez içinde yazılmışsa ayırımı doğru olarak yapmaktadır.

kod:

Kod:
Sub ayir()
sat = 18
For r = 15 To Worksheets("Sayfa1").Cells(Rows.Count, "b").End(3).Row
deg1 = Split(WorksheetFunction.Trim(Worksheets("Sayfa1").Cells(r, "b").Value), " ")
deg2 = Split(WorksheetFunction.Trim(Worksheets("Sayfa1").Cells(r, "b").Value), ")")
deg3 = Split(WorksheetFunction.Trim(Worksheets("Sayfa1").Cells(r, "b").Value), "(")
son = ""
say1 = ""
say2 = ""

son = UBound(deg1)
If son = 0 Then
say1 = deg1(0)
ElseIf son = 1 Then
say1 = deg1(0)
say2 = deg1(1)
ElseIf son = 2 Then
If UBound(deg2) > 0 Or UBound(deg3) > 0 Then
say1 = deg1(0)
say2 = deg1(1) & " " & deg1(2)
Else
say1 = deg1(0) & " " & deg1(1)
say2 = deg1(2)
End If
ElseIf son = 3 Then
say1 = deg1(0) & " " & deg1(1)
say2 = deg1(2) & " " & deg1(3)

ElseIf son > 3 Then
say1 = "İkiden fazla isim var"
say2 = "İkiden fazla soy isim var"
End If

Worksheets("Sayfa2").Cells(sat, "d").Value = say1
Worksheets("Sayfa2").Cells(sat, "e").Value = say2
sat = sat + 1
Next

End Sub
 
Halit bey Teşekkürler emekleriniz için. Haklısınız, hiç o yanını düşünmemiştim.
 
Geri
Üst