Terima kasih Mr Kid,

nanti saya coba fahami dulu


2013/5/11 Mr. Kid <[email protected]>

> **
>
>
> hehehe....
> tumben baru nongol lagi...
>
> 1. Mengapa harus ada *C1  ?    =SUMIF($B$9:$B$22,A1,$C$9:$C$22)*C1
>     >> supaya hasil akhir menampakkan nilai sum berdasar kriteria di A dan
> terfilter melalui autofilter pada tabel data.
>
> 2. Apa fungsi formula di C1
> =1*(SUMPRODUCT(SUBTOTAL(3,OFFSET($B$8,ROW($B$9:$B$22)-ROW($B$8),0))*($B$9:$B$22=A1))>0)
>     >> C1 adalah cek keberadaan nilai kriteria di kolom A pada hasil
> autofilter.
>
>
> =1*(SUMPRODUCT(SUBTOTAL(3,OFFSET($B$8,ROW($B$9:$B$22)-ROW($B$8),0))*($B$9:$B$22=A1))>0)
> bahasa manusianya :
> "cel,cel, coba cek setiap record di kolom B
> [OFFSET($B$8,ROW($B$9:$B$22)-ROW($B$8),0)], jika terfilter oleh autofilter
> hitung jumlah cacah text di record tersebut [SUBTOTAL(3, .... )] kemudian
> periksa juga, apakah setiap record (tidak peduli terfilter atau tidak) itu
> memiliki nilai yang sama dengan nilai di A1 [($B$9:$B$22=A1)]. Jika
> keduanya terpenuhi (tetap tampil dalam autofilter dan [*] nilainya sama
> dengan A1), maka jumlahkan semuanya [SumProduct(....)] dan periksa apakah
> jumlah ini [SumProduct] lebih dari 0. Kemudian konversikan agar menjadi
> numerik dengan mengalikan 1 [1*]"
>
> Bagian 1* bisa dihilangkan. Itu hanya contoh jika hasilnya akan digunakan
> secara langsung dalam bentuk tipe data numerik.
> Pada kasus ini, dengan adanya proses perkalian dengan C1 dalam formula
> SumIF, maka formula di C1 ini tidak perlu dikonversi menjadi bertipe
> numerik.
> Jadi, hasil SumProduct(...)>0 adalah TRUE setara 1 atau FALSE setara 0
>
> Kira-kira penjelasan per bagiannya begini :
> 1. bagian ROW($B$9:$B$22)-ROW($B$8)
> >> adalah nomor indeks record, dimulai dari angka 1 sampai angka ke-N
> sesuai jumlah record (tanpa header)
> >> Row nya B9 - Row nya B8 = 1, Row nya B10 - Row nya B8 = 2, dst...
>
> 2. bagian OFFSET($B$8,ROW($B$9:$B$22)-ROW($B$8),0)
> >> adalah pemilih sebuah cell di kolom B berpatokan dari B8 (absolute =
> tetap) lompat ke bawah (baris berikutnya) sebanyak masing-masing hasil
> bagian nomor 1 tadi, yaitu 1,2,3,dst.
> >> karena cell patokan dalam Offset hanyalah sebuah cell, maka hasil
> offset juga sebuah cell karena tidak ada definisi tinggi dan lebar area
> hasil offset (alias menggunakan defaultnya).
> >> hasil offset ini adalah suatu range dan bukan nilai range. Oleh sebab
> itu bisa dirujuk oleh fungsi yang menuntut inputan berupa range seperti
> SubTotal, CountIF, dsb
>
> 3. bagian SUBTOTAL(3, hasil Offset )
> >> adalah penghitung agregat berdasar ketampakan range. Jadi, kalau tidak
> tampak akibat terfilter oleh autofilter, maka tidak diproses oleh subtotal.
> Ini salah satu karakteristik dari fungsi SubTotal.
> >> angka 3 adalah sebuah enumerasi yang mewakili fungsi agregat CountA.
> Jadi akan menghitung cacah keberadaan data pada range yang diproses.
> >> range yang diproses adalah hasil Offset (nomor 2) yang berupa sebuah
> range. Karena nomor 2 berproses sekian banyak kali sebanyak jumlah record,
> maka SubTotal ini juga akan berproses sebanyak jumlah record membentuk
> suatu array data.
> >> hasil subtotal berupa array nilai 0 (tidak ada data atau tidak tampak)
> atau 1 (ada datanya dan tampak) sebanyak jumlah record, seperti
> {1,0,0,1,0,1,dst}
>
> 4. bagian ($B$9:$B$22=A1)
> >> adalah perbandingan setiap record data di B9:B22 dengan nilai di A1
> >> perbandingannya adalah sama dengan. Jika sama maka bernilai TRUE
> (setara 1) dan jika tidak sama bernilai FALSE (setara 0)
> >> hasil bagian ini adalah array data bernilai TRUE atau FALSE sebanyak
> jumlah record juga seperti {TRUE,FALSE,dst...}
>
> 5. bagian *
> >> adalah hubungan antara kedua kriteria, yaitu hasil Subtotal (nomor 3)
> yang berisi array {1,0,dsb...} dengan hasil nomor 4 yang berupa array
> {TRUE,FALSE,dsb...}
> >> keduanya memiliki jumlah elemen array yang sama, yaitu sebanyak jumlah
> record di B9:B22
> >> kedua kriteria ini harus dipenuhi seluruhnya, karena diminta penanya
> adalah 'yang tampak di hasil autofilter' dan 'sesuai nilai di A1'
> >> maka logika penghubung kedua kriteria adalah logika AND yang setara
> perkalian yang memiliki notasi *
>
> 6. bagian SubTotal()*($B$9:$B$22=A1)
> >> adalah proses cek kedua kriteria (nomor 3 dan nomor 4) itu terpenuhi
> seluruhnya (*) atau tidak.
> >> karena bentuknya perkalian, maka tipe numerik * tipe Boolean = tipe
> numerik.
> >> jadi array {1,0,dsb..} * {true,false,dsb...} akan mengashilkan array 1
> atau 0 seperti {1,0,1,1,0,dsb...}
> >> elemen array hasil adalah sebanyak jumlah record juga.
>
> 7. bagian SumProduct()
> >> menjumlahkan seluruh hasil nomor 6.
> >> karakteristik SumProduct yang bekerja dengan inputan array maka formula
> tidak perlu CTRL SHIFT ENTER ketika seluruh array yang diproses SumProduct
> semuanya bisa memproses array secara langsung. Hal ini akan berbeda
> ceritanya ketika ada fungsi IF dalam SumProduct, karena fungsi IF tidak
> bisa bekerja sebagai array kalau tidak di enter dengan CTRL SHIFT ENTER
> >> hasil bagian ini adalah sebuah nilai dan bukan lagi suatu array.
> >> nilai hasilnya adalah 0 atau lebih dari 0.
> >> jika hasilnya lebih dari 0, maka minimal ada 1 record yang 'tampak
> dalam autofilter dan memiliki nilai sama dengan A1'
>
> 8. bagian SumProduct() > 0
> >> adalah bagian cek, apakah hasil SumProduct dapat diartikan ada record
> yang 'tampak dalam autofilter dan memiliki nilai sama dengan A1'
> >> hasil bagian ini adalah sebuah nilai dengan tipe Bolean (TRUE atau
> FALSE).
> >> TRUE berarti SumProduct menunjukkan ada record yang 'tampak dalam
> autofilter dan memiliki nilai sama dengan A1'
>
> 9. bagian 1* ( SumProduct() > 0 )
> >> adalah proses konversi tipe data dari tipe boolean hasil nomor 8
> menjadi bertipe numerik
> >> Boolean TRUE setara 1 dan Boolean FALSE setara 0
> >> nilai 1 artinya ada record yang 'tampak dalam autofilter dan memiliki
> nilai sama dengan A1'
> >> bagian ini adalah contoh jika hasil akan digunakan langsung.
> >> pada kasus ini sebenarnya tidak dibutuhkan adanya bagian konversi si
> nomor 9 ini, karena dalam formula SumIF di B1 ada proses perkalian dengan
> hasil C1 yang cukup sampai proses nomor 8 saja (coba saja hilangkan bagian
> 1* dari formula C1)
>
> Kira-kira demikianlah alurnya.
>
> hadeeh.. capek juga nulisnya... senam jari kok ya pas malem minggu ya...
> harapannya, ada banyak manfaat dalam dongeng malem minggu di atas.
>
> tetap semangat belajar guys.... gak peduli malem minggu atau malem jumat
> atau malem apapun....
> biar Indonesia yang kebanyakan hari libur ini bisa lebih maju
> setidaknya para pengguna Excel-nya...
>
> :)
>
> Wassalam,
> Kid.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 2013/5/11 Mansor <[email protected]>
>
>> **
>>
>>
>> Mr Kid,
>>
>> 1) Mengapa harus ada *C1  ?
>> =SUMIF($B$9:$B$22,A1,$C$9:$C$22)*C1
>>
>> 2) Apa fungsi formula di C1
>>
>>
>> =1*(SUMPRODUCT(SUBTOTAL(3,OFFSET($B$8,ROW($B$9:$B$22)-ROW($B$8),0))*($B$9:$B$22=A1))>0)
>>
>>
>> 2013/5/11 Mr. Kid <[email protected]>
>>
>> **
>>>
>>>
>>> hehehe...
>>> sambil menunggu yang suka VBA membuatkan script autofilter (moga-moga
>>> ada), mungkin seperti file terlampir bisa menjadi salah satu alternatif
>>> (tanpa VBA).
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>> 2013/5/11 daniel_aho <[email protected]>
>>>
>>>> **
>>>>
>>>>
>>>> Terima kasih sekali atas tanggapan dari Pak Mr Kid & Pak lapendosol
>>>> opik,
>>>>
>>>> sangat membantu, tapi untuk filter otomatis sesuai dengan checkBox yang
>>>> dipilih, bisa ndak ya?hehhehehe seperti file terlampir,
>>>>
>>>> terima kasih.
>>>>
>>>>
>>>> daniel
>>>>
>>>>
>>>>
>>>> On 5/10/2013 7:10 PM, Mr. Kid wrote:
>>>>
>>>>
>>>>    Mau coba yang agak ribet waktu buatnya ?
>>>>
>>>>  File terlampir memanfaatkan properti linkedcells.
>>>>
>>>>  Wassalam,
>>>>  Kid.
>>>>
>>>>
>>>>
>>>>  2013/5/10 daniel_aho <[email protected]>
>>>>
>>>>>
>>>>>
>>>>> Dear Para Master2 Excel,
>>>>>
>>>>> mohon dibantu pencerahannya, bagaimana rumus untuk menjalankan
>>>>> checkbox
>>>>> sehingga berfungsi sebagai filter data dan fungsi Sum sesuai dengan
>>>>> checkbox yang dipilih,
>>>>> berikut terlampir filenya untuk lebih jelasnya.
>>>>>
>>>>> mohon maaf jika selalu merepotkan,
>>>>>
>>>>> terima kasih sekali
>>>>>
>>>>> daniel.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>  
>

Kirim email ke