Solusinya tentu melakukan pengurutan atau sorting pada data asal tersebut dan kemudian diambil 10 record saja.
Nah, seiring kompleksitas pekerjaan kita. Sering sekali kita tidak ingin sumber data kita diganggu. Kita hanya ingin table terpisah yang mengambil 10 data berdasarkan pengurutan di table asal.
Bagaimana kita melakukan hal tersebut? Caranya bisa dengan menggunakan gabungan beberapa fungsi seperti ditunjukkan pada langkah-langkah berikut:
- Download file contoh dari https://belajar-excel.googlecode.com/files/belajar-excel-pageviews-sort.xlsx.
- Buka file tersebut dengan Excel.
- Terlihat ada 13 baris data jumlah pageviews dari website BelajarExcel.info. Kita akan mengurutkan top 10 jumlah pageviews dengan topiknya.
- Pada cell G4 masukkan rumus berikut.
=LARGE($C$4:$C$16,E4) - Copy rumus tersebut ke cell G5 s/d G13 dengan menggunakan fill handle.
- Terlihat data sudah terurut dari besar ke kecil, namun memang kita batasin untuk 10 baris saja.
- Pada cell H4 (di bawah kolom Occurrence), masukkan formula berikut.
=COUNTIF($G$4:G4,G4)
Rumus ini digunakan untuk menghitung kemunculan nilai dimulai dari data awal ($G$4) sampai baris ditemukannya nilai tersebut (G4). Kebetulan cellnya masih sama, tapi pada saat kita copy berikutnya maka alamat relatif cellnya akan berubah. - Copy rumus di atas ke cell H5 sampai dengan H13. Hasilnya terlihat sebagai berikut. Perhatikan untuk angka 1251 kita mendapatkan angka 1 untuk kemunculan pertama, dan angka 2 untuk kemunculan kedua.
- Sekarang kita akan coba mencari nomor baris kemunculan datanya di table asal dengan menggunakan fungsi MATCH. Pada kolom I4 masukkan rumus match berikut.
=MATCH(G4,$C$4:$C$16,0)
Setelah itu copy rumus tersebut ke I5 s/d I13. Terlihat hasilnya seperti pada gambar berikut, terlihat pada kemunculan ke 2 hasil indeks yang didapatkan tetap sama. Ini akan diubah pada perubahan rumus selanjutnya. - Rubah cell I4 dengan rumus berikut.
=IF(H4>1,MATCH(G4,INDIRECT("C"&(I3+1+3)&":C16"),0)+I3,MATCH(G4,$C$4:$C$16,0))
Copy kembali rumus tersebut ke cell I5 s/d I13. Hasilnya terlihat sebagai berikut.
Penjelasan: Karena untuk kemunculan kedua dan seterusnya diperlukan pengecekan tambahan, maka kita gunakan IF pada formula ini. Untuk kemunculan pertama rumusnya sama dengan sebelum perubahan. Tapi untuk kemunculan kedua dan seterusnya, kita akan mengambil range lookup yang dimulai dari titik penemuan baris sebelumnya (lihat illustrasi di bawah).
dan juga karena ada jarak antara range dan header, perhatikan bahwa di rumus INDIRECT ada tambahan offset baris sebesar 3. - Akhirnya kita akan menggunakan fungsi Indirect untuk mengambil Pada cell F4 masukkan rumus berikut.
=INDIRECT("B"&(I4+3))
Copy rumus tersebut ke cell F5 s/d F13. Hasilnya tampak sebagai berikut. - Selesai.
Demikian proses membuat top 10 nilai dengan menggunakan formula tanpa VBA (Visual Basic for Application) programming.
Anda bisa download file Excel yang sudah lengkap dengan solusi tersebut di halaman group kami di