Yeni Nesil Excel Fonksiyonları ile Ad Soyad Ayırma

Kısa Açıklama

Yeni Nesil Excel Fonksiyonları ile Ad Soyad Ayırma isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Merhaba,

Excel'de aynı hücrede yer alan Ad ve Soyad bilgisini ayırmak için farklı farklı yöntemler kullanmaktayız. Yeni nesil dinamik dizi formüllerinden olan METİNBÖL ile bu işlem daha da kısa hale gelmiştir. Benim burada üzerinde durup, hep birlikte "Beyin Fırtınası" oluşturmak istediğim husus ise, bir kişinin 2 Adı 1 Soyadı ya da 2 Adı ve 2 Soyadı olması durumunda, ayrıştırmanın nasıl yapılacağı?

Yani:
A1 hücresinde Ayşe KAHRAMAN yazdığını düşünelim.
B2 hücresine: =METİNBÖL(A1;" ") yazacağımız bir formül Ad ve Soyad bilgisini ayıracaktır.

A1 hücresinde Ayşe Fatma KAHRAMAN ya da Ayşe Fatma KAHRAMAN TÜRKOĞLU yazdığımızda; B1 hücresinde doğru ayırma yapmak için nasıl bir formül yazılabilir.

Cevaplarınızı beklerim...
 
Bana göre, öncelikle Sorunun Netleştirilmesi gerekiyor...

Ayşe Fatma KAHRAMAN TÜRKOĞLU

Bunların hangileri AD, hangileri SOYAD...
Şahsen ben bilemedim. Dolayısıyla Excel nasıl bilecek...
Büyük Harf gibi bir kriter mi var? Ya da başka kriterler...

Örneğin
Veriler arasında
Ayşe Fatma Kahraman Türkoğlu şeklinde yazılanlar da bulunursa ne olacak
ya da Tersi
AYŞE FATMA KAHRAMAN TÜRKOĞLU
 
Haklısınız hocam, açıklama biraz yavan kalmış.
O zaman 3 kelimeyse ilk 2 kelime kesinlikle ad, 4 kelimeyse ilk 2 ad son 2 soyad diyelim.
Sabitimiz bu olsun. Bunun dışında kalanlar elbet olacak ama biz böyle dikkate alalım.
 
Bir çözüm

1665873659335.webp
 
Merhabalar sorudan anlaşıldığına göre eğer Ad-Soyad toplam 2 kelimeden oluşuyorsa isim TEK, kalanı soyisim..... Ad-Soyad toplam 2 kelimeden FAZLA oluşuyorsa isim 2 kelime, kalanı soyisim oluyor. Bu durumda bu da alternatif olsun.
Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
Ayrıca sorunun ilk soruluş şeklinden anladığım kadarıyla bütün büyük harflerle yazılanlar soyisim olarak ayrılsın geri kalanlar isim olarak ayrılsın gibi bir fikir yürütülebilir mi emin olamadım ama METİNBÖL(A1;" ") yapıldıktan sonra kelimeler sütunlara ayrılıyor. Her kelime için E1 yerine ayrılan kelimeler =BUL(DAMGA(SIRALI(26;;97));E1) formülüyle ayrıştırıldığında hepsi büyük harflerden oluşanlar sütun boyunca değer hatası döndürüyor. ama içinde tek bir küçükharf bile bulununca sayı olarak dönenler oluyor dolayısyla tamamı hata dönenler yanlış olarak dönürülüp içinde tek sayı geçenler bile doğru olarak dönürülüp doğrular metin birleştir ile soyisim sütununu oluştursa yanlışlar da metinbirleştir ile isim sütununu oluştursa.... yada ilk 2 harfi büyük olan kelimenin başlangıcındaki boşluk tespit edilip öncekiler isim sonrakiler soyisim gibi bir fikir de yürütülebilir mi diye düşündüm ama sadece düşündüm :)belki buradan boşa kürekleme oluyor ama Sn. @admin in Beyin Fırtınasını devam ettireyim istedim :)
 
Selamlar,
Ayrıca sorunun ilk soruluş şeklinden anladığım kadarıyla bütün büyük harflerle yazılanlar soyisim olarak ayrılsın geri kalanlar isim olarak ayrılsın gibi bir fikir yürütülebilir mi emin olamadım ama METİNBÖL(A1;" ") yapıldıktan sonra kelimeler sütunlara ayrılıyor. Her kelime için E1 yerine ayrılan kelimeler =BUL(DAMGA(SIRALI(26;;97));E1) formülüyle ayrıştırıldığında hepsi büyük harflerden oluşanlar sütun boyunca değer hatası döndürüyor. ama içinde tek bir küçükharf bile bulununca sayı olarak dönenler oluyor dolayısyla tamamı hata dönenler yanlış olarak dönürülüp içinde tek sayı geçenler bile doğru olarak dönürülüp doğrular metin birleştir ile soyisim sütununu oluştursa yanlışlar da metinbirleştir ile isim sütununu oluştursa.... yada ilk 2 harfi büyük olan kelimenin başlangıcındaki boşluk tespit edilip öncekiler isim sonrakiler soyisim gibi bir fikir de yürütülebilir mi diye düşündüm ama sadece düşündüm :)belki buradan boşa kürekleme oluyor ama Sn. admin Beyin Fırtınasını devam ettireyim istedim :)

Tamamı BÜYÜK Harf olanlar Soyadı olup diğerleri Ad olacak ise,

Yapıyı, DAMGA işleviyle oluşturduğunuzda, TÜRKÇE karakterleri de ayrıca değerlendirmek gerekir.

O nedenle Büyük Küçük Harf duyarlı olarak değerlendirilmesi için ÖZDEŞ işlevi daha uygun olacaktır.

Örnek verelim ....
İsim A2 de yazıyor olsun...

A2 : Mehmet Mustafa Kemal TÜRK OĞLU TÜRK Ahmet

Ad ve Soyad olarak ayrıştırdığımızda, Adı B2 ye ve Soyadı C2 ye yazalım.
Yani elde edilecek kısımlar şöyle olacak...

B2 : Mehmet Mustafa Kemal Ahmet
C2 : TÜRK OĞLU TÜRK

Adım.1

METİNBÖL(A2;" ")


işlemi ile ismi sütunlara bölelim.

MehmetMustafaKemalTÜRKOĞLUTÜRKAhmet

Adım.2

ÖZDEŞ("Mustafa";BüyükHarf("Mustafa")) YANLIŞ değeri döndürecek. Ama ÖZDEŞ("OĞLU";BüyükHarf("OĞLU")) DOĞRU değeri döndürecektir.
O halde bunu MAP dizi işleviyle değerlendirelim..

MAP(METİNBÖL(A2;" ");LAMBDA(s;--(ÖZDEŞ(s;BÜYÜKHARF(s)))))

formülü ile elde edilecek sonuç

0001110

Adım.3

MAP ile elde edilenleri METİNBİRLEŞTİR işlevi ile 2 parçada birleştirebiliriz.
ve bunu da METİNBÖL ile 2 parçaya ayırabiliriz.

Komple formülü yazarsak

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)

Bu durumda sonuç :

Mehmet Mustafa Kemal AhmetTÜRK OĞLU TÜRK

Not :
A2 de yazan ifadede her bir isim arasında 1 boşluk olarak varsayıldı. Aksi halde KIRP(A2) şeklinde yazılması gerekir.

Düzeltme : 12:55
Komple formülde, a ; A2 tanımlaması fazladan olmuş.... Kaldırılabilir....

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
 
Son düzenleme:
Çözüm
@52779 hocam damga işlevine ekstradan türkçe karakterlerin eklenmesi konuyu bayağı dolandırıyor dediğiniz gibi ÖZDEŞ işlevinin kullanılması çok daha yerinde oluyor. Ayrıca bu son formülünüz konuyu tam anlamıyla dinamik olarak noktalamış elinize sağlık
 
Alternatif.
A2'de Ad Soyad yazılı
B2' de Soyadın kaç kelime olduğu yazılı
olduğunu varsayarsak
Adı sadece baş harfler büyük, Soyadın tamamı büyük ve tek boşlukla ayrılmış olarak yazar.
Ad için C2'ye
Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
Soyad için D2'ye
Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
 
Geri
Üst