• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Boşluksuz yazılan özel isimleri büyük harften bölmek

  • Konbuyu başlatan Konbuyu başlatan eronyat
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Temmuz 2013
Mesajlar
84
Excel Vers. ve Dili
2010
Bitişik yazılmış bir sütun il-ilce verisi mevcut. Bunu nasıl bölebilirim? Teşekkür ederim.
 

Ekli dosyalar

Merhaba,

Yıllar önce böyle bir şey yapmışım. Farklı yöntemlerle de yapılabilir.

Kod:
Sub BuyukHarftenAYIR()

    Dim i   As Long, _
        b   As Integer, _
        j   As Integer, _
        k   As Integer, _
        S   As String, _
        dd  As String
  
    Application.ScreenUpdating = False
    
    For i = 1 To Cells(Rows.Count, "a").End(3).Row
    
        S = Cells(i, "A")
        b = 1
        k = 1
        dd = ""
        
        For j = 2 To Len(S)
           If (Asc(Mid(S, j, 1)) > 64 And Asc(Mid(S, j, 1)) < 91) Or _
               Mid(S, j, 1) = "Ç" Or Mid(S, j, 1) = "Ğ" Or Mid(S, j, 1) = "Ö" Or _
              (Asc(Mid(S, j, 1)) > 219 And Asc(Mid(S, j, 1)) < 223) Then
              k = k + 1
              Cells(i, k) = Mid(S, b, j - b)
              b = j
            End If
        Next j
        
        k = k + 1
        Cells(i, k) = Mid(S, b, j - b)
        
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamdır..."
    
End Sub
 
Merhaba,

Yıllar önce böyle bir şey yapmışım. Farklı yöntemlerle de yapılabilir.

Kod:
Sub BuyukHarftenAYIR()

    Dim i   As Long, _
        b   As Integer, _
        j   As Integer, _
        k   As Integer, _
        S   As String, _
        dd  As String
 
    Application.ScreenUpdating = False
   
    For i = 1 To Cells(Rows.Count, "a").End(3).Row
   
        S = Cells(i, "A")
        b = 1
        k = 1
        dd = ""
       
        For j = 2 To Len(S)
           If (Asc(Mid(S, j, 1)) > 64 And Asc(Mid(S, j, 1)) < 91) Or _
               Mid(S, j, 1) = "Ç" Or Mid(S, j, 1) = "Ğ" Or Mid(S, j, 1) = "Ö" Or _
              (Asc(Mid(S, j, 1)) > 219 And Asc(Mid(S, j, 1)) < 223) Then
              k = k + 1
              Cells(i, k) = Mid(S, b, j - b)
              b = j
            End If
        Next j
       
        k = k + 1
        Cells(i, k) = Mid(S, b, j - b)
       
    Next i
   
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamdır..."
   
End Sub

:) Cevabınız için teşekkür ederim.
 
Kod:
Sub test()
    [B:C].ClearContents
    With CreateObject("VBScript.RegExp")
        .Pattern = "(^[A-Z,Ç,Ş,Ü,Ö,İ][a-z,ı,ö,ç,ş,ğ,ü)]+)+"
        .Global = True
        .ignorecase = False
        For Each huc In Range("a1:A" & Cells(Rows.Count, 1).End(3).Row)
            If .test(huc) Then
                huc.Offset(, 1).Value = .Replace(huc, "$1 ")
                ' huc.Offset(, 1).Resize(, 2).Value = Split(.Replace(huc, "$1 "), " ")
            End If
        Next
    End With
End Sub
 
Son düzenleme:
Alternatif bir Regular Expressions:

Kod:
Sub Test()
'   Haluk - 06/03/2019
'
    Dim NoA As Long
    Dim regExp As Object, objMatches As Object
    Dim myStr As String, i As Long, j As Byte
    
    Range("B2:AA" & Rows.Count) = Empty
    NoA = Range("A" & Rows.Count).End(xlUp).Row
    Set regExp = CreateObject("VBScript.RegExp")
    
    regExp.IgnoreCase = False
    regExp.Global = True
    regExp.Pattern = "([A-Z,Ğ,Ü,Ş,İ,Ö,Ç][a-z,ğ,ü,ş,ı,ö,ç]+)"
    
    For i = 1 To NoA
        myStr = Range("A" & i)
        If regExp.Test(myStr) Then
            Set objMatches = regExp.Execute(myStr)
            For j = 0 To (objMatches.Count - 1)
                Cells(i, j + 2) = objMatches.Item(j)
            Next
        End If
    Next
    
    ActiveSheet.Columns.AutoFit
    Set regExp = Nothing
    Set objMatches = Nothing
End Sub

.
 
Son düzenleme:
Merhaba.
Ben de formül ile çözüm önerisinde bulunayım dedim.
Birinci formül B1 hücresine (İL adı), ikinci formül C1 hücresine (İLÇE adı) dizi formülü olarak uygulandıktan (CTRL+SHIFT+ENTER ile uygulama)
sonra aşağı doğru liste boyunca kopyalanmalıdır.
Rich (BB code):
İL ADI İÇİN
-- Seçenek 1:
=SOLDAN($A1;KÜÇÜK(EĞER(ÖZDEŞ(BÜYÜKHARF(PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));SATIR(DOLAYLI("2:"&UZUNLUK($A1)))-1);1))
-- Seçenek 2:
=SOLDAN($A1;TOPLA(EĞER(ÖZDEŞ(BÜYÜKHARF(PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));SATIR(DOLAYLI("2:"&UZUNLUK($A1)))))-1)

İLÇE ADI İÇİN
-- Seçenek 1:
=PARÇAAL($A1;KÜÇÜK(EĞER(ÖZDEŞ(BÜYÜKHARF(PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));SATIR(DOLAYLI("2:"&UZUNLUK($A1))));1);255)
-- Seçenek 2:
=PARÇAAL($A1;TOPLA(EĞER(ÖZDEŞ(BÜYÜKHARF(PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));PARÇAAL($A1;SATIR(DOLAYLI("2:"&UZUNLUK($A1)));1));SATIR(DOLAYLI("2:"&UZUNLUK($A1)))));255)
 
Son düzenleme:
Konu sahibinin, Sayın veyselemre, Sayın Haluk Bey ve benim cevabımla ilgili olarak;
olumlu/olumsuz herhangi bir geri bildirimde bulunmaması hakikaten ilginç bir durum.
.
 
Ömer Bey oluyor bazen böyle şeyler.

Bende alternatif vereyim.

İlçe için

C1 hücresine

Kod:
=PARÇAAL(A1;KAÇINCI(DOĞRU;ÖZDEŞ(KÜÇÜKHARF(PARÇAAL(A1;SÜTUN(A:IU);255));PARÇAAL(A1;SÜTUN(A:IU);255));0)-1;255-1)

CTRL+SHIFT+ENTER ile formül girişi tamamlanmalı.

İl için

B1 hücresine

Kod:
=YERİNEKOY(A1;C1;"")
 
Beklentimiz, harcanan emeğin/zamanın karşılığı olumlu/olumsuz bir cevap verilmesinden ibaret ve bence çok da bir şey beklemiyoruz.
Ben birbirinden bağımsız formül oluşturmuştum. Birbirine bağlı olarak çalışan formül oluşturmak iyi fikir bence de.
.
 
Konu sahibinin, Sayın veyselemre, Sayın Haluk Bey ve benim cevabımla ilgili olarak;
olumlu/olumsuz herhangi bir geri bildirimde bulunmaması hakikaten ilginç bir durum.
.
Ömer Bey, Merhaba;
Benim formüllere kafam basmıyor, gözümün önünde canlandıramıyorum işleyişini, çözümünü bu yüzden merak da etmiyorum. Formüllü çözümleri ve soruları çoğunlukla incelemiyorum bile. Çok basit formüller haricinde bilgi sahibi değilim, öğrenme ihtiyacı da hissetmiyorum, çünkü sadece excel de kullanılıyor, yoğun formül olursa çalışmayı yavaşlatıyor, yanlışlıkla silinirse beklenmedik durumlar ortaya çıkabiliyor, formüllü çalışmalarda kullanmayacağınız alanlara bile formüller yazmak gerekebiliyor, hücre boş gibi görünüyor bir bakıyorsunuz formül var, bana göre değil. 2-3 yıl forumdan sıkıldığım için uzak kaldım. 5-6 ay önce tekrar girdiğim sıralarda sizin yazdığınız bir sıralamayla ilgiliydi galiba bir vba kodunda formül mantığının işe yaradığını gördüm, mantığını çözmeye bile bir sürü uğraştım Ömer Bey baya yol kat etmiş dedim kendi kendime.
Ayrıca forumlarda gereksiz mesaj yazmamaya çalışıyorum, mesaj sayımın artmasını istemiyorum, düzenli bir arşivim olmadığı için gerekli araştırmaları, kodları forumlardan, internetten buluyorum.
Ama sizin performansınız gerçekten mükemmel, hemen hemen bir çok konuya dahil oluyorsunuz, yardımcı olmaya çalışıyorsunuz, ücretli bir eğitmen bile sizin kadar gayret göstermez, mesajlarınızı özenle, ayrıntılı, renkli renkli, dikkat edilmesi gereken noktaları ayrı ayrı üstünde duruyorsunuz, takdire şayan. Ama şu estağfurullah kelimesi bana biraz yanlış geliyor yazım olarak; her ne kadar TDK da öyle yazılsa da estağfirullah olması lazım. Saygılar sunarım.
 
Estağfurullah kelimesiyle ilgili olarak daha evvel başka bir üyeyle de yazıştığımı hatırlıyorum.
Türkçe konusundaki hassasiyetimin yüksek olduğu da malumdur.

Tarihimiz itibariyle, uzak Asya'dan gelmişiz buralara ve çok din/dil/ırk ile hemhal olmuşuz.
Dilimizde kullanılan, Türkçe kökenli olmayan kelimelerle ilgili zaman zaman sıkıntı yaşanıyor.
Bu durumda da sırtımızı TDK'ya yaslamak durumundayız diye düşünüyorum.

Bu kelimeyi, Arapça yapılan bir duada (dua neden başka dilden yapılır o ayrı bir tartışma konusu) kullanıyorsak
estağfirullah (zira o sırada kullanılan dil Arapça) kendi dilimizdeki iletişimde ise estağfurullah olarak kullanmak doğru diye düşünüyorum.
.
 
Son düzenleme:
Estağfurullah kelimesiyle ilgili olarak daha evvel başka bir üyeyle de yazıştığımı hatırlıyorum.
Bahsi geçen başka bir üye olarak muhabbete dahil olmak istiyorum.
Evet, ifadenin aslı "i" harfi iledir. Ancak Türkçe'ye estağfurullah olarak geçmiş/geçirilmiş. Yazıda da dil kurallarına uymak gerektiği için yazarken imla
kılavuzuna uygun yazmak gerektiğini düşünüyorum. Aksi halde bunun sonu olmayacaktır ve bu durum sadece arapçayla da sınırlı değil. Çok kullandığımız kelimelerden birkaç örnek vermek gerekirse; "kitap" kelimesinin aslı "kitab", "Perşembe" kelimesinin aslı "penc şenbe", "televizyon" kelimesinin aslı "television", "avukat" kelimesinin aslı da "avocat" kelimesidir. Bu sebeple resmi kurumumuz olan TDK ne diyorsa olabildiğince (çünkü her yenilikten haberdar olamıyoruz) uymak gerektiği kanısındayım.
 
Son düzenleme:
Estağfurullah Sayın adaşım, inanın hatırlamadığım için "başka bir üye" ibaresini kullandım.
Net hatırlasam isim zikrederdim zaten.
Halen de emin değilim ve sanki saban.....(noktalı yerler sayı idi galiba) isimli bir üye gibi hatırlıyorum.

Zaten, mevzu kişisel bakış açılarıyla ilgili olduğundan "dua neden başka dilden yapılır o ayrı bir tartışma konusu" ibaresini kullanmıştım.
.
 
Bu konu hususundaki tavrınızı ve inceliğinizi biliyorum. Benzer bir diyaloğu (daha doğrusu bir uyarıydı) benimle de yapmıştınız. Bu sayede Şanlıurfa'daki bir köyümüzün adını öğrenmiştim:).
Bu arada başka bir üye ifadesinden rahatsız olmadığımı da belirtmek isterim. Bu sadece muhabbete dahil olmak için bir bahaneydi.
İyi çalışmalar diliyorum...
 
Eyvallah, bir an "kırdım mı acaba" diye düşündüm.
Şanlıurfa detayını da yazdığınıza göre hafızam benim yanılttı demektir.
Çünkü ilgili konu sayfasında TDK'dan alıntı yaparak (Şanlıurfa) cevap yazdığımı net hatırlıyorum.
Sağlıcakla kalın.
.
 
Konu sahibinin, Sayın veyselemre, Sayın Haluk Bey ve benim cevabımla ilgili olarak;
olumlu/olumsuz herhangi bir geri bildirimde bulunmaması hakikaten ilginç bir durum.
.

Geç cevap verdiğim için özür dilerim herkesten ve herkese ilgisinden dolayı çok teşekkür ederim. Daha yeni inceleme fırsatı buldum diğer önerileri.

Hepsi de çalıştı. Benim için Çince gibi gelseler de, Ali Bey'in çözümü en sade olduğundan dolayı daha pratik buldum. (İtiraf ediyorum ki anlayabildiğim tek içerik buydu.) Diğer önerilere baktıkça, "bu insanlar bu kadar şeyi nasıl biliyor?" diye düşünüyorum hala.
 
Üstünden çok vakit geçmiş ama, "Libre Office" ile alternatif;


Capture.PNG

.
 
Son düzenleme:
Geri
Üst