maaf salah kirim.
>________________________________ >From: Amar luqman Hakim <amarluqmanha...@yahoo.com> >To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com> >Sent: Sunday, October 30, 2011 9:03 PM >Subject: Bls: [belajar-excel] Menyisipkan data di kolom sebelah > > > >yo > >--- Mods --- >Maksudnya apa ya ? >Moga-moga ada penjelasan yang lebih baik. >------------ > >________________________________ >Dari: jkssxls Sudarsono <jkss...@hotmail.com> >Kepada: Belajar-Excel Yahoo Groups <belajar-excel@yahoogroups.com> >Dikirim: Sabtu, 29 Oktober 2011 14:52 >Judul: RE: [belajar-excel] Menyisipkan data di kolom sebelah > > > > >Pelajaran berlanjut ( seperti sekolah saja ya... ) : >ada data misal di range c7:c11 : > >a >b >c >d >e >bila kita gunakan rumus : {=INDEX(C7:C11, ROW(2:3) )} hasilnya di range F7:F9 >: > >b >c >#N/A >bila kita gunakan rumus : { =INDEX(C7:C11, COLUMN(2:3) ) } hasilnya di >I7:K7 : > >a b c >Jadi penggunaan Row sbg index dapat dihandalkan dibandingkan Column >fungsi dibawah ini adalah mengambil data sesuai posisi indeks yg diinginkan : >option base 1 >Function AmbilArray(arraysumber, posambil) > Dim jumambil As Variant > jumdata = UBound(arraysumber) > jumambil = UBound(posambil) > Dim arrayhasil As Variant >' yg diinginkan kadang tak memenuhi syarat alias isi array kosong > ReDim arrayhasil(jumambil) > xarraysumber = WorksheetFunction.Transpose(arraysumber) >'ambil data yg diinginkan > ygsesuai = 0 > For i = 1 To jumdata >' jika isi array kosong > perror = IsError(xarraysumber(i)) > For j = 1 To jumambil >' sesuai dgn yg diinginkan dan tak kosong > If (i = posambil(j)) And Not perror Then > ygsesuai = ygsesuai + 1 > arrayhasil(ygsesuai) = xarraysumber(i) > End If > Next j > Next i >'hasil sesuai data yg ada > Dim hasilnya As Variant > ReDim hasilnya(ygsesuai) > For i = 1 To ygsesuai > hasilnya(i) = arrayhasil(i) > Next i > AmbilArray = WorksheetFunction.Transpose(hasilnya) >End Function > >rumus di range N7:N11 : {=IF( C7:C11>"b" , C7:C11 )} hasilnya : > >FALSE >FALSE >c >d >e >rumus di range Q7 : { =AmbilArray( IF(C7:C11>"c",C7:C11,null) , {3,5} ) } > hasil : > >e > >rumus di range T7:T8 : {=AmbilArray( IF(C7:C11>"c",C7:C11,null) , >{3,5} ) } hasil : > > e > e > >Rumus di range W7:W8 : {=AmbilArray( IF(C7:C11>="c",C7:C11,null) , {3,5} ) >} hasil : > >c > e > >Rumus di range Z7:Z9 : {=AmbilArray( IF(C7:C11>="c",C7:C11,null) , {3,5} ) >} hasil : > > c > e > #N/A > >Dari contoh2 di atas, dapat di ambil kesimpulan : >1. Penggunaan Row dapat dihandalkan >2. jika array mempunyai jumlah item 1 ( satu ) , maka rumus array jika dibuat >pada range yg melebihi , tidak akan menghasilkan #N/A > > >sekarang saya akan gunakan collection > >option base 1 >Function AmbilArray_Col(arraysumber, posambil) > Dim jumambil As Variant > jumdata = UBound(arraysumber) > jumambil = UBound(posambil) > Dim koleksi As New Collection >' yg diinginkan kadang tak memenuhi syarat alias isi array kosong > xarraysumber = WorksheetFunction.Transpose(arraysumber) >'ambil data yg diinginkan > ygsesuai = 0 > For i = 1 To jumdata >' jika isi array kosong > perror = IsError(xarraysumber(i)) > For j = 1 To jumambil >' sesuai dgn yg diinginkan dan tak kosong > If (i = posambil(j)) And Not perror Then > koleksi.Add Item:=xarraysumber(i) > End If > Next j > Next i >'hasil sesuai data yg ada > Dim hasilnya As Variant > ReDim hasilnya( koleksi.Count ) > For i = 1 To koleksi.Count > hasilnya(i) = koleksi.Item(i) > Next i > AmbilArray_Col = WorksheetFunction.Transpose(hasilnya) >End Function > > >Penggunaan mirip dgn fungsi AmbilArray , seperti {=AmbilArray_col( IF( >C7:C11>="c" , C7:C11 ,null), {3,5} ) } >Jadi kesimpulannya lebih baik gunakan Coolection jika jumlah item tak dapat >dipastikan. > >Selamat Belajar membuat Fungsi Array Formula sendiri. > > >________________________________ >To: belajar-excel@yahoogroups.com >From: jkss...@hotmail.com >Date: Thu, 27 Oct 2011 03:48:49 +0000 >Subject: RE: [belajar-excel] Menyisipkan data di kolom sebelah > > > >Tambahan penggunaan row dan column . > > >1 >2 >3 >4 >5 >{=INDEX(D7:D11, ROW(2:3) )} akan menghasilkan keluaran : > > >2 >3 >#N/A >{=INDEX(D7:D11, COLUMN(2:3) )} akan menghasilkan keluaran : > > >1 2 3 > >walaupun kita hanya ingin memilih indeks ke 2 dan 3 , penggunaan Column tidak >mendukung hal itu . >________________________________ >To: belajar-excel@yahoogroups.com >From: jkss...@hotmail.com >Date: Wed, 26 Oct 2011 09:43:23 +0000 >Subject: RE: [belajar-excel] Menyisipkan data di kolom sebelah > > >* ada pola baru dgn transpose nih > >sekarang kita bermain dengan posisi data pada baris : > >1 >2 >3 >4 >5 >6 >7 >8 >9 >10 > >dan mengubah menjadi : > >1 4 7 10 >2 5 8 #REF! >3 6 9 #REF! >kita dapat menggunakan : {=INDEX(B3:B12,ROW(1:3)+ {0,3,6,9} )} >tapi saya gunakan : > >{=INDEX(B3:B12,ROW(1:3)+ 3*(COLUMN(1:4)-1) )} > >untuk mengubah menjadi : >1 2 3 >4 5 6 >7 8 9 >10 #REF! #REF! > >kita dapat menggunakan : {=INDEX(B3:B12, COLUMN(1:3)+ TRANSPOSE({0,3,6,9}) >)} >tapi saya gunakan : >{=INDEX(B3:B12, COLUMN(1:3) + 3*(ROW(1:4)-1) )} > >________________________________ >To: belajar-excel@yahoogroups.com >From: jkss...@hotmail.com >Date: Tue, 25 Oct 2011 13:35:18 +0000 >Subject: RE: [belajar-excel] Menyisipkan data di kolom sebelah > > >pola 1,2,1,2 atau 1,2,3,1,2,3 atau 1,2,3,4,1,2,3,4 >dapat diakali dengan cara ? >{=MOD(ROW(1:20)-1,2)+1} --> 1,2,1,2 ... >{=MOD(ROW(1:20)-1,3)+1} --> 1,2,3,1,2,3 ... >{=MOD(ROW(1:20)-1,4)+1} --> 1,2,3,4,1,2,3,4 ... > >pola 1,1,2,2,.. atau 1,1,1,2,2,2, .. >{=CEILING(ROW(1:20)/2,1)} ---> 1,1,2,2 ... >{=CEILING(ROW(1:20)/3,1)} ---> 1,1,1,2,2,2 ... > >misal : >1 2 3 >4 5 6 >7 8 9 >10 11 12 >13 14 15 >16 17 18 >19 20 >menjadi : >1 >2 >3 >4 >5 >6 >7 >8 >9 >10 >11 >12 >13 >14 >15 >16 >17 >18 >19 >20 > gunakan : >{=INDEX(B16:D22, CEILING(ROW(1:20)/3,1) , MOD(ROW(1:20)-1,3)+1 ) } >silakan berkreasi dgn pola-pola bilangan lainnya..... > > > >________________________________ >To: belajar-excel@yahoogroups.com >From: jkss...@hotmail.com >Date: Tue, 25 Oct 2011 13:25:25 +0000 >Subject: RE: [belajar-excel] Menyisipkan data di kolom sebelah > > >gunakan array formula : >{=INDEX(B3:C12, CEILING(ROW(1:20)/2,1) , IF(ISEVEN(ROW(1:20)),2,1) )} > >rumus ini berpola {{1,1},{1,2},{2,1},{2,2},{3,1},{3,2} ... {10,1},{10,2}} > >CEILING(ROW(1:20)/2,1) dapat diganti oleh ROUNDUP(ROW(1:20)/2,1) >IF(ISEVEN(ROW(1:20)),2,1) dapat diganti IF(ISODD(ROW(1:20)),1,2) ' ini masa >saja > > > >________________________________ >To: belajar-excel@yahoogroups.com >From: sc0rpi0_b0...@yahoo.com >Date: Tue, 25 Oct 2011 16:58:45 +0800 >Subject: [belajar-excel] Menyisipkan data di kolom sebelah > > >Kepada para suhu X-cel > >Mohon pencerahan untuk kasus newbie yang pertama, kalo bisa jangan pake macro > >Thanks > > > > >