Rabu, 27 Oktober 2010

Penggunaan Array

Sebagai tambahan informasi pada tulisan saya sebelumnya yaitu tentang SumIf with multiple condition , caranya adalah dengan memanfaatkan array. Nah cara ini tidak hanya berlaku untuk SUM, tetapi anda juga bisa mengaplikasikan dengan fungsi-fungsi yang lain seperti MAX, MIN, Average, dll

Dan yang perlu diingat bahwa penggunaan array sebaiknya seminimal mungkin, karena terlalu banyak array dalam worksheet anda akan mempengaruhi performa excel anda. Jadi gunakan cara ini jika memang fungsi standard di excel sudah mencukupi kebutuhan anda....

Selasa, 26 Oktober 2010

SumIf with multiple condition

Sumif pada excel hanya bisa digunakan untuk 1 kondisi saja, misalnya ">2" atau "=0".
Syntax SumIf : "=sumif(range, criteria, [sum_range])"

Bagaimana jika kita ingin melakukan sumif tetapi dengan menggunakan lebih dari 1 kondisi ?
Solusinya adalah kita bisa memanfaatkan array, bagi yang belum mengerti tentang istilah array, artinya adalah sekumpulan/himpunan data.

Himpunan data bisa digambarkan sebagai berikut :
{1,2,3,4,5,6,7,8,9,0}

Syntac untuk menggunakan sumif dengan array sedikit berbeda dengan sumif pada umumnya.
Syntac untuk Sumif dengan multi kondisi adalah sbb :
=Sum(if(filter,if(filter,if(filter,[sum_range]))))
akhiri dengan menekan tombol Shift + Ctrl + Enter
Jika penekanan tombol sudah benar maka hasilnya akan tampak pada kolom formula sbb :
{=Sum(if(filter,if(filter,if(filter,[sum_range]))))}

contoh untuk pengisian filter adalah sbb:
$A1:$A10 > 5
(Cara baca : dalam cell A1 hingga A10 manakah yang nilainya lebih besar dari 5)
Jika kita lakukan evaluate formula maka hasilnya akan nampak sbb :
{False,False,False,False,False,False,True,True,True,True}

Note : Anda boleh saja mengartikan False = 0 dan True = 1

Dan sum_range yang akan masuk dalam perhitungan adalah posisi nilai , dimana semua filternya menghasilkan True, jika ada satu saja dari filter pada posisi nilai tersebut menghasilkan False, maka nilai tersebut tidak akan masuk dalam perhitungan.

Misal :
Kolom A1:A6 --> Data : {1,2,3,4,5,6}
Filter 1 : Data >3 --> Hasilnya adalah : {False,False,False,True,True,True}
Filter 2 : Data <6 --> Hasilnya adalah : {True,True,True,True,True,False}

Maka jika diformulakan : "=Sum(if(A1:A6>3,if(A1:A6<6, A1:A6)))"
Hasilnya adalah 9
Mengapa bisa 9 ? karena posisi array yang semuanya menghasilkan True ada pada posisi ke 4 dan 5

Semoga membantu
Thanks

Senin, 25 Oktober 2010

Multi Condition for Conditional Formatting

Conditional Formatting adalah feature yang disediakan oleh excel untuk membantu kita dalam pembacaan data. Dengan conditional formatting ini, banyak hal yang bisa kita lakukan, misalnya mengubah warna cell/font jika nilai dalam cell tersebut sesuai dengan ketentuan
Untuk mengakses menu conditional Formating lihat pada gambar dibawah :












Akan muncul form berikut

Sebagai contoh, jika kita ingin mengetahui jumlah pengunjung yang lebih dari 400, lakukan :

1. Block kolom jumlah pengunjung
2. Masuk dalam menu conditional formatting
3. Pada Kolom 1 isi dengan Cell Value Is
4. Pada Kolom kedua isi dengan Greater Than
5. Pada kolom ketiga isikan angka 400
6. Kemudian tekan tombol Format
7. Pilih tab Patterns, kemudian pilih warna merah
8. Sebagai gambaran bisa dilihat pada image dibawah :
 
Hasil dari conditional formating bisa di lihat dibawah :
 
Nah, sekarang bagaimana caranya untuk membuat conditional formatting lebih dari 1 syarat ?

Misalnya yang diminta adalah tandai data Bulan July dengan Tahun 2010


















Caranya adalah sbb:
1. Pilih Formula Is
2. Isikan formula seperti pada gambar
=AND($B74=$B$72,$C74=$C$72)

Rabu, 20 Oktober 2010

Membuat Data Validation List dari Sheet Lain

Seringkali kita membuat Validation List pada beberapa sheet dengan isi yang sama, tetapi pada Excel (2003) kita tidak bisa select source list pada sheet yang berbeda.

Ada 2 cara untuk membuat Data Validation List yang sourcenya berasal dari Sheet yang lain.
1. Menggunakan Define
a. Select Range yang akan dibuat List (Source)
b. Pilih Menu Insert -> Name -> Define
c. Isikan Names In Workbook, Misal : DataKu
d. Pindah ke Sheet Lain
e. Pilih Cell yang akan di buat List
f. Kemudian pilih Menu Data -> Validation
g. Pada Kolom Allow pilih List
h. Kemudian pada kolom Source isikan =DataKu

2. Menggunakan Fungsi INDIRECT
Jika kita asumsikan range A1:A10 adalah source yang terletak pada Sheet1. Maka untuk membuat Data Validation List pada Sheet2 adalah sebagai berikut :
a. Pilih Cell yang akan di buat List
b. Kemudian pilih Menu Data -> Validation
c. Pada Kolom Allow pilih List
d. Kemudian pada kolom Source isikan =INDIRECT("Sheet1!$A$1:$A$10")

Untuk Indirect terdapat kelemahan pada saat nama Sheet Source di ubah, sehingga harus mengubah Data Validation Source pada Cell yang di setting sebagai Data Validation List

Misal Nama Sheet awal adalah Sheet1 , fungsi indirectnya adalah =INDIRECT("Sheet1!$A$1:$A$10")

Pada saat nama sheet1 diubah menjadi Master , maka fungsinya harus diubah menjadi =INDIRECT("Master!$A$1:$A$10")

Semoga bermanfaat....

Fungsi INDIRECT

Fungsi INDIRCT berfungsi untuk mengubah text menjadi formula.
Sebagai contoh :
Cell A1 diisi dengan angka 5
kemudian cell A2 diisi dengan =INDIRECT("A1")
maka hasilnya adalah angka 5

Fungsi indirect juga bisa digunakan untuk lintas sheet
misal =INDIRECT("Sheet1!A1")

Kelemahan fungsi INDIRECT adalah jika digunakan cukup banyak dalam satu file excel, maka kinerja excel akan sangat lambat, hal ini disebabkan pada saat kita melakukan perhitungan di excel, maka akan dijalankan secara otomatis autocalculation.

Fungsi INDIRECT ini bisa juga disebut sebagai volatile function
Selain INDIRECT ada beberapa volatile function antara lain :
CELL() 
OFFSET()  
TODAY()  
NOW()  
INFO()  
RAND()

Untuk menghindari penurunan performance, sebaiknya seminimal mungkin menggunakan volatile function tersebut

Thanks
Ferry Setiawan

Senin, 18 Oktober 2010

Disable Cut, Copy, Paste

Jika anda ingin data pada worksheet anda tidak bisa dicut, copy dan paste, caranya sangat mudah...
Tambahkan macro berikut pada worksheet anda :

Procedure yang pertama berguna untuk membatalkan perintah klik kanan pada mouse

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub

Procedure yang kedua berguna untuk membatalkan perintah cut atau copy

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Mudah kan ?
Semoga bermanfaat...

Fungsi MATCH dalam VLOOKUP

Seringkali dalam membuat suatu perhitungan , kita menggunakan fungsi VLOOKUP untuk mendapatkan nilai sesuai dengan lookup_value yang kita kehendaki

Syntax : VLOOKUP(lookup_value, array_date,column_index,[range_lookup])
Lookup_Value : Nilai yang akan dicari posisinya
Array_Data : Array (sekumpulan) data
Column_Index : Nomor kolom berdasarkan array_data
Range_Lookup :
-. Jika diisi dengan True, maka hasilnya akan sesuai dengan lookup_value, tetapi jika lookup_value tidak ditemukan dalam array_data maka hasilnya adalah nilai terbesar yang paling mendekati dengan lookup_value yang akan muncul
-. Jika diisi dengan False, maka hasilnya akan sesuai dengan lookup_value, tetapi jika lookup_value tidak ditemukan dalam array_data maka hasilnya adalah #N/A







Bagaimana jika dilakukan insert column pada column C ?
hasilnya adalah sebagai berikut :






Pada column Result hasilnya menjadi kacau, hal ini disebabkan karena Column_Index bersifat statis, tidak bisa mengikuti perubahan column.

Bagaimana solusinya ?

Solusinya kita bisa menggunakan Fungsi MATCH di dalam VLOOKUP





Setelah di lakukan insert Column C, hasilnya adalah sebagai berikut






Hasilnya sama dengan sebelum di lakukan insert column
Semoga bermanfaat...

Fungsi MATCH

Fungsi MATCH berfungsi untuk mendapatkan posisi suatu nilai dalam suatu array.

Syntax : MATCH(Lookup_Value, Array_Data, Match_Type)

Lookup_Value : Nilai yang akan dicari posisinya
Array_Data : Array (sekumpulan) data

Match Type :

-. Jika 1, hasilnya adalah posisi dimana Lookup_Value berada, atau posisi nilai terbesar yang paling mendekati dengan Lookup_Value, syaratnya adalah array_data harus berurutan (kecil ke besar)

-. Jika 0, hasilnya adalah posisi dimana lookup_value berada, dan datanya tidak harus berurutan

-. Jika -1, hasilnya adalah posisi dimana Lookup_Value berada, atau posisi nilai terkecil yang paling mendekati dengan Lookup_Value, syaratnya adalah array_data harus berurutan (besar ke kecil)

-. Jika tidak diisi maka secara default akan dianggap 1


Contoh



Thanks
Ferry Setiawan

Jumat, 15 Oktober 2010

Fungsi INDEX

Fungsi INDEX dalam excel dapat kita gunakan untuk mendapatkan suatu nilai dari baris dan kolom yang kita kehendaki.

ntax:

INDEX(array, row, column)












array : adalah range untuk data , dalam contoh ini adalah di column B
row : adalah baris data dari array
column : adalah kolom data dari array, dalam contoh dituliskan 1, karena array data hanya 1 kolom (perhitungan nomor kolom tidak dihitung dari kolom A, tetapi dimulai berdasarkan kolom dalam range data, dalam contoh adalah kolom B)

Mengubah Baris Menjadi Kolom

Bagaimana cara untuk mengubah tampilan row data menjadi column data ?

Ada beberapa cara :
1. Manual, yaitu dengan menggunakan copy & paste special ,aktifkan option transpose
2. Formula, misal data yang ada berada dalam range (A1:A5), kemudian akan di mengubah menjadi column data (misal range(B1:F1)), lakukan langkah langkah berikut :
  • Block range(B1:F1)
  • ketikkan formula "=transpose(B1:F1)"
  • tahan Ctrl+Shift
  • masih dalam keadaan menekan tombol Ctrl+Shift, tekan tombol enter