• DİKKAT

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

Büyükten küçüğe sıralama işlemi

Katılım
2 Temmuz 2014
Mesajlar
3
Excel Vers. ve Dili
2003 - 2007 , Türkçe
Merhaba arkadaşlar ,
sizler için basit ancak benim için önemli bir sorunum var ve işin içinden çıkamadım. Şimdiden emekleriniz için teşekkür ederim. Sorum şu ;
A ve B sütünlarında birbirinden farklı değerlerim var. A sütunu telefon numaralarını , B sütunu ise o numaraların ay içinde yaptığı total görüşme dakikalarını listeliyor. Örnek vermem gerekirse A2 : 0530xxxxxx01 , B2 : 1614 gibi... Yapmak istediğim şey dakikaları büyükten küçüğe doğru listelemek ve aynı zamanda karşılığındaki numaranın da eşleşmesini sağlamak ( yani hangi numara kaç dakika yapmış ise bunu büyükten küçüğe görmek istiyorum )

Umarım açıklamalı anlatabilmişimdir. Yardımlarınız için bir kez daha teşekkür ederim...

Dipnot : Excel 2007 de düzenlenemek istiyorum.
 
Veri sekmesi içinden Sırala fonksiyonu ile sütun yada başlık ismi seçerek yapabilirsiniz.
 
Merhaba sayın hamitcan bey üzerinde uğraştığım ama çözemediğim şöyle bir sorum olacak.

a1= 3, b1=4, c1=9, d1=0, e1=0 hücrelerinde

a2= 4, b2=3, c2=0, d2=9, e2=9 hücrelerinde olacak şekilde sıralanması gerekiyor.

Yani sayı serilerinde en büyük değeri alan en küçük değer, en küçük değer alan en büyük değer olacak şekilde sıralanması gerekiyor.
Yardımcı olursanız sevinirim. Şimdiden teşekkürler.
 
Kod, birinci satırda yapılan değişikliğe göre çalışır.
Bir Module içine aşağıdaki kodları ekleyin.
Kod:
Sub SayilariGetir()
    s = Sayfa1.Rows(1).End(xlToRight).Column
    For i = 1 To s
        Sayfa1.Cells(2, i) = WorksheetFunction.VLookup(Sayfa1.Cells(1, i), Sayfa2.Columns("a:b"), 2, False)
    Next
End Sub

Sub SayilariBul()
    Sayfa2.[a:b].Clear
    Sayfa1.Select
    s = Rows(1).End(xlToRight).Column
        Range(Cells(1, 1), Cells(1, s)).Select
        Selection.Copy
        Sayfa2.Select
        [a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Application.CutCopyMode = False
        ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
    Columns(1).Sort key1:=[a1], order1:=xlDescending
        x = [a65536].End(3).Row
    Range("b1:b" & x) = Range("a1:a" & x).Value
    Range("b1:b" & x).Sort key1:=[b1], order1:=xlAscending
    Sayfa1.Select
End Sub

İlgili sayfanın kod kısmına aşağıdaki kodu ekleyin
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
if target.row<>1 then exit sub
    Application.EnableEvents = False
        SayilariBul
        SayilariGetir
    Application.EnableEvents = True
End Sub
 

Ekli dosyalar

Sayın hamitcan bey yazmış olduğunuz kod işimi gördü. Çok teşekkür ederim. Elinize sağlık.Kod ile yapılan bu çalışmayı formülle nasıl yapabiliriz, merak ediyorum. Yardımcı olursanız sevinirim.
 
Formülle yapılabilir mi bilmiyorum ama kafa patlatmak gerektiği aşikar...
 
Sıralama

Formülle yapılabilir mi bilmiyorum ama kafa patlatmak gerektiği aşikar...

"Merhaba sayın hamitcan bey üzerinde uğraştığım ama çözemediğim şöyle bir sorum olacak. Misal;

a1= 3, b1=4, c1=9, d1=0, e1=0 hücrelerinde

a2= 4, b2=3, c2=0, d2=9, e2=9 hücrelerinde olacak şekilde sıralanması gerekiyor.

Yani sayı serilerinde en büyük değeri alan en küçük değer, en küçük değer alan en büyük değer olacak şekilde sıralanması gerekiyor.
Yardımcı olursanız sevinirim. Şimdiden teşekkürler." şeklinde bir sorum vardı. Sayın Hamitcan bey, probleme yönelik çözümü de yine siz yapmıştınız makro kodla ancak iki farklı sayfada çalışıyordu. Sorunu aynı sayfa içinde (dosya linki:http://s3.dosya.tc/server5/vf60s3/MO...ecek.xlsx.html) formülle ya da makro kodla yapmam gerekiyor, ama uyarlayamadım. O yüzden yardımınıza ihtiyacım var. Hatırlatma babında makro kodunuz şöyleydi:
Sub SayilariGetir()
s = Sayfa1.Rows(1).End(xlToRight).Column
For i = 1 To s
Sayfa1.Cells(2, i) = WorksheetFunction.VLookup(Sayfa1.Cells(1, i), Sayfa2.Columns("a:b"), 2, False)
Next
End Sub

Sub SayilariBul()
Sayfa2.[a:b].Clear
Sayfa1.Select
s = Rows(1).End(xlToRight).Column
Range(Cells(1, 1), Cells(1, s)).Select
Selection.Copy
Sayfa2.Select
[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
Columns(1).Sort key1:=[a1], order1:=xlDescending
x = [a65536].End(3).Row
Range("b1:b" & x) = Range("a1:a" & x).Value
Range("b1:b" & x).Sort key1:=[b1], order1:=xlAscending
Sayfa1.Select
End Sub

Şimdiden teşekkür ederim.
 
Son düzenleme:
Geri
Üst