pak kid
maksih penjelsanya lengkap,, setelah satu kali baca belum begitu paham..langsung saya kopas untuk di baca lagi.. salam joko 2014-06-06 9:28 GMT+07:00 'Mr. Kid' [email protected] [belajar-excel] < [email protected]>: > > > hehehe... (kasus ini menggunakan data berorientasi horisontal loh ya) > bukan ndak bisa Pak, hanya mulai kurang efisien. > Biasanya CountIF akan sedikit lebih lambat dari Match kalau lebih dari > 100. Tapi ini relatif terhadap mesin masing-masing kok. > Pada data yang berorientasi vertikal, maka besar kemungkinan bahwa area > yang akan di CountIF apalagi CountIFs akan sangat banyak. > > Fungsi Count (termasuk yang pakai IF maupun IFs) akan menganalisa seluruh > cell yang dirujuk. Jika cell yang dirujuk ada 1000, maka keseluruhannya > (yang 1000 cell itu) akan diperiksa satu per satu untuk menghasilkan output > nilai hasil Count tersebut. Berarti, pasti minimal ada 1000 proses > pemeriksaan. > > Ketika kebutuhannya sekedar ada data atau tidak dengan 1 kriteria, berarti > tidak butuh informasi ada berapa datanya. Hasil Count > 0 berarti ada > datanya dan hasil Count = 0 berarti tidak ada datanya. Cukup hanya itu saja > yang dibutuhkan. Tidak peduli ada 1 atau 3 atau 5 data. Pada kebutuhan > seperti ini, sebenarnya yang dibutuhkan, minimal ketemu 1 saja maka proses > sudah cukup informasi untuk memutuskan bahwa ada datanya. Jika pemeriksaan > ada datanya atau tidak diperiksa dengan Count, maka akan ada proses > sia-sia, yaitu setelah mendapatkan hasil analisa bahwa menemukan 1 data > dimaksud, masih saja memeriksa cells lain sampai 1000 cell terperiksa. > > Itu sebabnya, untuk data yang banyak (asumsikan saja ada lebih dari 100 > data pada komputer yang bekerja berat), fungsi Count berpotensi melakukan > proses sia-sia yang cukup banyak. Maka pada kondisi ini (data lebih dari > 100 di komputer yang terbebani), kurang 'mesiniawi' jika ada banyak proses > sia-sia. Maka sebaiknya memilih menggunakan fungsi Match. > > Sampai disini, *kesimpulan sementara *adalah : (cek keberadaan data > berdasar 1 kriteria) > -> gunakan CountIF atau CountIFs secara bijak jika enggan menggunakan Match > -> Match lebih efisien dibanding CountIF atau CountIFs > > Pada kasus-kasus yang berupa pengecekan keberadaan data berdasar lebih > dari 1 kriteria (2,3,dst), akan sedikit berubah konstelasinya. > Kriteria yang lebih dari 1 akan membutuhkan pemeriksaan secara menyeluruh > berdasar kriteria-kriteria yang sesuai. > -> Fungsi CountIF jelas tidak bisa dipakai, kecuali jika akan menggunakan > kolom bantu yang menggabungkan semua kriteria dalam sebuah cell, sehingga > kriterianya menjadi 1 saja, yaitu komposit dari seluruh kriteria yang > dibutuhkan. > -> Fungsi CountIFs bisa digunakan dan akan bekerja dengan cara yang sama, > yaitu memeriksa seluruh cell rujukan. Jika ada 1000 cell, maka ke-1000 > cells itu akan diperiksa. Jika ada 2 kriteria, maka setiap cell dilakukan 2 > proses. Jadi total 2000 proses. Kecepatannya tidak akan lebih lambat 2 kali > lipat dari penggunaan terhadap 1 kriteria, melainkan hanya lebih lambat > sedikit saja. Artinya jika ada n kriteria, bukan berarti akan ekponensial n > melambatnya. > -> Fungsi Match bisa digunakan selama seluruh kriteria disusun membentuk > sebuah array. Artinya, jika ada 1000 cells data berdasar 2 kriteria, maka > Match akan membentuk array 1 dimensi berdasar 2 kriteria itu. Jadi dalam > hal ini, akan ada 3000 proses untuk membentuk arraynya saja, kemudian > ditambah sekian proses untuk proses pencariannya. > > Contoh : data kriteria 1 di C1:C1000 harus sama dengan 1 dan kriteria 2 di > G1:G1000 harus bernilai > 1500 > >> dengan Match > Match( 1 , (c1:c1000=1) * (g1:g1000>1500) , 0 ) > proses 1 : (c1:c1000=1) -> ada 1000 cells = 1000 proses > proses 2 : (g1:g1000>1500) -> ada 1000 cells = 1000 proses > proses 3 : * -> mengalikan hasil proses 1 dengan proses 2 -> ada 1000 > cells = 1000 proses > total 3000 proses > > setelah didapat array hasil proses 3, barulah melakukan proses pencarian > nilai 1 (lookup_value). Andai ditemukan pada item array ke 350 (karena item > ke-1 sampai item ke-349 di proses 3 menghasilkan nilai 0 dan item ke-350 > hasil proses 3 yang bernilai 1), maka akan ada tambahan 350 proses. > > Total 3000 + 350 proses = 3350 proses. > > >> Pada menggunaan CountIFs > CountIFs( c1:c1000,1,g1:g1000,">1500")>0 > prosesnya ada sebanyak : > proses 1 : c1:c1000 bernilai 1 -> ada 1000 cells = 1000 proses : asumsikan > ada 800 cells kolom C itu yang bernilai 1 > proses 2 : g1:g1000 > 1500 hanya pada yang kolom c nya adalah 1 -> ada 800 > cells = 800 proses : asumsikan ada 470 cells kolom G yang bernilai > 1500 > maka hasil CountIF (berupa sebuah nilai saja) bernilai 470 > proses 3 : memeriksa hasil proses 2 (yang cuma sebuah nilai, yaitu nilai > 470 hasil proses 2) apakah lebih dari 0 (ada datanya) -> 1 nilai = 1 proses > > Total : 1000 + 800 + 1 = 1801 proses > > Tentu selisih antara 3350 proses milik match terhadap 1801 proses milik > CountIFs cukup banyak, yaitu 1549 proses. Daripada proses itu digunakan > untuk hal yang ndak guna, mending digunakan untuk kegiatan lain alias > mengkalkulasi cell lain. > > Jadi, sampai disini, bisa disimpulkan bahwa : > 1. Fungsi CountIF, CountIFs, atau Match untuk memeriksa keberadaan data, > sebaiknya dipilih dengan bijak. > 2. Untuk keberadaan data yang berdasar 1 kriteria saja, akan efisien > dengan Match > 3. Jika keberadaan data berdasar kriteria akan menggunakan CountIF, > sebaiknya digunakan untuk jumlah record yang tidak banyak relatif menurut > kemampuan mesin setempat agar lebih 'mesiniawi' > 4. Pada keberadaan data yang berdasar lebih dari 1 kriteria, CountIFs > lebih efisien daripada Match yang membutuhkan proses pembentukan array 1 > dimensi. > > Sekarang, mari kita bayangkan jika ada 50000 data saja. > Yang lebih parahnya lagi, penggunaan rujukan ke seluruh kolom seperti > $c:$c atau $g:$g > Jika di xl2003 yang maksimum baris Excel ada 65000 sekian, penggunaan > CountIF akan bertambah 1 proses untuk mencari tahu dimana baris terakhir > sheet yang ada datanya (baris di last cell dalam sheet). > Jika dengan Match dan untuk 1 kriteria, maka tergantung ketemunya dimana > (alias tetap efisien). Jika pada kriteria yang lebih dari 1, maka > penggunaan Match yang ditulis : > Match( 1 , ($c:$c=1)*($g:$g) , 0 ) > akan bekerja mengolah data sebanyak 65000 sekian baris alias sama saja > datanya ada 65000 sekian, padahal yang terisi data hanya 1000 baris saja. > Bagaimana jika Excel yang digunakan adalah xl2007 ke atas yang ada 1M > lebih baris (1 juta lebih loh). Hasilnya, manusianya mengeluh tidak pada > tempatnya karena berujar : "Excel itu lemot sekale.... " dan dikabarkan ke > sluruh penjuru dunia tentang kelemotan Excel. Padahal kan yang lemot > manusianya kan ya... karena ndak mau belajar untuk memahami Excel. > > Jadi, rujukan ke seluruh kolom sebaiknya dihindari. Caranya bagaimana ? > Antara lain dengan salah satu opsi dari beberapa opsi berikut : > 1. Manfaatkan fitur Excel Table (xl2007 ke atas) atau List (xl2003) agar > area data menjadi dinamis dan mudah dirujuk secara tepat dalam > kedinamisannya > 2. Buat nama range yang merujuk ke suatu area secara dinamis. Tentu saja > dengan formula seperti Index dan kawan-kawan. Nah opsi ini membutuhkan > kemauan untuk belajar. Hati-hati loh... kegiatan belajar itu sangatlah > berat bagi manusia yang pengen maju dengan cara instan. Artinya, kemajuan > yang didapat instan adalah kemajuan semu... kemajuan bawang kotong alias > tong kosong sajah... > 3. Ubah sumber data jika belum berkaidah tabel database menjadi tabel > berkaidah tabel database, dan susun ulang proses untuk menghasilkan output > agar bisa memanfaatkan fitur seperti Pivot Table (baik Excel Pivot Table > atau Power Pivot [xl2010 keatas]) > > > Kira-kira demikian uraian singkatnya... > ;) > > Wassalam, > Kid. > > > > > 2014-06-06 8:20 GMT+07:00 joko welas [email protected] [belajar-excel] < > [email protected]>: > > >> >> pak kid >> >> maksih .. kalo boleh tau kenapa ya mr.kid kalo lebih dari 100 kok gak bisa >> dengan fungsi countif.... >> >> >> salam >> joko >> >> >> 2014-06-05 7:55 GMT+07:00 'Mr. Kid' [email protected] [belajar-excel] < >> [email protected]>: >> >> >>> >>> Untuk jumlah cell $D2:$K2 yang tidak lebih dari 100 >>> bisa dengan fungsi CountIF sebagai alat cek keberadaan suatu nilai, >>> seperti : >>> =( CountIF( $D2:$K2 , M$1 ) >0 ) *$L2 >>> >>> Wassalam, >>> Kid. >>> >>> >>> >>> 2014-06-04 10:29 GMT+07:00 'Bagus' [email protected] [belajar-excel] < >>> [email protected]>: >>> >>> >>>> >>>> >>>> Hai Joko; >>>> >>>> Coba begini: >>>> =ISNUMBER(MATCH(M$1,$D2:$K2,0))*$L2 >>>> Copas kekanan dan kebawah >>>> >>>> >>>> >>>> Wassalam >>>> >>>> ~ Bagus ~ >>>> >>>> >>>> >>>> ----- Original Message ----- >>>> *From:* joko welas [email protected] [belajar-excel] >>>> <[email protected]+[belajar-excel]> >>>> *To:* [email protected] >>>> *Sent:* Wednesday, June 04, 2014 8:47 AM >>>> *Subject:* [belajar-excel] memberi uang hadir otomatis [1 Attachment] >>>> >>>> >>>> >>>> asalamu alaikum wr. wb >>>> >>>> salam be excel >>>> >>>> begini suhu excel >>>> >>>> saya punya data rekap hadir. setiap peserta yang hadir dapat uang hadir. >>>> pertanyaanya. bagaimana memberikan uang hadir tersebut sesuai nama jang >>>> hadir saja. >>>> >>>> untuk jelasnya file terlampir. >>>> >>>> >>>> salam >>>> >>>> >>>> joko >>>> >>>> >>> >> > >

