Harf kelimenin sonunda mı?

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba
Hücrede yer alan herhangi bir harfin kelimenin sonunda olup olmadığını Fonksiyon ile nasıl kontol edebilirz?

He said that that was the the correct answer. This is a short sentence.

hücrede bu cümle yazılı, burada bir harfi aratıyor,
örnek olarak; "r" bu r harfinin burada herhangi bir kelimenin son harfi olma koşuluyla var mı yada yok mu? olma durumunu aramaktayım.

teşekkürler,
iyi çalışmalar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Fonksiyon istemişsiniz ama KTF (kullanıcı tanımlı fonksiyon) daha kullanışlı olabilir.

Büyük-Küçük harf duyarlılığı olacak mı?
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Şöyle basit bir çözüm önerebilirim. Belirtilen harf r olduğunu düşürsek ararken r- gibi yazın, varsa kaçıncı karakterde olduğunu söyleyecektir.
Hata vermez ve sıfırdan büyük bir sayı gelirse var olduğu anlamına gelir.
C#:
=MBUL("r-";YERİNEKOY(YERİNEKOY(A1;" ";"-");".";"-"))
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Fonksiyon istemişsiniz ama KTF (kullanıcı tanımlı fonksiyon) daha kullanışlı olabilir.

Büyük-Küçük harf duyarlılığı olacak mı?
Korhan hocam Büyük-Küçük harf duyarlılığı olmayabilir,
Kolay gelsin.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Şöyle basit bir çözüm önerebilirim. Belirtilen harf r olduğunu düşürsek ararken r- gibi yazın, varsa kaçıncı karakterde olduğunu söyleyecektir.
Hata vermez ve sıfırdan büyük bir sayı gelirse var olduğu anlamına gelir.
C#:
=MBUL("r-";YERİNEKOY(YERİNEKOY(A1;" ";"-");".";"-"))
Murat Hocam bu durumu kullanıcı tanımlı fonksiyon olarak nasıl yazabiliriz?

teşekkürler, iyi çalışmalar.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Öncelikle çözüm oldu mu onu bilmek isterim.
Sonrasında, neden KTF'ye dönüştürmek istiyorsunuz?
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Güzel.. sevindim..
Özel bir sebebiniz yoksa o zaman bence KTF'ye gerek yok.

Kolay gelsin
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
İlk kelime, ikinci kelime dediğiniz nedir tam bilmiyorum.
Tam olarak kullandığınız dosya üzerinde ve net olarak yapmak istediğiniz gösterirseniz, biz de net çözümler sunalım, olur mu?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hazırladığım KTF ektedir.

Büyük-küçük harf duyarlı değildir.

Örnek kullanım; =HARF_KONTROL(A1;"r")


C++:
Option Explicit

Function HARF_KONTROL(Alan As Range, Aranan_Harf As Variant) As Boolean
    Dim Veri As Variant, X As Integer, Noktalama_Sembolleri As Variant
    
    Application.Volatile True
    
    Noktalama_Sembolleri = Array("...", ",", ";", ":", ".", "?", "!", """", "'", "(", ")", "-", "/", "—")
    
    Veri = Alan.Value
    
    For X = LBound(Noktalama_Sembolleri) To UBound(Noktalama_Sembolleri)
        Veri = Replace(Veri, Noktalama_Sembolleri(X), "")
    Next
    
    Veri = Split(Veri, " ")
    
    Aranan_Harf = UCase(Replace(Replace(Aranan_Harf, "ı", "I"), "i", "İ"))
    
    For X = LBound(Veri) To UBound(Veri)
        If UCase(Replace(Replace(Right(Veri(X), 1), "ı", "I"), "i", "İ")) = Aranan_Harf Then
            HARF_KONTROL = True
            Exit Function
        End If
    Next
End Function
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
İlk kelime, ikinci kelime dediğiniz nedir tam bilmiyorum.
Tam olarak kullandığınız dosya üzerinde ve net olarak yapmak istediğiniz gösterirseniz, biz de net çözümler sunalım, olur mu?
Murat Hocam selamlar,
He said that that was the the correct answer. This is a short sentence.

"A1" hücresinde bu şekilde cümle yazılı, gördüğünüz üzere burada 1' den çok kelime var. aranacak harf bu kelimelerin herhangi birinin sonunda olabilir.

sanırım anlatabilmişimdir.

iyi Çalışmalar.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Hazırladığım KTF ektedir.

Büyük-küçük harf duyarlı değildir.

Örnek kullanım; =HARF_KONTROL(A1;"r")


C++:
Option Explicit

Function HARF_KONTROL(Alan As Range, Aranan_Harf As Variant) As Boolean
    Dim Veri As Variant, X As Integer, Noktalama_Sembolleri As Variant
   
    Application.Volatile True
   
    Noktalama_Sembolleri = Array("...", ",", ";", ":", ".", "?", "!", """", "'", "(", ")", "-", "/", "—")
   
    Veri = Alan.Value
   
    For X = LBound(Noktalama_Sembolleri) To UBound(Noktalama_Sembolleri)
        Veri = Replace(Veri, Noktalama_Sembolleri(X), "")
    Next
   
    Veri = Split(Veri, " ")
   
    Aranan_Harf = UCase(Replace(Replace(Aranan_Harf, "ı", "I"), "i", "İ"))
   
    For X = LBound(Veri) To UBound(Veri)
        If UCase(Replace(Replace(Right(Veri(X), 1), "ı", "I"), "i", "İ")) = Aranan_Harf Then
            HARF_KONTROL = True
            Exit Function
        End If
    Next
End Function
Korhan hocam çok teşekkürler, beklediğim gibi çalışıyor.

aynı şekilde kelimenin başında olup olmadığını kontrol etmek için nasıl bir düzenleme yapılabilir?

Selamlar, Saygılar.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Formül bize; bu kelime içesinde "He-said-that-that-was-the-the-correct-answer--This-is-a-short-sentence-" r- 'nin kaçıncı karakterde olduğunu veriyor. Hangi kelimede olduğuna bakmak. 1. kelimede buluyor ama 2. kelimede bulmuyor gibi bir durum pek söz konusu olmaz. Bilginize.

Bakın aşağıda da r harfinin 44. karakterde olduğunu gösteriyor.
219543
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Formül bize; bu kelime içesinde "He-said-that-that-was-the-the-correct-answer--This-is-a-short-sentence-" r- 'nin kaçıncı karakterde olduğunu veriyor. Hangi kelimede olduğuna bakmak. 1. kelimede buluyor ama 2. kelimede bulmuyor gibi bir durum pek söz konusu olmaz. Bilginize.

Bakın aşağıda da r harfinin 44. karakterde olduğunu gösteriyor.
Ekli dosyayı görüntüle 219543
Murat Hocam şimdi tamam, öncekinde aranan alanda "r-" yazdığı için sorun olmuş,

=MBUL("r-";YERİNEKOY(YERİNEKOY(A1;" ";"-");".";"-"))

bu formülü vba içinde nasıl kullanabiliriz?

teşekkürler, kolay gelsin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod içinde Right yazan yeri Left olarak değiştirip kullanabilirsiniz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Murat Hocam şimdi tamam, öncekinde aranan alanda "r-" yazdığı için sorun olmuş,

=MBUL("r-";YERİNEKOY(YERİNEKOY(A1;" ";"-");".";"-"))

bu formülü vba içinde nasıl kullanabiliriz?

teşekkürler, kolay gelsin.
Merhaba,
Murat Hocam' ım vermiş olduğu yukarıdaki formülü ( =MBUL(.......................) aşağıda VBA ya dönüştürmeye çalıştım, fakat hata veriyor, nerede yanlış yapıyor olabilirm.

Teşekkürler,

Kod:
Dim sh As Worksheet
Dim Alan As String

Dim Ara As String, Aranan As String
Dim Sonuc As Variant

    Set sh = Sheets("Sayfa1")

    Alan = sh.Cells(1, 1)

   Ara = sh.Cells(1, 3)
   
   Aranan = Ara & "-"
    
    Formul = "=SEARCH(""" & Aranan & """, SUBSTITUTE(SUBSTITUTE(" & Alan & ", " & ",-" & "),." & ",-" & "))"

     Sonuc = Evaluate(Formul)
    
    MsgBox Sonuc
iyi Çalışmalar.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Evaluate etmeye gerek yok.
Direkt olarak FormulaLocal ile birebir Türkçe formülü aşağıdaki gibi kullanabilirsiniz.

Örnek;
C#:
Sub Varmi()
    Range("C1").FormulaLocal = "=MBUL(""r-"";YERİNEKOY(YERİNEKOY(A1;"" "";""-"");""."";""-""))"
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,111
Excel Vers. ve Dili
Office 2013 İngilizce
Evaluate etmeye gerek yok.
Direkt olarak FormulaLocal ile birebir Türkçe formülü aşağıdaki gibi kullanabilirsiniz.

Örnek;
C#:
Sub Varmi()
    Range("C1").FormulaLocal = "=MBUL(""r-"";YERİNEKOY(YERİNEKOY(A1;"" "";""-"");""."";""-""))"
End Sub
Murat hocam teşekkürler,
burada bir hücreye yazdırmadan sonucu almak ve bu sonucu başka alanlarda kullanmak için düşünmüştüm

bu şekilde yapılamaz mı?
iyi günler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi kullanabilirsiniz.

C++:
Option Explicit

Sub Test()
    Dim S1 As Worksheet, Alan As String, Aranan As String, Formul As String, Sonuc As Variant
   
    Set S1 = Sheets("Sayfa1")
   
    Alan = S1.Cells(1, 1)
    Aranan = S1.Cells(1, 3) & "-"
   
    Formul = "=SEARCH(""" & Aranan & """,SUBSTITUTE(SUBSTITUTE(""" & Alan & ""","" "",""-""),""."",""-""))"
   
    Sonuc = Evaluate(Formul)
   
    MsgBox Sonuc
End Sub
 
Üst