Çözüldü Tablodaki verileri tek bir sütunda sıralama

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Ekte tabloda verilen isimler A Sütununa önce B sütunundaki veriler sıralanacak ardından C sütunundaki veriler daha sonra D sütunu .... diye A sütununda bütün veriler nasıl sıralanabilir?
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,235
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ofis 365 için alternatifler;

C++:
=SIRALA(SÜTUNA(DEVRİK_DÖNÜŞÜM(B2:F17);3);;1)
C++:
=SIRALA(FİLTRE(DÜŞEYYIĞ(B2:B17;C2:C17;D2:D17;E2:E17;F2:F17);DÜŞEYYIĞ(B2:B17;C2:C17;D2:D17;E2:E17;F2:F17)<>0);;1)
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Ofice 16 kullanıyorum. Bunu görmüştün ama sırala fonksiyonu yok... Alternatif sunabilecek varmıdır? Bu arada ilginiz için teşekkür ederim Korhan bey
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Birde officr 365 de yaptığım bu foemulasyon office 2016 da çalılır mı? Kurum program versiyonu düşük çünkü
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Google Sheets kullanın, hazırladığınız dosyaya her yerden erişebilirsiniz....


.
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Makro ile yapmak isterseniz aşağıdak kodu deneyebilirsiniz.
Önce verileri seçip makroyu çalıştırmanız gerek, veriler A sütununa sıralanacaktır.

Kod:
Public Sub Dene()

Dim rn As Range
Dim i As Long

i = 1
Application.ScreenUpdating = False
Range("A2:A" & Rows.Count).ClearContents

For Each rn In Selection
    If Not rn = Empty Then
        i = i + 1
        Cells(i, "A") = rn.Value
    End If
    
Next rn
Range("A2:A" & i).Sort Key1:=[A1]
Application.ScreenUpdating = True

End Sub
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Merhaba,
Makro ile yapmak isterseniz aşağıdak kodu deneyebilirsiniz.
Önce verileri seçip makroyu çalıştırmanız gerek, veriler A sütununa sıralanacaktır.

Kod:
Public Sub Dene()

Dim rn As Range
Dim i As Long

i = 1
Application.ScreenUpdating = False
Range("A2:A" & Rows.Count).ClearContents

For Each rn In Selection
    If Not rn = Empty Then
        i = i + 1
        Cells(i, "A") = rn.Value
    End If
  
Next rn
Range("A2:A" & i).Sort Key1:=[A1]
Application.ScreenUpdating = True

End Sub
Tablodaki verileri seçtim makro butonu atadım tıkladım çalışmadı... Ama makro penceresinden play e basınca oluyor. Bu nasıl oluyor böyle anlamadım...
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Merhaba,
Makro ile yapmak isterseniz aşağıdak kodu deneyebilirsiniz.
Önce verileri seçip makroyu çalıştırmanız gerek, veriler A sütununa sıralanacaktır.

Kod:
Public Sub Dene()

Dim rn As Range
Dim i As Long

i = 1
Application.ScreenUpdating = False
Range("A2:A" & Rows.Count).ClearContents

For Each rn In Selection
    If Not rn = Empty Then
        i = i + 1
        Cells(i, "A") = rn.Value
    End If
   
Next rn
Range("A2:A" & i).Sort Key1:=[A1]
Application.ScreenUpdating = True

End Sub
Bu kodda alfabetik sıralıyor ayrıca ben kolonları sıra ile dizelesin istemiştim... Yani sırasıyla B-C-D- sütunlarına o sütunu bitirdikten sonra geçsin
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Şu şekilde kodladım ama daha basiti yapılabilir mi?
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Ben sorunuzu tam olarak anlamamışım, aşağıdaki kodları dener misiniz?


Kod:
Public Sub Listele()

Dim col As Integer
Dim c   As Integer
Dim i   As Long
Dim j   As Long

Application.ScreenUpdating = False
col = Cells(2, Columns.Count).End(1).Column

Range("A2:A" & Rows.Count).ClearContents

For c = 2 To col
    j = Cells(Rows.Count, c).End(3).Row
    i = Cells(Rows.Count, "A").End(3).Row + 1
    Range(Cells(2, c), Cells(j, c)).Copy Range("A" & i)
Next c

Application.ScreenUpdating = True

MsgBox "İşlem Tamamlanmıştır...."

End Sub
 

Ekli dosyalar

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Merhaba,
Ben sorunuzu tam olarak anlamamışım, aşağıdaki kodları dener misiniz?


Kod:
Public Sub Listele()

Dim col As Integer
Dim c   As Integer
Dim i   As Long
Dim j   As Long

Application.ScreenUpdating = False
col = Cells(2, Columns.Count).End(1).Column

Range("A2:A" & Rows.Count).ClearContents

For c = 2 To col
    j = Cells(Rows.Count, c).End(3).Row
    i = Cells(Rows.Count, "A").End(3).Row + 1
    Range(Cells(2, c), Cells(j, c)).Copy Range("A" & i)
Next c

Application.ScreenUpdating = True

MsgBox "İşlem Tamamlanmıştır...."

End Sub
Teşekkür ederim peki bunu buton ile çalıştırabilirmiyiz..
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Tabiki, bir buton ekleyin ve o butona makro atayın.
Atadığınız makronun adı Listele olmalı.
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Tabiki, bir buton ekleyin ve o butona makro atayın.
Atadığınız makronun adı Listele olmalı.
Valla çok sağolun bu kodu da çalışacağım...
Birde şu şekilde ekteki gibi daha pratik çözebildim...
Ama cevabınız ve farklı bir yol ile çözülmüşü gerçekten daha iyi anlamamı sağlıyor... Çok teşekkür ederim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,235
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bende biraz Google E-Tablo'lar üzerinde çalıştım..

Alternatifler;

C++:
=TOCOL(TRANSPOSE(B2:F18);1)
C++:
=FILTER(FLATTEN(B2:F18);LEN(FLATTEN(B2:F18)))
C++:
=QUERY(FLATTEN(TRANSPOSE(B2:F18));"Select * Where Col1 Is Not Null")
 

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
123
Excel Vers. ve Dili
M.OFFICE 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
26-12-2027
Bende biraz Google E-Tablo'lar üzerinde çalıştım..

Alternatifler;

C++:
=TOCOL(TRANSPOSE(B2:F18);1)
C++:
=FILTER(FLATTEN(B2:F18);LEN(FLATTEN(B2:F18)))
C++:
=QUERY(FLATTEN(TRANSPOSE(B2:F18));"Select * Where Col1 Is Not Null")
Hocam çok teşekkür ederim. Bu forumu seviyorum. Hem öğreniyorum hem de farklı alternatifleri görüyorum. İnsan gerçekten geliştiriyor kendini
 
Üst