Hai Winov,

Formula :
=LookUp( SumProduct( (a2:c2<>"")*10^(3-{1,2,3}) ) , {0,100,101,110,111} ,
{"?","buka","tutup","titip","confirm"} )

memanfaatkan karakteristik fungsi lookup, yaitu mencari dilarik pencarian,
yang terakhir sesuai dengan kriteria lookup.

Pada kasus ini, terbentuk suatu pola kriteria yang terdiri dari 3 kolom
dengan setiap kolom dalam kondisi ada isi atau tidak ada isi.
Kondisi yang terbentuk hanyalah 2 kondisi, seperti halnya kondisi TRUE atau
FALSE. Ada isi bisa diwakilkan ke TRUE dan tidak ada isi bisa diwakilkan ke
FALSE.
Artinya, jika ada isi maka langsung dikonversi ke nilai TRUE. Tidak ada isi
ke nilai FALSE. Maka terbentuklah bunyi :
a2<>"" untuk kolom 1, b2<>"" untuk kolom 2, dan c2<>"" untuk kolom 3. Jika
dikumpulkan menjadi sebuah larik data, maka akan berbunyi : a2:c2<>""

Kombinasi kriteria berisi 3 kolom dengan kolom ke-2 dan ke-3 akan berisi
jika kolom ke-1 ada isinya akan berupa kemungkinan :
kol1            kol2           kol3
(kosong)     (kosong)    (kosong)
ada            (kosong)    (kosong)
ada            (kosong)    ada
ada            ada           (kosong)
ada            ada           ada

yang diubah nilainya menjadi TRUE atau FALSE :
kol1            kol2           kol3
FALSE     FALSE         FALSE
TRUE       FALSE         FALSE
TRUE       FALSE         TRUE
TRUE       TRUE            FALSE
TRUE       TRUE          TRUE

karena TRUE setara 1 dan FALSE setara 0, maka bisa diubah juga menjadi :
kol1  kol2  kol3  bentuk_akhir_gabungan   nilai_output
0       0      0                 000                        ?
1       0      0                 100                     buka
1       0      1                  101                      tutup
1       1      0                  110                    titip
1       1      1                   111                    confirm

kemudian kolom bentuk_akhir_gabungan di-sort ASC
dan akan membentuk larik angka                        {  0   ,   100   ,
101   ,   110   ,    110     }
dengan larik nilai output yang bersesuaian adalah { "?" , "buka" , "tutup"
, "titip" , "confirm" }

Nah, kondisi kol1 2 dan 3 yang dibentuk dalam TRUE atau FALSE dengan bunyi
a2:c2<>"" harus diubah menjadi suatu nilai 3 digit
digit ke-1 untuk kol1, digit ke-2 untuk kol2, dan digit ke-3 untuk kol3
Berarti,
digit ke-1 harus menyediakan 2 digit dibelakangnya, yaitu dengan
mengalikannya dengan 100
digit ke-2 harus menyediakan 1 digit dibelakangnya, yaitu dengan
mengalikannya dengan   10
digit ke-3 harus menyediakan 0 digit dibelakangnya, yaitu dengan
mengalikannya dengan     1
agar kalau dijumlahkan seluruh hasil perbandingan kol1 sampai kol3 akan
terbentuk          111 jika semua kolom terisi data
Andaikan kol2 kosong, berarti FALSE yang setara 0 akan membuat nilai 10
(penyedia digit setelahnya) akan dikali 0
maka pada kondisi TRUE   FALSE   TRUE        akan terbentuk    1*100
0*10     1*1   yang jika ditambahkan menjadi 100+0+1=101

Untuk menjumlahkan semua hasil perkalian kriteria tiap kolom (yang dibentuk
a2:c2<>"") digunakanlah fungsi SumProduct yang bisa bekerja dengan inputan
berupa array.

Sedangkan proses perkaliannya untuk menghasilkan 100 , 10 , 1 bisa dengan :
a. suatu larik { 100 , 10 , 1 }
b. atau ekspresi 10^{ 2 , 1 , 0 }
c. atau ekspresi 10^( 3 - { 1 , 2 , 3 } )

ekspresi c digunakan pada formula agar tampak kunci pendinamisan formula
ketika ada banyak kolom kriteria lainnya, yaitu dengan mengubahnya menjadi
Column( $a:$c ) jika kriteria 3 kolom menggantikan larik berbunyi { 1 , 2 ,
3 }
Jadi, formula di atas bukan formula akhir terpendek, tetapi formula yang
bisa dengan mudah didinamiskan penggunaannya.

Pada kondisi kombinasi setiap kolom kriteria yang banyak, maka penggunaan
larik {  0   ,   100   ,   101   ,   110   ,    110     } yang bersesuaian
dengan larik { "?" , "buka" , "tutup" , "titip" , "confirm" } diubah
menjadi suatu tabel 2 kolom, yaitu kolom pertama adalah nilai
bentuk_akhir_gabungan dan kolom kedua adalah nilai_output
bentuk_akhir_gabungan      nilai_output
0                                       ?
100                                    buka
101                                    tutup
110                                     titip
111                                     confirm

dan fungsi vLookUp atau formula Index Match juga menjadi bisa digunakan
sebagai alternatif penggunaan fungsi LookUp

Jadi, pada formula berbunyi :
=LookUp( SumProduct( (a2:c2<>"")*10^(3-{1,2,3}) ) , {0,100,101,110,111} ,
{"?","buka","tutup","titip","confirm"} )
bagian :
SumProduct( (a2:c2<>"")*10^(3-{1,2,3}) )    adalah nilai_lookup
{0,100,101,110,111}             adalah larik pencarian
{"?","buka","tutup","titip","confirm"}     adalah larik nilai output yang
diinginkan

Bagian SumProduct( (a2:c2<>"")*10^(3-{1,2,3}) ) bisa diubah menjadi :
> Sum( (a2:c2<>"")*10^(3-{1,2,3}) )   tetapi formula harus di-enter sebagai
array formula (tekan Ctrl Shift Enter)
> 10^(3-{1,2,3})   bisa diganti menjadi larik { 100 , 10 , 1  }
> 10^(3-{1,2,3}) juga bisa diganti menjadi 10^(3-Column($a:$c))

Sama kan dengan konsep pembentukan kolom bantu TRUEFALSETRUE dan sebagainya
yang sudah disampaikan pada posting sebelum posting formula ini...

:)
gitu kelleez ye..
memahami suatu formula memang dibutuhkan membaca ulang setiap bagian si
formula tersebut berkelleeez-kelleez..

Wassalam,
Kid.




2014-05-13 6:46 GMT+07:00 Winov X [email protected] [belajar-excel] <
[email protected]>:

>
>
> Yth Mr Kid,
> itu formula keren banget
>
> bisa minta tolong dijelaskan gak?
>
> tengkyu sebelumnya
>
> -Win-
>   Pada Senin, 12 Mei 2014 19:41, "'Mr. Kid' 
> [email protected][belajar-excel]" <
> [email protected]> menulis:
>
>  Hai Iqbal,
>
> misal data di A2:C2, di D2 bisa juga diisi formula : (bukan array formula)
> =LookUp( SumProduct( (a2:c2<>"")*10^(3-{1,2,3}) ) , {0,100,101,110,111} ,
> {"?","buka","tutup","titip","confirm"} )
>
> copy ke baris data lain.
>
> *** jika regional setting komputer setempat adalah Indonesian, maka
> formula akan menjadi :
>
> =LookUp( SumProduct( (a2:c2<>"")*10^(3-{1\2\3}) ) ; {0\100\101\110\111} ;
> {"?"\"buka"\"tutup"\"titip"\"confirm"} )
>
> Wassalam,
> Kid.
>
>
>
>
>
>
> 2014-05-11 10:48 GMT+07:00 'Muhammad Iqbal' 
> [email protected][belajar-excel]
> <[email protected]>:
>
>
>   Dear be exceler,
> Mohon bantuan untu case seperti berikut ini
>
>  *A*
>  *B*
>  *C*
>  *result*
>  text
>
>
>  buka
>  text
>  text
>
>  titip
>  text
>  text
>  text
>  confirm
>  text
>
>  text
>  Tutup
>
> Bagai mana rumusan yang bisa saya terapkan bila kolom “result” ber logika,
> Jika kolom A berisi data, maka tulislah “Buka”
> Jika kolom A dan B berisi dana , maka tulis “titip
> Jika kolom A dan C berisi data, maka tulis “tutup”
> Jika kolom A, B dan C berisi data, maka tulis “confirm”
>
>
> Regard
> *Muhammad Iqbal*
>
>
>
>
>    
>

Kirim email ke