Dear Mr. Kid & Mr. Franciscus SOG
Thank you very, very much atas penjelasan yang diberikan. I’ve got big Knowledge from You All..
Saya punya beberapa pertanyaan untuk masing2. :-D
1. Dear Mr. Kid.
Thank you very, very much Again.
Penjelasan yang sangat detail. Sudah detail sekali yang Mr. Kid paparkan (walopun saya butuh beberapa hari utk mencoba mengerti.. hehe.. tapi sudah lebih dari rada2 jelas buat saya.. hehe... Thanks.
Saya ingin dikoreksi:
Seperti yang Mr. kid jelaskan : [Yang dicari pada kasus ini adalah nilai terakhir dari nilai-nilai yang lebih dari 1 untuk kode tertentu saja]
nilai-nilai yang lebih dari 1 merupakan kondisi yang ada di kasus ini
[=ISNUMBER(MATCH(9^9,IF((A22:A$172=A22)*(C22:C$172>1),C22:C$172),1))*1].
Yang berarti data pada kolom value yang di cari adalah nilai > 1.
Saya punya beberapa kondisi yang jika di gambarkan seperti ini : nilai kolom VALUE > 1, nilai kolom VALUE_B>0.01 dan kolom VALUE_C<50
Apakah benar untuk formula untuk kondisi di atas seperti ini??
=ISNUMBER(MATCH(9^9,IF((A22:A$172=A22)*(C22:C$172>1)*(D22:D$172>0.01)*(E22:E$172<50),C22:C$172),1))*1
Hasil di kolom EXECUTE sudah sesuai dengan yang saya inginkan, saya hanya ingin di koreksi apakah formula yang saya buat sudah benar? Sekaligus untuk meyakinkan diri saya yang sementara ini agak rada-rada mengerti dengan formula yang Mr. kid berikan.. hehe… Terima Kasih buat Mr. Kid. J (file attached)
2. Dear Mr . Franciscus SOG
Terima Kasih banyak atas penjelasannya. Great Explanation.
Seperti penjelasan Mr. Franciscus SOG no. 3 tentang Ctrl+Shift+Enter, saya ingin bertanya, dikarenakan hasilnya pasti beda dengan hanya menekan Enter, Perbedaan secara KONSEP seperti apa? Terima kasih sebelumnya.
3. Apa fungsi (mengakhiri penulisan formula dengan menekan bersama
tombol Ctrl Shift Enter) ? Untuk mengeksekusi formula Array. Coba
ditekan ENTER saja, hasilnya pasti beda.
1 Pertanyaan lagi : Kenapa pada saat eksekusi, setelah baris pertama ada notifikasi ERROR, apakah berpengaruh besar?
Terima Kasih Buat All The Excell Master.
Salam
M . Irfan
Mining Engineer - BGM Mining Operation
PT ANTAM (Persero) Tbk, UBPN-MU
fano.theminer@yahoo.co.id | irfan@antam.com
+62812 1813 9359
"The Mind Is Like A Parachute, It Only Works When It's Open.."
From: XL-mania@yahoogroups.com [mailto:XL-mania@yahoogroups.com] On Behalf Of Mr. Kid
Sent: Saturday, May 14, 2011 5:24 PM
To: XL-mania@yahoogroups.com
Subject: Re: ]] XL-mania [[ Execute base on Condition
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.
2011/5/14 Irfano Miner <fano.theminer@yahoo.co.id>
Nenhum comentário:
Postar um comentário