Range : Sort

Prasyarat:


Mengurutkan data Range adalah tindakan penting dalam analisis data dan pengolahan informasi.

Dalam Microsoft Excel, mengurutkan data memungkinkan kita untuk mengorganisir dan menganalisis informasi dengan lebih baik.

Untuk materi kali ini, saya akan menjelaskan cara mengurutkan range dengan menggunakan VBA di Excel.

Mengurutkan Range Dengan SORT

Mengurutkan data dalam lembar kerja Excel bisa dilakukan dengan beberapa metode, bisa dengan membuat Algoritma sendiri misalnya seperti Algoritma BubleSort atau menggunakan fungsi bawaan yang sudah disediakan Excel.

Didalam Excel sendiri sudah ada fungsi bawaan yaitu Range.Sort. Dimana fungsi ini untuk mengurutkan data didalam range.

Berikut ini adalah sintaksis dari fungsi Sort.

expression.Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

Untuk memudahkan beberapa argument akan saya jelaskan pada VBA tingkat lanjut. Untuk saat ini yang paling penting dan paling dibutuhkan dalam melakukan SORT hanya 3 argumen saja. yaitu :

  • Key – Range atau kolom yang akan di urutkan
  • Order – Urutan penyortiran baik naik atau turun.
  • Header – Menyatakan apakah kolom yang akan disortir memiliki header atau tidak.

Parameter Order digunakan untuk menentukan urutan pengurutan. Order dapat diatur xlAscending (secara default) untuk pengurutan menaik dan xlDescending untuk pengurutan menurun.

Sedangkan untuk header diatur dengan xlYes dan xlNo untuk menyatakan kolom yang di sortir memiliki header atau tidak.

Agar lebih mudah dipahami, disini saya sudah menyiapkan data untuk nantinya dilakukan SORT. Berikut ini adalah tampilan data sebelum dilakukan penyortiran.

Contoh 1 : SORT Dengan Header

Untuk contoh pertama dan yang paling umum adalah melakukan Sort pada table yang memiliki Judul kolom atau Header.

Script untuk Sort pada kolom yang memiliki header bisa dibuat seperti dibawah ini.

Sub SortRange()
Range("B2:E12").Sort Key1:=Range("E2"), _
                     Order1:=xlDescending, _
                     Header:=xlYes
End Sub

Hasilnya table data setelah script diatas dijalankan akan berubah menjadi seperti dibawah ini :

Contoh 2 : SORT Tanpa Header

Untuk contoh kedua, misalnya jika pada table data atau range tidak memiliki judul kolom atau header, maka Key bisa diarahkan ke data paling atas, dengan status Header diisi dengan xlNo.

Untuk penulisan scriptnya bisa dibuat seperti dibawah ini.

Sub SortRange()
Range("B3:E12").Sort Key1:=Range("E3"), _
                     Order1:=xlDescending, _
                     Header:=xlNo
End Sub

Dan hasil dari script diatas ketika dijalankan akan menjadi seperti dibawah ini.

Contoh 3 : SORT Multi Column

Pada contoh ketiga ini jika ingin melakukan SORT di beberapa kolom secara sekaligus.

Jika diperhatikan pada hasil SORT sebelumnya, pada kolom Nama belum ter-sort. Terlihat pada Nama Novi berada diatas nama Budi.

Agar bisa melakukan SORT pada kolom Nama dan juga Umur, maka script bisa dibuat seperti ini.

Sub SortRange()
Range("B2:E12").Sort Key1:=Range("E2"), _
                     Order1:=xlDescending, _
                     Key2:=Range("B2"), _
                     Order2:=xlAscending, _
                     Header:=xlYes
End Sub

Dan hasilnya bisa dilihat dibawah ini.

Jika kolom yang akan diurutkan lebih banyak lagi bisa dilanjutkan dengan mengisi Key3.

List Tutorial
Apa yang sedang kamu cari?

Temukan beberapa kata kunci yang diinginkan.

Search