[Yardım]  Çok Karakterli Özel Sıralama

Excel sayfalarında kullandığımız yerleşik fonksiyonlar ya da kendi yazabileceğiniz fonksiyonlar ile ilgili bilmek istedikleriniz, sorunlar ve çözümleri

Çok Karakterli Özel Sıralama

İleti#1)  onur.var » 16 May 2018 20:20

Arkadaşlar merhaba

Excelde özel sıralamayı kullanırken

"Özel liste için en fazla uzunluk aşıldı. Yalnızca ilk 255 karekter kaydedilecek"

uyarısını alıyorum. [bamm] Yapmak istediğim özel sıralamam şu şekilde olacak:

1A 1AB 1BC 1C 1ABC 1D 1DE 1EF 1F 1DEF 1G 1FG 1DEFG 1H 1HJ 1J 1JK 1K 1HK 2A 2AB 2BC 2C 2ABC 2D 2DE 2EF 2F 2DEF 2G 2FG 2DEFG 2H 2HJ 2J 2JK 2K 2HK 3A 3AB 3BC 3C 3ABC 3D 3DE 3EF 3F 3DEF 3G 3FG 3DEFG 3H 3HJ 3J 3JK 3K 3HK 4A 4AB 4BC 4C 4ABC 4D 4DE 4EF 4F 4DEF 4G 4FG 4DEFG 4H 4HJ 4J 4JK 4K 4HK 5A 5AB 5BC 5C 5ABC 5D 5DE 5EF 5F 5DEF 5G 5FG 5DEFG 5H 5HJ 5J 5JK 5K 5HK 6A 6AB 6BC 6C 6ABC 6D 6DE 6EF 6F 6DEF 6G 6FG 6DEFG 6H 6HJ 6J 6JK 6K 6HK 7A 7AB 7BC 7C 7ABC 7D 7DE 7EF 7F 7DEF 7G 7FG 7DEFG 7H 7HJ 7J 7JK 7K 7HK 8A 8AB 8BC 8C 8ABC 8D 8DE 8EF 8F 8DEF 8G 8FG 8DEFG 8H 8HJ 8J 8JK 8K 8HK 9A 9AB 9BC 9C 9ABC 9D 9DE 9EF 9F 9DEF 9G 9FG 9DEFG 9H 9HJ 9J 9JK 9K 9HK 10A 10AB 10BC 10C 10ABC 10D 10DE 10EF 10F 10DEF 10G 10FG 10DEFG 10H 10HJ 10J 10JK 10K 10HK 11A 11AB 11BC 11C 11ABC 11D 11DE 11EF 11F 11DEF 11G 11FG 11DEFG 11H 11HJ 11J 11JK 11K 11HK 12A 12AB 12BC 12C 12ABC 12D 12DE 12EF 12F 12DEF 12G 12FG 12DEFG 12H 12HJ 12J 12JK 12K 12HK 13A 13AB 13BC 13C 13ABC 13D 13DE 13EF 13F 13DEF 13G 13FG 13DEFG 13H 13HJ 13J 13JK 13K 13HK 14A 14AB 14BC 14C 14ABC 14D 14DE 14EF 14F 14DEF 14G 14FG 14DEFG 14H 14HJ 14J 14JK 14K 14HK 15A 15AB 15BC 15C 15ABC 15D 15DE 15EF 15F 15DEF 15G 15FG 15DEFG 15H 15HJ 15J 15JK 15K 15HK 16A 16AB 16BC 16C 16ABC 16D 16DE 16EF 16F 16DEF 16G 16FG 16DEFG 16H 16HJ 16J 16JK 16K 16HK 17A 17AB 17BC 17C 17ABC 17D 17DE 17EF 17F 17DEF 17G 17FG 17DEFG 17H 17HJ 17J 17JK 17K 17HK 18A 18AB 18BC 18C 18ABC 18D 18DE 18EF 18F 18DEF 18G 18FG 18DEFG 18H 18HJ 18J 18JK 18K 18HK 19A 19AB 19BC 19C 19ABC 19D 19DE 19EF 19F 19DEF 19G 19FG 19DEFG 19H 19HJ 19J 19JK 19K 19HK 20A 20AB 20BC 20C 20ABC 20D 20DE 20EF 20F 20DEF 20G 20FG 20DEFG 20H 20HJ 20J 20JK 20K 20HK 21A 21AB 21BC 21C 21ABC 21D 21DE 21EF 21F 21DEF 21G 21FG 21DEFG 21H 21HJ 21J 21JK 21K 21HK 22A 22AB 22BC 22C 22ABC 22D 22DE 22EF 22F 22DEF 22G 22FG 22DEFG 22H 22HJ 22J 22JK 22K 22HK 23A 23AB 23BC 23C 23ABC 23D 23DE 23EF 23F 23DEF 23G 23FG 23DEFG 23H 23HJ 23J 23JK 23K 23HK 24A 24AB 24BC 24C 24ABC 24D 24DE 24EF 24F 24DEF 24G 24FG 24DEFG 24H 24HJ 24J 24JK 24K 24HK 25A 25AB 25BC 25C 25ABC 25D 25DE 25EF 25F 25DEF 25G 25FG 25DEFG 25H 25HJ 25J 25JK 25K 25HK 26A 26AB 26BC 26C 26ABC 26D 26DE 26EF 26F 26DEF 26G 26FG 26DEFG 26H 26HJ 26J 26JK 26K 26HK 27A 27AB 27BC 27C 27ABC 27D 27DE 27EF 27F 27DEF 27G 27FG 27DEFG 27H 27HJ 27J 27JK 27K 27HK 28A 28AB 28BC 28C 28ABC 28D 28DE 28EF 28F 28DEF 28G 28FG 28DEFG 28H 28HJ 28J 28JK 28K 28HK 29A 29AB 29BC 29C 29ABC 29D 29DE 29EF 29F 29DEF 29G 29FG 29DEFG 29H 29HJ 29J 29JK 29K 29HK 30A 30AB 30BC 30C 30ABC 30D 30DE 30EF 30F 30DEF 30G 30FG 30DEFG 30H 30HJ 30J 30JK 30K 30HK 31A 31AB 31BC 31C 31ABC 31D 31DE 31EF 31F 31DEF 31G 31FG 31DEFG 31H 31HJ 31J 31JK 31K 31HK 32A 32AB 32BC 32C 32ABC 32D 32DE 32EF 32F 32DEF 32G 32FG 32DEFG 32H 32HJ 32J 32JK 32K 32HK 33A 33AB 33BC 33C 33ABC 33D 33DE 33EF 33F 33DEF 33G 33FG 33DEFG 33H 33HJ 33J 33JK 33K 33HK 34A 34AB 34BC 34C 34ABC 34D 34DE 34EF 34F 34DEF 34G 34FG 34DEFG 34H 34HJ 34J 34JK 34K 34HK 35A 35AB 35BC 35C 35ABC 35D 35DE 35EF 35F 35DEF 35G 35FG 35DEFG 35H 35HJ 35J 35JK 35K 35HK 36A 36AB 36BC 36C 36ABC 36D 36DE 36EF 36F 36DEF 36G 36FG 36DEFG 36H 36HJ 36J 36JK 36K 36HK 37A 37AB 37BC 37C 37ABC 37D 37DE 37EF 37F 37DEF 37G 37FG 37DEFG 37H 37HJ 37J 37JK 37K 37HK 38A 38AB 38BC 38C 38ABC 38D 38DE 38EF 38F 38DEF 38G 38FG 38DEFG 38H 38HJ 38J 38JK 38K 38HK 39A 39AB 39BC 39C 39ABC 39D 39DE 39EF 39F 39DEF 39G 39FG 39DEFG 39H 39HJ 39J 39JK 39K 39HK 40A 40AB 40BC 40C 40ABC 40D 40DE 40EF 40F 40DEF 40G 40FG 40DEFG 40H 40HJ 40J 40JK 40K 40HK

Özel sıralama dışında kullanabileceğim bir fonksiyon, kural ya da kod aklınızda var mı?
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

Cevap: Çok Karakterli Özel Sıralama

İleti#2)  onur.var » 17 May 2018 18:56

Yardımlarınızı bekliyorum. Örnek dosyayı ekledim.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

Cevap: Çok Karakterli Özel Sıralama

İleti#3)  xpeker » 17 May 2018 19:52

Tam olarak ne istediğinizi anlayamadım şahsen,biraz daha detaylı anlatabilirseniz yardımcı olabilecek birileri muhakkak bulunur sanıyorum.
Kullanıcı avatarı
xpeker
Yeni Başlamış
 
Kayıt: 05 Oca 2015 19:41
Meslek: memur
Yaş: 37
İleti: 86
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Balıkesir

Cevap: Çok Karakterli Özel Sıralama

İleti#4)  onur.var » 17 May 2018 20:39

Çok daha basit bir hale getirdim, teşekkürler. [gulumse]
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Çok Karakterli Özel Sıralama

İleti#5)  onur.var » 17 May 2018 20:48

Anlatmak istediğim şey sonradan eklemiş olduğum 6A hücresindeki sıralamayı elle yaptım. Haliyle çok zahmetli oluyor. Bu sıralamayı otomatik yapacak bir makro kodu, fonksiyon veya araç var mıdır?
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

Cevap: Çok Karakterli Özel Sıralama

İleti#6)  feraz » 18 May 2018 03:53

Bir deneyiniz.C6 da sıralama yaptırttım.

Kod: Tümünü seç
Sub xxx()
   
    Dim aranan As Range
    Dim metn As String
    Dim kes As Integer
    Dim sayfaa2 As Worksheet
   
    Set sayfaa2 = Worksheets("Sayfa2")

    say = 0

Application.ScreenUpdating = False
    With Worksheets("Sayfa1")
   
       .Range("C6").ClearContents
   
        sayfaa2.Range("B2:D" & Rows.Count).Clear
        mtn = .Range("A2").Value
        a = Split(mtn, " ")
        sayfaa2.Range("A2:A" & Rows.Count) = Empty
       
        For kes = LBound(a) To UBound(a)
            Set aranan = .Range("C2").Find(What:=a(kes), LookIn:=xlValues, LookAt:=xlPart)
            If Not aranan Is Nothing Then
                say = say + 1
                sayfaa2.Cells(say + 1, "A").Value = a(kes)
            End If
        Next
       
    End With
Application.ScreenUpdating = True
   
    Call yy

Set sayfaa2 = Nothing: Erase a: metn = vbNullString: say = Empty

       
End Sub


Kod: Tümünü seç
Sub yy()

    Dim X As Integer
    Dim son As Integer
    Dim ar()
   
  Application.ScreenUpdating = False
   
    With Worksheets("Sayfa2")
        son = .Cells(Rows.Count, "A").End(3).Row
       
        For Each Hücre In .Range("A2:A" & son)
            For X = 1 To Len(Hücre)
                Sayý = Mid(Hücre, X, 1)
                If IsNumeric(Sayý) = True Then .Cells(Hücre.Row, 2) = .Cells(Hücre.Row, 2) & Sayý
                If Not IsNumeric(Sayý) = True Then .Cells(Hücre.Row, 3) = .Cells(Hücre.Row, 3) & Sayý
            Next
        Next
       
        .Range("B2:C" & son).Sort .Range("B2")
        .Range("D2:D" & son).FormulaR1C1 = "=CONCATENATE(RC[-2],RC[-1])"
        .Range("D2:D" & son).Value = .Range("D2:D" & son).Value
       
        arr = Application.Transpose(.Range("D2:D" & son).Value)
       
       
       
    End With
   
    With Worksheets("Sayfa1")
        .Range("C6").Value = Join(arr, " ")
        .Range("C6").WrapText = True
        .Range("C6").Font.Size = 18
    End With
   
Application.ScreenUpdating = True


X = Empty: son = Empty: Erase arr

End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5048
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Çok Karakterli Özel Sıralama

İleti#7)  feraz » 18 May 2018 04:04

Sıralatma hatası yapmışım. .Range("B2:C" & son).Sort .Range("B2") burası yerine alttaki kod olmalı.



Kod: Tümünü seç
      With .Sort
            .SetRange Range("B2:C" & son)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5048
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Çok Karakterli Özel Sıralama

İleti#8)  onur.var » 18 May 2018 07:44

Çok teşekkürler. Mükemmel çalışıyor. --)(
--)( --)( --)(

Makrolarda başlangıç seviyesindeyim. Yazdığınız kodu inceliyim dedim ne kadar emek vediğiniz belli oluyor.
Tekrar tekrar teşekkürler.
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

Cevap: Çok Karakterli Özel Sıralama

İleti#9)  feraz » 18 May 2018 12:32

Rica ederim.

Aslında kod biraz daha kısa olabilirdi.
Fakat veriler sayı ile rakam olduğu için düzgün sıralama yapmadı küçükten büyüğe.

Yani misal önce 5A olması gerekirken 11A başta listelendi.

Bu yüzden kelimeleri parçalara ayırıp rakamlara göre sıralattım.

Önemli olan sonuç :)
Kolay gelsin.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5048
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Çok Karakterli Özel Sıralama

İleti#10)  feraz » 18 May 2018 13:53

Merhaba sıralama tam olmamış :)

En alttaki kodu silin yukardaki kodu ekleyin.
Doğruluğu karşılaştırmak için sayfa1 deki A8 e bakabilirsiniz.

Kod: Tümünü seç
.Range("B2:C" & son).Sort key1:=.Range("B1"), key2:=.Range("C1")


Kod: Tümünü seç
With .Sort
            .SetRange Range("B2:C" & son)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5048
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Cevap: Çok Karakterli Özel Sıralama

İleti#11)  onur.var » 18 May 2018 19:03

feraz yazdı:Rica ederim.

Aslında kod biraz daha kısa olabilirdi.
Fakat veriler sayı ile rakam olduğu için düzgün sıralama yapmadı küçükten büyüğe.

Yani misal önce 5A olması gerekirken 11A başta listelendi.

Bu yüzden kelimeleri parçalara ayırıp rakamlara göre sıralattım.

Önemli olan sonuç :)
Kolay gelsin.


Dediğiniz gibi 5A yerine 11A yı öne alıyor excelin kendi mantığı. Bu benim için büyük bir sorundu.

Önceki verdiğiniz kodda; evet ufak bir sıralama hatası var ama benim için önemli olan 5A nın 11A dan önce gelmeme sıkıntısıydı. Onu ilk verdiğiniz kodun içinde zaten çözmüştünüz.
Tabi son koddaki düzeltmeniz tadından yenmedi. şkşk
Kullanıcı avatarı
onur.var
Yeni Başlamış
 
Kayıt: 16 May 2018 20:16
Meslek: Uçak Teknisyeni
Yaş: 27
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/ Çatalca

Cevap: Çok Karakterli Özel Sıralama

İleti#12)  feraz » 18 May 2018 19:42

--)( --)(
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5048
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray


Forum Kullanıcı Tanımlı Fonksiyonlar ( KTF )

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe