Şimdi Ara

Excel'de Satırda Sıralama Yardım!. Harfler/kelimeler kendi içinde A'dan Z'ye toplu sıralama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
680
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Excel 2016'da her bir satırdaki harfleri/kelimeler kendi içinde A'dan Z'ye toplu sıralama yapamadım. Lütfen yardım eder misiniz? Dikey sıralama oluyor. excel 2016 da Veri/Sırala menüsünden topluca yapamadım, ancak tek tek yapılıyor. buda çok zor, çünkü 47000 satır var. topluca nasıl yapabilirim?
    Örnek:
    a b => ab
    a b a => aab
    a b a c ı => aabcı
    a b a c ı l ı k => aabcııkl
    a b a d i => aabdi
    a b a j u r => aabjru
    a b a j u r c u => aabcjruu
    a b a j u r c u l u k => aabcjklruuu

    soldakiler sağdaki gibi sıralanacak. bu şekilde 47000 kelime var.



  • bunun için aşağıda verdiğim VBA makro fonksiyonunu kullanın.

    Kullanımı:
    Excelde ALT+F11 e basın açılan vba editöründe menüden Insert/Module tıklayın açılan kod alanına aşağıdaki kodları ekleyin
    excelde =HarfSirala(A1) şeklinde fonksiyonu kullanın

    Function HarfSirala(metin As String) As String
    'makro Mesut Akcan
    '16/05/2019
    Dim i As Long
    Dim j As Long
    Dim Temp
    Dim mArray() As String

    ReDim mArray(Len(metin) - 1)
    For i = 1 To Len(metin)
    mArray(i - 1) = Mid(metin, i, 1)
    Next

    For i = LBound(mArray) To UBound(mArray) - 1
    For j = i + 1 To UBound(mArray)
    If UCase(mArray(i)) > UCase(mArray(j)) Then
    Temp = mArray(j)
    mArray(j) = mArray(i)
    mArray(i) = Temp
    End If
    Next j
    Next i

    HarfSirala = Join(mArray, "")

    End Function
  • Mesut Akcan hocam, çok teşekkür ederim. tam aradığım gibi oldu. Türkçe dersi için etkinlik hazırlama programına da yükledim, çalışıyor. Tekrar teşekkürler
  • quote:

    Orijinalden alıntı: akcan

    bunun için aşağıda verdiğim VBA makro fonksiyonunu kullanın.

    Kullanımı:
    Excelde ALT+F11 e basın açılan vba editöründe menüden Insert/Module tıklayın açılan kod alanına aşağıdaki kodları ekleyin
    excelde =HarfSirala(A1) şeklinde fonksiyonu kullanın

    Function HarfSirala(metin As String) As String
    'makro Mesut Akcan
    '16/05/2019
    Dim i As Long
    Dim j As Long
    Dim Temp
    Dim mArray() As String

    ReDim mArray(Len(metin) - 1)
    For i = 1 To Len(metin)
    mArray(i - 1) = Mid(metin, i, 1)
    Next

    For i = LBound(mArray) To UBound(mArray) - 1
    For j = i + 1 To UBound(mArray)
    If UCase(mArray(i)) > UCase(mArray(j)) Then
    Temp = mArray(j)
    mArray(j) = mArray(i)
    mArray(i) = Temp
    End If
    Next j
    Next i

    HarfSirala = Join(mArray, "")

    End Function
    Mesut Akcan hocam, kod ve formül çalışıyor. Ancak bişey dikkatimi çekti; Türkçe karakter olan ğ, ü, ş, ı, ö, ç, harflerini sıralamada en sona atıyor. bu nasıl düzeltilebilir?

    aaaadlmmnryı
    aaaadlmmrstyış
    aaaadlmmsyş
    aaaadlmnğ
    aaaadlmnrçğı
    aaaadlmnrrstttış
    aaaadlmnrs
    aaaadlmnrsttş
    aaaadlmnruğ
    aaaadlmrtçğışş
    aaaadlmrtğış
    aaaadlmvş

    gibi....




  • Alttaki kodları deneyin.
    Kelimelerde büyük harf kullanmayacaksan harfler değişkenindeki büyük harfleri silebilirsin
    hatta türkçe olmayanlar gereksizse onları da silebilirsiniz.

    Function HarfSirala(metin As String) As String
    'makro Mesut Akcan
    '22/05/2019
    Const harfler = "ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZabcçdefgğhıijklmnoöpqrsştuüvwxyz"
    Dim i As Integer
    Dim j As Integer
    Dim g As Integer
    Dim Temp

    Dim mArray() As String
    g = Len(metin)
    ReDim mArray(g - 1)
    For i = 1 To g
    mArray(i - 1) = Mid(metin, i, 1)
    Next

    For i = 0 To g - 1
    For j = i + 1 To g - 1
    If InStr(harfler, mArray(i)) > InStr(harfler, mArray(j)) Then
    Temp = mArray(j)
    mArray(j) = mArray(i)
    mArray(i) = Temp
    End If
    Next
    Next

    HarfSirala = Join(mArray, "")
    End Function
  • quote:

    Orijinalden alıntı: akcan

    Alttaki kodları deneyin.
    Kelimelerde büyük harf kullanmayacaksan harfler değişkenindeki büyük harfleri silebilirsin
    hatta türkçe olmayanlar gereksizse onları da silebilirsiniz.

    Function HarfSirala(metin As String) As String
    'makro Mesut Akcan
    '22/05/2019
    Const harfler = "ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZabcçdefgğhıijklmnoöpqrsştuüvwxyz"
    Dim i As Integer
    Dim j As Integer
    Dim g As Integer
    Dim Temp

    Dim mArray() As String
    g = Len(metin)
    ReDim mArray(g - 1)
    For i = 1 To g
    mArray(i - 1) = Mid(metin, i, 1)
    Next

    For i = 0 To g - 1
    For j = i + 1 To g - 1
    If InStr(harfler, mArray(i)) > InStr(harfler, mArray(j)) Then
    Temp = mArray(j)
    mArray(j) = mArray(i)
    mArray(i) = Temp
    End If
    Next
    Next

    HarfSirala = Join(mArray, "")
    End Function
    Mesut Akcan hocam, son gönderdiğiniz kod sorunu çözdü. Bu kod çok az kişiye lazım olsa da muhteşem çözüm. Tekrar çok teşekkürler. Elinize, klavyenize zihninize sağlık.




  • İşinize yaramasına sevindim.
    Kodu birebir kullanan sayısı az olabilir ancak kodun çözüm mantığı kavranıp geliştirilerek ya da değiştirilerek değişik amaçlarla da kullanılabilir.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Mesut üstat, excel ile alakalı dersleriniz var mı ?
  • henüz yok ama excel vba ile ilgili eğitim videoları çekmek istiyorum.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.