Saya membuat posting an beberapa kali , karena ada ide yang muncul tiba2. Jadi 
sekaian di kirim . Tetapi kritik dan saran , saya terima dengan senang hati...
 To: belajar-excel@yahoogroups.com
From: mr.nm...@gmail.com
Date: Mon, 31 Oct 2011 13:16:52 +0700
Subject: Re: [belajar-excel] Menyisipkan data di kolom sebelah


















 



  


    
      
      
      BeExceler semuanya,

Saran mbak Haps ini patut dipertimbangkan.

Posting one liner tidak dianjurkan oleh milis.
Mengembangkan solusi dengan berbagai varian kasus dan solusi adalah perbuatan 
yang baik. Kebaikan tersebut akan lebih tampak kebaikannya ketika dirangkum 
menjadi satu cerita yang utuh dalam satu posting yang disertai workbook berisi 
beberapa sheet tentang masing-masing proses pengembangannya.


Hal ini akan membuat BeExceler yang bergairah dalam belajar ini akan lebih 
mudah serta utuh merenunginya.

Wassalamualaikum Wr. Wb.
Kid.


2011/10/31 Haps <hapsari.stlizb...@gmail.com>

















 



  


    
      
      
      [ Mohon maaf, O.O.T ]---------------------
Dengan posting hanya sebaris (bahka se "kata") itu,...... Mungkin maksud Pak 
Amar : meng-iya-kan pelajaran dari pak  jkssxls




Sebetulnya OneLiner Posting seperti itu, termasuk tidak memenuhi imbauan 
/peraturan milis.. 




Mengenai posting mulai yg ke3 atau ke4 sampai terakhir (ke 9) dari pak 




jkssxls, dengan posting OOT beruntun-nya itu, mungkin maksudnya : 




"Menjawab pertanyaan Pak Scorpio Alon tetapi sudah melebihi hal yg ditanyakan  
(sudah OOT tetapi tanpa bilang OOT )"




Menurut pendapatku, pelajaran yg disampaikan cukup bagus, walaupun




hal sejenis sudah pernah ada yg menyampaikan di milis (dengan formula variasi 
lain, yg seingat saya lebih pendek).





Posting itu, sekali lagi menurut pendapat saya saja, akan lebih bagus lagi 



jika di-SATUKAN dlm satu paket, kemudian
* bisa diposted dlm TOPIK BARU (agar tidak OOT)* atau di-unggah ke area FILES 
di milis ini (melalui moderator)



* atau bisa juga ditulis dalam posting secara Serial..


Saya berpendapat bahwa posting sudah OOT karena Subjectnya 
adalah:  "Menyisipkan data di kolom sebelah"




sementara penjelasan Bapak  jkssxls mulai posting ke 3 atau 4 sampai

yang terahir (posting ke 9 ) sudah keluar dari topik tsb.





Agak istimewa juga: satu orang menanggapi 1 topik sampai 9 kali, sedangkan




sifat milis bukan sepeti chattting, di mana tulisan di milis ditulis tidak 
terlalu



tergesa-gesa (agar tidak perlu sering diralat & revisi ) sedangkan di chatting 




semuanya serba spontan.. karena lawan bicara menungggu di depan komputer 

di seberang sana...




Juga ada satu hal yg sebaiknya diingat:Nasehat / palajaran yg diberikan 
biasanya hanya akan didengar / dibaca 




oleh pihak lain KALAU statusnya DITANYA-KAN


Hal yg tidak ditanyakan tetapi kita jelaskan dengan volume yg cukup besar, 
biasanya tidak dibaca oleh audience..



(jadi sebaiknya jangan kecewa, karena 'psikologi masa' memang seperti itu)

Jika kita lihat bahwa Pak Scorpio Alon pun, hanya sekali saja menanggapi 



tangapan2 dari members lain (itu pun hanya mengquote jawaban dari Bp Ghozi), 



kita sudah dapat menyimpulkan sendiri sikap kak Scropio Alon (tentu saja 
kesimpulan kita bisa salah)


Mohon maaf posting ini pun OOT (out of topic) tetapi diusahakan untuk 
dipostedterdorong oleh rasa sayang kepada milis dan semua members & 
moderatos-nya



dan sama sekali bukan untuk memperngaruhi pendapat members lailn bahwa hal spt 
itu dilarang...





CMIIW

salam sayang, warm regards & wassalamualaikum wr wb.-haps-






2011/10/30 Amar luqman Hakim <amarluqmanha...@yahoo.com>



















yo



--- Mods ---

Maksudnya apa ya ?

Moga-moga ada penjelasan yang lebih baik.

------------
________________________________
Dari: jkssxls Sudarsono <jkss...@hotmail.com>





Dikirim: Sabtu, 29 Oktober 2011 14:52

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.
 






    
     

    
    






  










    
     

    
    






                                          

Reply via email to