- Katılım
- 24 Temmuz 2019
- Mesajlar
- 484
- Excel Vers. ve Dili
- EXCEL 2010 TÜRKÇE
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub AdSoyad()
Dim Veri
Dim ArrAd(), ArrSoyad()
Veri = Range("A2:A" & Range("A" & Rows.Count).End(3).Row).Value
ReDim Liste(1 To UBound(Veri), 1 To 2)
For i = 1 To UBound(Veri)
Kelimeler = Split(Trim(Veri(i, 1)), " ")
adsay = 0: soyadsay = 0
For k = 0 To UBound(Kelimeler)
Bak = Kelimeler(k)
Bak = Replace(Replace(Replace(Replace(Replace(Replace(Bak, "Ç", "C"), "İ", "I"), "Ğ", "G"), "Ö", "O"), "Ş", "S"), "Ü", "U")
Bak = Replace(Replace(Replace(Replace(Replace(Replace(Bak, "ç", "c"), "ğ", "g"), "ı", "i"), "ö", "o"), "ş", "s"), "ü", "u")
If Left(Bak, 2) Like "[A-Z][a-z]" Then
adsay = adsay + 1
ReDim Preserve ArrAd(1 To adsay)
ArrAd(adsay) = Kelimeler(k)
Else
soyadsay = soyadsay + 1
ReDim Preserve ArrSoyad(1 To soyadsay)
ArrSoyad(soyadsay) = Kelimeler(k)
End If
Next k
Liste(i, 1) = Join(ArrAd, " ")
Liste(i, 2) = Join(ArrSoyad, " ")
Next i
Range("B2").Resize(UBound(Liste), 2) = Liste
End Sub
Function KHKSay(dym As String) As Integer
Dim pdizi() As String
pdizi = Split(dym, " ")
Dim I As Integer
Dim Say As Integer
Dim klm As String
Say = 0
For I = LBound(pdizi) To UBound(pdizi)
klm = pdizi(I)
If klm <> UCase(klm) And Len(klm) >= 2 Then
Say = Say + 1
End If
Next
KHKSay = Say
End Function
Function BHKSay(dym As String) As Integer
Dim pdizi() As String
pdizi = Split(dym, " ")
Dim I As Integer
Dim Say As Integer
Dim klm As String
Say = 0
For I = LBound(pdizi) To UBound(pdizi)
klm = pdizi(I)
If klm = UCase(klm) And Len(klm) >= 2 Then
Say = Say + 1
End If
Next
BHKSay = Say
End Function
İsimleri Ayırmak İçin: =EĞER(UZUNLUK(B2)-UZUNLUK(YERİNEKOY(B2;" ";""))=1;SOLDAN(B2;BUL(" ";B2));EĞER(UZUNLUK(B2)-UZUNLUK(YERİNEKOY(B2;" ";""))=2;SOLDAN(B2;BUL(" ";B2;BUL(" ";B2)+1));EĞER(UZUNLUK(B2)-UZUNLUK(YERİNEKOY(B2;" ";""))=3;SOLDAN(B2;BUL(" ";B2;BUL(" ";B2)+10)))))
Soyadları Ayırmak İçin:=EĞER(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" ";""))=1;SAĞDAN(B3;UZUNLUK(B3)-BUL(" ";B3));EĞER(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" ";""))=2;SAĞDAN(B3;UZUNLUK(B3)-BUL(" ";B3;BUL(" ";B3)+1));SAĞDAN(B3;UZUNLUK(B3)-BUL(" ";B3;BUL(" ";B3)+10))))
Evet İdris Hocam çok haklısınız. Excel böyle bir şey farkındayım ama acaba böyle bir "anahtar" verilebilir mi diye düşündüm..
Tüm soyadların ister büyük ister küçük bir listesi varsa kolay bir şekilde olur. Aksi takdirde, Excel sözcük veya sözcüklerin hangisi soyadı olduklarını bilmez. Excel'e bir tanıtım anahtarı vermek gerekir.
.