Çözüldü İsimlerden Sonra Gelen İyelik Eklerini Bulan Fonksiyon

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
111
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Merhaba,
Yapmak isteğim isimlerin sonra gelen iyelik eklerini bulan bir kullanıcı tanımlı fonksiyon yazmak.
Örneğin Eren Demir'in derken -in ekini bulan bir fonksiyon.

Kelimenin son üç harfinde A harfi varsa ve bu durumda A harfi sonda ise -nın eki, sonda değilse -ın eki;
Kelimenin son üç harfinde E harfi varsa ve bu durumda E harfi sonda ise -nin eki, sonda değilse -in eki;
Kelimenin son üç harfinde İ harfi varsa ve bu durumda İ harfi sonda ise -nin eki, sonda değilse -in eki;
.....
Bu fonksiyonu son üç harfte for döngüsüyle döndürerek yaptım(sadece büyük harfler için) ancak uzun oldu.
find, right fonksiyonlarıyla(veya başka fonksiyonlarla) ve büyük küçük tüm Türkçe sesli harfler için bir fonksiyon olmasını istiyorum.
Yardımcı olabilir misiniz
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,849
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Teşekkürler Sayın Turist
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
111
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Teşekkürler, buradaki formülü kullanıcı tanımlı fonksiyona dönüştürebilir misiniz?(formüllerin ingilizce karşılıklarını yazarak koda dönüştürmeye çalışıyorum hata veriyor)
 
Son düzenleme:

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Kod:
=B5&"'"&CHOOSE(MATCH(1;--ISNUMBER(MATCH(MID(B5;LEN(B5)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0));0);"n";"";"")&CHOOSE(INDEX(MATCH(MID(B5;LEN(B5)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0);MATCH(1;--ISNUMBER(MATCH(MID(B5;LEN(B5)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0));0));"ın";"in";"ın";"in";"un";"ün";"un";"ün")
deneyin.
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
111
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Cevabınız için teşekkürler,
Kod:
Function ek(str As String) As String
ek=CHOOSE(MATCH(1;--ISNUMBER(MATCH(MID(str;LEN(str)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0));0);"n";"";"")&CHOOSE(INDEX(MATCH(MID(str;LEN(str)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0);MATCH(1;--ISNUMBER(MATCH(MID(str;LEN(str)-{0;1;2};1);{"a";"e";"ı";"i";"o";"ö";"u";"ü"};0));0));"ın";"in";"ın";"in";"un";"ün";"un";"ün")
End Function
Bu kısım çalışması için nasıl düzenlenmeli?(Bu haliyle hata veriyor)
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Alternatif KTF olsun.
Ekler, hal ekleri, ilgi ekleri vb için özelleştirilebilir.
Kod:
Function EKEKLE(kelime As String, ayrac As String) As String
kokler = Array("*a", "*e", "*ı", "*i", "*o", "*ö", "*u", "*ü", _
                "*A", "*E", "*I", "*İ", "*O", "*Ö", "*U", "*Ü", _
                "*a?", "*e?", "*ı?", "*i?", "*o?", "*ö?", "*u?", "*ü?", _
                "*A?", "*E?", "*I?", "*İ?", "*O?", "*Ö?", "*U?", "*Ü?", _
                "*a??", "*e??", "*ı??", "*i??", "*o??", "*ö??", "*u??", "*ü??", _
                "*A??", "*E??", "*I??", "*İ??", "*O??", "*Ö??", "*U??", "*Ü??")
ekler = Array("nın", "nin", "nın", "nin", "nun", "nün", "nun", "nün", _
                "NIN", "NİN", "NIN", "NİN", "NUN", "NÜN", "NUN", "NÜN", _
                "ın", "in", "ın", "in", "un", "ün", "un", "ün", _
                "IN", "İN", "IN", "İN", "UN", "ÜN", "UN", "ÜN", _
                "ın", "in", "ın", "in", "un", "ün", "un", "ün", _
                "IN", "İN", "IN", "İN", "UN", "ÜN", "UN", "ÜN")
For a = LBound(kokler) To UBound(kokler)
    If kelime Like kokler(a) Then
        EKEKLE = kelime & ayrac & ekler(a)
        Exit For
    End If
Next
End Function
=EKEKLE(A1;"'")
İyi çalışmalar...
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
111
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Teşekkürler
 
Üst