Ön ad - ad ve soyadını ayırarak yan hücreye aktarma

Katılım
23 Ağustos 2004
Mesajlar
3
Ã?n ad - ad ve soyadını ayırarak yan hücreye aktarma

Slm;

a1 hücresinde adı ve soyadları boşlukla ayrılmış kişi adları bulunmaktadır. Kişi adları bazen iki addan, bazen de tek addan oluşmaktadır. Sorun, bu kişi adlarını ad ve soyadlarına göre iki farklı sütüna ayırmaktır.
Ã?rneğin,
1)- A1 hücresinde yazılı olan "Melih Cevdet Anday" ismi, b1 hücresine"Melih Cevdet" olarak, c1 hücresine de "Anday" olarak yazılacaktır.
ya da
2-) A1 hücresinde yazılı olan "M. Cevdet Anday" ismi, b1 hücresine "M.Cevdet" olarak, c1 hücresine de "Anday" olarak yazılacaktır.

yardımlarınızı rica ediyorum.
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba

Bununla ilgili Raiderin çok güzel bir kodu vardı.Maalesef benim Laptop çalındığı için size kodu aktaramayacağım. Ama mutlaka birilerinin veya kendisinin arşivinde vardır.

İyi Çalışmalar
 
G

Guest

Misafir
Merhaba ArcMacdom


Fonksiyonlarala size bir çözüm bulabildim umarım işinize yarar.A2 hücresinde isim olduğunu varsayarsak.

B2 hücresine aşağıdaki formulu yazın
Kod:
=MID(A2;1;LEN(A2)-LEN(C2))
C2 hücresinde ise
Kod:
=IF(TYPE(FIND(" ";(MID(A2;FIND(" ";A2)+1;LEN(A2)))))=16;RIGHT(A2;LEN(A2)-FIND(" ";A2));MID(A2;(FIND(" ";(MID(A2;FIND(" ";A2)+1;LEN(A2)))))+(FIND(" ";A2));LEN(A2)))
formulunu yazarak isteğinizi karşılayabilirsiniz.Biraz zor oldu ama şimdi oldu.

:hihoho: :hihoho: :hey:
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,534
Excel Vers. ve Dili
Excel 2010 - Türkçe
Selam,
soyadı için olan formülü denedim.
Ad için olanı sanırım bundan çıkarırsınız.
Bazı küçük değişiklikler gerekebilir ancak fikir vermesi açısından formülü ekliyorum.

=IF(ISERROR(SEARCH(" ";A1;SEARCH(" ";A1)+1));IF(ISERROR(SEARCH(" ";A1));A1;MID(A1;SEARCH(" ";A1)+1;LEN(A1)-SEARCH(" ";A1)+1));MID(A1;SEARCH(" ";A1;SEARCH(" ";A1)+1)+1;LEN(A1)-SEARCH(" ";A1;SEARCH(" ";A1)+1)))
 
Katılım
3 Ağustos 2004
Mesajlar
87
Function syadi(isim As String)
On Error Resume Next
Dim i, x, a, ii, xx, aa As Integer
Dim sd, ax As String
a = Len(isim)
If Val(a) < 1 Then syadi = ""
For i = a To 1 Step -1
If Mid(isim, i, 1) = Chr(32) Then Exit For
x = x + 1
Next
sd = Trim(UCase(Mid(isim, (a - x), x + 1)))
'......
For ii = a To 1 Step -1
If Mid(isim, ii, 1) = Chr(32) Then Exit For
xx = xx + 1
Next
ax = StrConv(Trim(Mid(isim, 1, (a - xx))), vbProperCase)
'....
syadi = sd & Chr(32) & ax
End Function
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Makrolu yöntemi biraz kısaltmak istersek

Kod:
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) = Cells(i, 2) & " " & a(j)
    Next j
    Cells(i, 3) = a(UBound(a))
Next i
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
danke schön :p

ayrıca yukarıdaki kod ile birisinin ismi ve soyismi 3 veya daha fazla kelimeden oluşuyorsa da işe yarar.
 
X

xxrt

Misafir
Danke Schön?? Benim Y.Dilimde Deutsch.. :hihoho: :hey: :lol: AufWiederschen :hey:
 
Üst