• DİKKAT

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

Ö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.
 
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
 
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:
 
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)))
 
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
 
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
 
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.
 
Danke Schön?? Benim Y.Dilimde Deutsch.. :hihoho: :hey: :lol: AufWiederschen :hey:
 
Geri
Üst