Soru Hücre içerisinde ilk küçük harf ile başlayan metni ve sonraki metni bulma

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Merhaba arkadaşlar, işin içinden çıkamadım. OKUL MÜDÜRLÜĞÜ Matematik Öğretmeni olarak A1 hücresinde veri olduğunu düşünün. Bu metin çok daha uzun ve içlerinde / karakteri daha fazla boşluklar vs olabilir. Benim istediğim. B1 hücresine İlk küçük harf ile başlayan metni ve sonraki metinleri almak. Yani Matematik Öğretmeni yazan kısmı. Nasıl Yaparım?
 
Katılım
11 Temmuz 2024
Mesajlar
294
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba, şu makroyu ekleyip;
Kod:
Function IlkKucukKelimeVeSonrasi(metin As String) As String
    Dim i As Long
    Dim j As Long
    Dim karakter As String
    Dim ilkKucukHarfPozisyon As Long
    Dim kelimeBaslangicPozisyon As Long
    
    IlkKucukKelimeVeSonrasi = ""
    ilkKucukHarfPozisyon = 0
    
    If Len(metin) = 0 Then Exit Function
    
    For i = 1 To Len(metin)
        karakter = Mid(metin, i, 1)
        If LCase(karakter) = karakter And UCase(karakter) <> karakter Then
            ilkKucukHarfPozisyon = i
            Exit For
        End If
    Next i
    
    If ilkKucukHarfPozisyon > 0 Then
        kelimeBaslangicPozisyon = 1
        For j = ilkKucukHarfPozisyon - 1 To 1 Step -1
            If Mid(metin, j, 1) = " " Then
                kelimeBaslangicPozisyon = j + 1
                Exit For
            End If
        Next j
        IlkKucukKelimeVeSonrasi = Mid(metin, kelimeBaslangicPozisyon)
        
    End If
    
End Function
B1 hücresine şu formülü yazabilir misiniz;
=IlkKucukKelimeVeSonrasi(A1)
 
Katılım
21 Aralık 2016
Mesajlar
741
Excel Vers. ve Dili
Office 365 TR
Formülle çözüme Örnek bir çözüm...

 

A

B

1

15/02/2024 //// ......... OKUL MÜDÜRLÜĞÜ Matematik Öğretmeni Hasan Hüseyin SOLMAZ

Matematik Öğretmeni Hasan Hüseyin SOLMAZ

2

  


Örneğin A1 hücresinde
15/02/2024 //// ......... OKUL MÜDÜRLÜĞÜ Matematik Öğretmeni Hasan Hüseyin SOLMAZ
ibaresi yazıyor olsun...
B1 hücresine
Kod:
=PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);255)
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Formülle çözüme Örnek bir çözüm...
 

A

B

1

15/02/2024 //// ......... OKUL MÜDÜRLÜĞÜ Matematik Öğretmeni Hasan Hüseyin SOLMAZ

Matematik Öğretmeni Hasan Hüseyin SOLMAZ

2

  

Örneğin A1 hücresinde

15/02/2024 //// ......... OKUL MÜDÜRLÜĞÜ Matematik Öğretmeni Hasan Hüseyin SOLMAZ
ibaresi yazıyor olsun...
B1 hücresine
Kod:
=PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);255)
Hocam teşekkürler. Söyle bir sorun var.
Örneğin Coğrafya.Öğrt alıyor. Okul.Bşk. olana değer diye hata veriyor
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Merhaba, şu makroyu ekleyip;
Kod:
Function IlkKucukKelimeVeSonrasi(metin As String) As String
    Dim i As Long
    Dim j As Long
    Dim karakter As String
    Dim ilkKucukHarfPozisyon As Long
    Dim kelimeBaslangicPozisyon As Long
   
    IlkKucukKelimeVeSonrasi = ""
    ilkKucukHarfPozisyon = 0
   
    If Len(metin) = 0 Then Exit Function
   
    For i = 1 To Len(metin)
        karakter = Mid(metin, i, 1)
        If LCase(karakter) = karakter And UCase(karakter) <> karakter Then
            ilkKucukHarfPozisyon = i
            Exit For
        End If
    Next i
   
    If ilkKucukHarfPozisyon > 0 Then
        kelimeBaslangicPozisyon = 1
        For j = ilkKucukHarfPozisyon - 1 To 1 Step -1
            If Mid(metin, j, 1) = " " Then
                kelimeBaslangicPozisyon = j + 1
                Exit For
            End If
        Next j
        IlkKucukKelimeVeSonrasi = Mid(metin, kelimeBaslangicPozisyon)
       
    End If
   
End Function
B1 hücresine şu formülü yazabilir misiniz;
=IlkKucukKelimeVeSonrasi(A1)
Hocam maalesef makro kullanamıyorum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,926
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Birkaç tane örnek veri içeren excel dosyası paylaşabilirmisiniz. Dosyada ulaşmak istediğiniz sonuçlarıda belirtin lütfen..
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Birkaç tane örnek veri içeren excel dosyası paylaşabilirmisiniz. Dosyada ulaşmak istediğiniz sonuçlarıda belirtin lütfen..
Maalesef sistem izin vermiyor.. ama hucre içi herşeyi aynı kabul edin sonu bu şekilde Örneğin Coğrafya.Öğrt alıyor. Okul.Bşk. olana değer diye hata veriyor


A1 sütununda her bir hücrede örneğin;
MÜDÜR YARDIMCISI Matematik Öğretmeni

Bu şekilde metinler var, bazıları daha uzun bazıları daha kısa, yani aralarındaki boşluk sayısı değişiyor.

Ben yukarıdaki sonuca göre b1 hücresine sadece Matematik Öğretmeni yazsın istiyorum.

Tabi Mat.Öğrt. şeklinde kısaltılmış olanlar da var. Okul.Bşk. gibi. Veya Okul. Bşk. Gibi
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
764
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
dosya olarak paylaşamasanız bile excel sayfanızın nasıl hata verdiğine dair ekran çıktısını paylaşınki ona göre çözüm bulunabilsin

Formülünüzün amacı, A1 hücresindeki metinde belirli harfleri içeren ilk kelimeyi bulmak ve bu kelimeden başlayarak 255 karakter almak. Ancak, XMLFİLTRELE fonksiyonu, belirtilen harfleri içeren birden fazla kelime bulduğunda ve İNDİS fonksiyonu ile bu kelimelerden yalnızca birini almaya çalıştığınızda (örneğinizde İNDİS(...;1) ile ilk kelimeyi alıyorsunuz), eğer bu ilk kelime cümlenin sonuna yakınsa, bu kelimeden sonra 255 karakter olmayacağı için #DEĞER! hatası alırsınız.

Örneğin, "Coğrafya.Öğrt alıyor. Okul.Bşk. olana değer" metninde, "alıyor" kelimesi 'a' harfini içerdiği için XMLFİLTRELE tarafından bulunacak ilk kelime olabilir. Eğer bu kelime cümlenin sonuna yakınsa, PARÇAAL fonksiyonu 255 karakter almaya çalıştığında hata oluşur.

=EĞERHATA(PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);255);"") veya bunu deneyiniz

=PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);MİN(255;UZUNLUK(A1)-BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1)+1))
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
dosya olarak paylaşamasanız bile excel sayfanızın nasıl hata verdiğine dair ekran çıktısını paylaşınki ona göre çözüm bulunabilsin

Formülünüzün amacı, A1 hücresindeki metinde belirli harfleri içeren ilk kelimeyi bulmak ve bu kelimeden başlayarak 255 karakter almak. Ancak, XMLFİLTRELE fonksiyonu, belirtilen harfleri içeren birden fazla kelime bulduğunda ve İNDİS fonksiyonu ile bu kelimelerden yalnızca birini almaya çalıştığınızda (örneğinizde İNDİS(...;1) ile ilk kelimeyi alıyorsunuz), eğer bu ilk kelime cümlenin sonuna yakınsa, bu kelimeden sonra 255 karakter olmayacağı için #DEĞER! hatası alırsınız.

Örneğin, "Coğrafya.Öğrt alıyor. Okul.Bşk. olana değer" metninde, "alıyor" kelimesi 'a' harfini içerdiği için XMLFİLTRELE tarafından bulunacak ilk kelime olabilir. Eğer bu kelime cümlenin sonuna yakınsa, PARÇAAL fonksiyonu 255 karakter almaya çalıştığında hata oluşur.

=EĞERHATA(PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);255);"") veya bunu deneyiniz

=PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);MİN(255;UZUNLUK(A1)-BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1)+1))
Yarın tekrar deneyeceğim hocam, dönüş yaparım
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,944
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kullanıcı tanımlı başka bir örnek

Kod:
Function BuyukHarfSonrasi(metin As String) As String
 Dim kelimeler() As String
 Dim i As Long
 Dim sonuc As String
 Dim buyukSeriBitti As Boolean
 
 kelimeler = Split(Trim(metin), " ")
 buyukSeriBitti = False
 
 For i = 0 To UBound(kelimeler)
 If Not buyukSeriBitti Then

 If kelimeler(i) = UCase(kelimeler(i)) Then
 
 Else
 buyukSeriBitti = True
 sonuc = kelimeler(i)
 End If
 Else
 sonuc = sonuc & " " & kelimeler(i)
 End If
 Next i
 
 BuyukHarfSonrasi = sonuc
End Function
Kullanımı

Kod:
=BuyukHarfSonrasi(A1)
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Kullanıcı tanımlı başka bir örnek

Kod:
Function BuyukHarfSonrasi(metin As String) As String
Dim kelimeler() As String
Dim i As Long
Dim sonuc As String
Dim buyukSeriBitti As Boolean

kelimeler = Split(Trim(metin), " ")
buyukSeriBitti = False

For i = 0 To UBound(kelimeler)
If Not buyukSeriBitti Then

If kelimeler(i) = UCase(kelimeler(i)) Then

Else
buyukSeriBitti = True
sonuc = kelimeler(i)
End If
Else
sonuc = sonuc & " " & kelimeler(i)
End If
Next i

BuyukHarfSonrasi = sonuc
End Function
Kullanımı

Kod:
=BuyukHarfSonrasi(A1)
Maalesef makro olmuyor hocam
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,944
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Formül ile olacaksa ise başka alternatif

Kod:
=PARÇAAL(A1;KAÇINCI(1;EĞER(MUTLAK(KOD(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1))-109,5)<=12,5;1);0)-1;UZUNLUK(A1))
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
dosya olarak paylaşamasanız bile excel sayfanızın nasıl hata verdiğine dair ekran çıktısını paylaşınki ona göre çözüm bulunabilsin

Formülünüzün amacı, A1 hücresindeki metinde belirli harfleri içeren ilk kelimeyi bulmak ve bu kelimeden başlayarak 255 karakter almak. Ancak, XMLFİLTRELE fonksiyonu, belirtilen harfleri içeren birden fazla kelime bulduğunda ve İNDİS fonksiyonu ile bu kelimelerden yalnızca birini almaya çalıştığınızda (örneğinizde İNDİS(...;1) ile ilk kelimeyi alıyorsunuz), eğer bu ilk kelime cümlenin sonuna yakınsa, bu kelimeden sonra 255 karakter olmayacağı için #DEĞER! hatası alırsınız.

Örneğin, "Coğrafya.Öğrt alıyor. Okul.Bşk. olana değer" metninde, "alıyor" kelimesi 'a' harfini içerdiği için XMLFİLTRELE tarafından bulunacak ilk kelime olabilir. Eğer bu kelime cümlenin sonuna yakınsa, PARÇAAL fonksiyonu 255 karakter almaya çalıştığında hata oluşur.

=EĞERHATA(PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);255);"") veya bunu deneyiniz

=PARÇAAL(A1;BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1);MİN(255;UZUNLUK(A1)-BUL(İNDİS(XMLFİLTRELE("<A><B>"&YERİNEKOY(KIRP(A1);" ";"</B><B>")&"</B></A>";"//B[contains(., '"&PARÇAAL("abcçdefgğhıijklmnoöprsştuüvyz";SATIR($1:$29);1)&"')]");1);A1)+1))
Hocam ilk formül çalıştı yine bir kısmı boş bıraktı Okul.Bşk. gibi.. ıkinci formül ise yine aynı çalıştı fakat bu sefer boş bırakmadı #deger! Diye hata verdi
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Formül ile olacaksa ise başka alternatif

Kod:
=PARÇAAL(A1;KAÇINCI(1;EĞER(MUTLAK(KOD(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1))-109,5)<=12,5;1);0)-1;UZUNLUK(A1))
Hocam sizin formül yüzde 99 çok güzel çalıştı sadece Örneğin K.Öğrt. yazdığı zaman sadece ğrt. Kısmını alıyor.
 

By.TRabZonLutm

Altın Üye
Katılım
15 Aralık 2017
Mesajlar
132
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
12-01-2029
Hocam sizin formül hatasız çalıştı. Sadece ekleme yapmak istiyorum. Bazı unvanlar kıstas olarak SPOR Öğrt. Şeklinde oluyor burada sadece Öğrt. Olani alıyor. SPOR Öğrt. Şekilde alması için nasıl düzenleriz. Belirlediğim kelimeler büyük harf olunca onları ve sonraki küçük harf ile başlayan kelimeleri alsın. @Korhan Ayhan
 
Son düzenleme:
Üst