Excel formülü: Adın soyadını alın -

İçindekiler

Genel formül

=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))

Özet

Soyadını tam bir addan çıkarmanız gerekiyorsa, bunu birkaç işlev kullanan bu oldukça karmaşık formülle yapabilirsiniz. Formülün genel biçiminde (yukarıda), ad, adın diğer bölümlerinden ilk adı ayıran bir boşlukla birlikte tam bir addır.

Örnekte, aktif hücre şu formülü içerir:

=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))

Açıklama

Temelde, bu formül sağdan başlayarak karakterleri ayıklamak için SAĞ işlevini kullanır. Bu formülün karmaşık bölümünü oluşturan diğer işlevler sadece bir şey yaparlar: Kaç karakterin çıkarılması gerektiğini hesaplarlar.

Yüksek düzeyde formül, addaki son boşluğu yıldız işareti "*" ile değiştirir ve ardından addaki yıldız işaretinin konumunu belirlemek için FIND'ı kullanır. Konum, SAĞ ile kaç karakterin ayıklanacağını hesaplamak için kullanılır.

İşlev yalnızca son boşluğu nasıl değiştirir? Bu akıllıca kısımdır.

Kemerinizi bağlayın, açıklama biraz teknik hale geliyor.

Bu formülün anahtarı şu bit:

SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))

Son boşluğun gerçek yerini "*" ile değiştirir.

SUBSTITUTE, bul metninin hangi "örneğinin" değiştirilmesi gerektiğini belirten dördüncü (isteğe bağlı) bir argümana sahiptir. Bu bağımsız değişken için hiçbir şey sağlanmadıysa, tüm örnekler değiştirilir. Ancak, diyelim ki 2 sayısı sağlanmışsa, yalnızca ikinci örnek değiştirilir. Yukarıdaki ön bilgide örnek, ikinci SUBSTITUTE kullanılarak hesaplanır:

LEN(B4)-LEN(SUBSTITUTE(B4," ",""))

Burada, adın boşluksuz uzunluğu, adın gerçek uzunluğundan çıkarılır. İsimde yalnızca bir boşluk varsa, 1 üretir. İki boşluk varsa, sonuç 2'dir ve bu böyle devam eder.

B4'teki örnek adda, adda iki boşluk vardır, dolayısıyla şunu elde ederiz:

15 - 13 = 2

Örnek numarasında olduğu gibi iki kullanılır:

SUBSTITUTE(B4," ","*",2)

ikinci boşluğu "*" ile değiştirir. İsim daha sonra şuna benzer:

"Susan Ann * Chang"

FIND işlevi daha sonra "*" işaretinin adın neresinde olduğunu bulmak için devreye girer:

FIND("*", "Susan Ann*Chang")

Sonuç, ismin toplam uzunluğundan çıkarılan 10'dur (* 10. konumdadır):

LEN(B4)-10

İsim 15 karakter olduğu için bizde:

15-10 = 5

5 rakamı SAĞ tarafından şu şekilde kullanılır:

=RIGHT(B4,5)

Hangi "Chang" ile sonuçlanır?

Gördüğünüz gibi, bu basit 5'i hesaplamak yukarıda çok iş var!

Tutarsız alanların ele alınması

Fazladan boşluklar bu formülde sorunlara neden olacaktır. Çözümlerden biri, önce işleri temizlemek için KIRP işlevini kullanmak, ardından ayrıştırma formülünü kullanmaktır.

Ilginç makaleler...