Dear Irfano,
Penjelasan :
=ISNUMBER(MATCH(9^9,IF((A22:A$172=A22)*(C22:C$172>1),C22:C$172),1))*1
IsNumber : cek apakah numerik ?
*1 : untuk konversi TRUE atau FALSE menjadi numerik 1 atau 0
Match : Untuk mendapatkan nomor index array di lookup array berdasar suatu nilai yang di lookup (lookup value) menggunakan cara perbandingan tertentu (match type)
Match_Type : digunakan 1, untuk mencari yang sama atau kurang dari lookup value.
Sampai sini sudah betul semua.
Lookup_value : digunakan 9^9 dengan asumsi bahwa nilai ini tidak pernah dicapai oleh data yang di-input-kan. Dengan begitu, Match akan bekerja memeriksa seluruh item array lookup, karena tidak pernah ketemu nilainya.
Lookup_Array : disusun dengan formulasi kondisi, untuk membentuk datatype array lookup yang sesuai kebutuhan.
Yang dicari pada kasus ini adalah nilai terakhir dari nilai-nilai yang lebih dari 1 untuk kode tertentu saja.
nilai terakhir berarti menuntut pemeriksaan seluruh item array, dan lookup value sudah memenuhi asumsi (tidak ada input data sampai senilai 9^9)
nilai-nilai yang lebih dari 1 berarti hanya nilai lebih dari 1 yang harus jadi elemen array lookup
kode tertentu saja berarti lookup array harus dari kode tertentu saja.
dan satu lagi yang harus diingat, yaitu :
Lookup dalam excel selalu bekerja pada datatype yang sama.
Dengan semua keadaan tersebut, :
1. Yang dilookup adalah numerik, maka lookup array harus berisi numerik yang diperlukan saja
2. Semua data yang tidak diperlukan diubah menjadi bukan numerik
IF bisa menjadi alat untuk menyusun lookup array.
Bagian kondisi adalah penentu nilai yang boleh jadi elemen array, yaitu yang kodenya sesuai dan nilainya > 1 (udah betul)
Untuk bagian kondisi ini,
A. seluruh nilai yang bukan nol ( <> 0 ) dianggap TRUE oleh IF.
B. perkalian TRUE atau FALSE dengan TRUE atau FALSE akan menghasilkan 1 atau 0
Jika kondisi TRUE atau 1 (hasil perkalian bagian kondisi), maka isi dengan nilai data yang ada
Jika kondisi FALSE atau 0, maka isi dengan suatu nilai yang bukan numerik, misal sebuah teks, nullstring, atau boolean TRUE or FALSE. Nah default kondisi salah si fungsi IF adalah boolean FALSE.
Maka fungsi IF ini akan membentuk satu array yang sesuai harapan, yaitu numerik yang selalu > 1 dan FALSE seperti :
{ 1.2 , FALSE , FALSE , 1.5 , 2.7 , 1.01 , FALSE }
Lookup value 9^9 = 387420489 tidak pernah ketemu data, dan karena match_type adalah 1, maka data terakhir numerik yang dipakai, dalam contoh di atas adalah index elemen array untuk nilai elemen 1.01, yaitu 6
Pada kasus ini, posisi nilai data > 1 terakhir adalah patokan untuk penentuan akan dieksekusi atau tidak. Sekarang mari kita lihat, ketika array hasil Match berisi FALSE seluruhnya.
Hasil Match adalah error value #N/A, artinya tidak ada numerik yang > 1 untuk kode tersebut (bagian kondisi IF).
Fungsi ISNUMBER bertugas disini, seperti jaga gawang aja...
Dengan pertimbangan :
1. Nilai > 1 terakhir lah yang menjadi patokan eksekusi atau tidak. (jika ada nilai terakhir dibawah sana ~ hasil match bukan error value maka baris ini masih dieksekusi)
2. data yang banyak (pertimbangan sekunder)
Maka dibuatlah running reference. Perhatikan karakter $
A22:A$172
Cell awal yang diproses selalu mulai dari baris data tersebut, tetapi cell akhir selalu tetap, yaitu record terakhir tabel.
Kira-kira sudah rada jelas ya... kalau belum jelas, silakan tanya lagi.
Kid.
| maaf baru moderate sekarang... momods kurang tidur berhari-hari |
| jadi budak kantoooOOooorrr... |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
Nenhum comentário:
Postar um comentário