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
>>>
>>>
>>
>  
>

Kirim email ke