Situasi yg saya hadapi. adalah tidak semua LK mengunakan th fiscal yg berlaku di negri kita. dan mengunakan IDR. seperti dibawah ini :
contoh : 31 des 2011 --- 2011 Q4 : fiscal Indonesia. akhir fiscalnya des. (periode berikutnya sudah berganti) 31 Mar 2012 -- 2012 Q2 : fiscal berbeda --- disini tercantum pendapatan selama 6 bulan yg seharusnya 3 bulan saja. akhir fiscalnya maret. publikasinya yg berurutan . (Q4 -- di artikan pendapatan selama 12 bulan, Q2 - di artikan pendapatan selama 6 bulan : row 2 pakai Q row 4 pakai bulan ) aa2= aa3.01 aa3.02 aa3= yg pakai sama dengan -- acc inti . yg pakai titik - sub acc. yg di input hanya acc dengan huruf awal a. yg bisa juga saya anggap sebagai row bantu ( dari pakai sheet bantu) kedepan : acc dengan huruf awal B --- adalah data yg dibutuh sebagai data feed untuk file comparasi. disini semua data sudah mengunakan satu mata uang dengan kelipatan 3 bulanan. adapun perkali di yg mengandung unsur harga (acc AT100) sebenarnya nga terlalu penting (ada delay ) acc memakai karakter C. saat input -- dan sudah selasai --- di ambil aktif cell sebenarnya aktif Row() di kurangi 300 atau yg dicari aa1= (ini pasti ada ) minus 2 . sebagai awal Loop . dan berhentif bila aktif ticker sudah berganti . Bila semua perhitungan tampa mengunakan Index/match dan sumif --- mungkin membutuhkan puluhan dimensi. perkiraan waktunya mungkin nga sampai 15 detik . file saat ini masih belum ada sumif untuk menjumlahkan sub acc --- belum saya buat. Terima kasih Pak Kid atas segala petunjuk saran dan lain nya . Salam Lukman 2015-06-15 19:09 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] < belajar-excel@yahoogroups.com>: > > > hehehe... > > Sama-sama Pak... > > Selamat mencoba media input datanya. > Tapi semua acc berawalan a yang dibutuhkan komputasi acc dengan if yang > banyak dan index match tersebut pasti tersedia kan ya... > Kalau pakai Match (worksheet function match di VBA misalnya), kan bisa > menghasilkan error jika tidak ketemu datanya. > > Mungkin ada baiknya mencoba sudut pandang pengolahan data selain > menggunakan active cell ataupun baca cell per cell. > Bisa jadi dengan mengurutkan ticker lalu mencari baris pertama ticker x > dan baris terakhir ticker x akan bisa lebih cepat daripada membaca satu per > satu. > > Hal ini juga bisa diterapkan pada script yang tempo lalu (andai akan > diperbaiki). Dengan begitu, kerjanya akan per ticker. Begitu ketemu ticker > baru, langsung dikerjakan semua tanpa harus cek per baris acc nya apa lalu > dikerjakan. Maksudnya, begitu ketemu ticker baru, langsung kerjakan semua > acc yang perlu dihitung. Jadi ndak perlu menunggu tahu bahwa saat ini sudah > sampai baris berapa dengan acc apa. > > Begitu juga dengan pencarian kolom quarter nya ada dimana, yang > menggunakan match pada sisi kolom index dalam script vba. > Logikanya, pastilah datanya telah berurutan quarternya. Kalau sekarang q3, > pasti kanannya q2, kanannya lagi q1, dst. Ataukah mungkin ada data yang > kolom ke-5 adalah q3, tapi kolom ke-6 nya q1 alias q2 nya tidak ada ? > Jika sudah diperiksa dan pasti q nya berurutan, maka data q memiliki pola > yang tetap dengan siklus yang lebih pendek (hanya 1 sampai 4 dibanding > bulan yang 1 sampai 12, tapi tidak mudah untuk week ya). Artinya, lokasi q > sebelum atau q yang sama di tahun beda, atau malah q1 nya di tahun yang > sama atau tahun yang beda sekalipun akan membentuk sebuah pola yang > sederhana dan tetap. > > Kalau ndak salah duga, andai script Anda tempo lalu diubah pola prosesnya, > maka per ticker per (mungkin) 20 tahun q (80 q), akan menjadi cepat > dikerjakan dengan konsep bekerja per blok ticker dan memanfaatkan pola q. > Apalagi jika menjauhi penggunaan nilai data acc dan nilai data q. > Maksudnya, menghindari ketergantungan berulang-ulang untuk memeriksa apa > bunyi acc nya dan apa bunyi q nya. Jadi, berbasis posisi baris (untuk acc) > dan posisi kolom (untuk q) saja. Sepertinya, dengan cara ini, data ribuan > ticker gak akan sampai 10 menit untuk 80-an q deh... tapi ini cuma feeling > ajah loh ya... > > Moga-moga ndak bingung... dan terus mencoba... ;) > > Wassalam, > Kid > > > > > > 2015-06-15 13:53 GMT+10:00 lkm jktind lkmjkt...@gmail.com [belajar-excel] > <belajar-excel@yahoogroups.com>: > >> >> >> Acc dengan karakter pertama a adalah sumber data dari LK . yg jumlah >> row nya tidak sama . sesuai dengan kebutuhan. >> >> selama ini dalam meng input data sekitar 5 ~ 10 menit . per ticker per >> quater. ini pun terbantu dengan beberapa macam VBA . >> >> lagi terpikirkan . untuk di buatkan 1 macam VBA saja . mengacu pada >> cell aktif --- untuk di ambil ticker nya --- >> >> >> Terima kasih Pak Kid. >> >> >> Salam >> >> >> Lukman >> >> >> >> >> >> >> >> >> >> >> 2015-06-13 22:23 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] < >> belajar-excel@yahoogroups.com>: >> >>> >>> >>> hmmm... >>> >>> Jadi untuk memakai select case : tinggal saya ganti saja . dari IF / >>>> ElseIF --- dengan case. >>> >>> > Kira-kiranya demikian, tapi kalau dilihat alur prosesnya, pengubahan >>> dari IF menjadi select case pada alur proses yang Anda buat tidak akan ada >>> pengaruhnya terhadap kecepatan proses. Mungkin kalau adapun tidak akan >>> signifikan. >>> > tapi, moga-moga dugaan saya tersebut keliru ya... (supaya manteb >>> nyobanya... dengan mencoba, kemungkinan besar akan dapat banyak hal baru). >>> >>> >>> adapun data yg saya gunakankan dari range A1: paling akhir. dan >>>> semuanya mengunakan formula index-- >>>> biar seandai nya bila ada penambahan row atau colum nga akan merubah >>>> formulanya. dan lebih mudah bikin VBA nya ( lebih mudah di perbaikinya/ >>>> seragam) >>> >>> > hehehehe... pilihan yang bagus... targetnya adalah seluwes mungkin >>> terhadap perubahan >>> > kalau ndak kliru duga, kolom A sampai L relatif tetap atau setidaknya >>> bisa dijaga agar tetap. Alasannya adalah isi kolom-kolom tersebut cenderung >>> sebagai informasi kunci untuk proses. Terutama kolom A dan C. >>> > Begitu juga dengan baris 1 sampai 4, walau yang dibutuhkan cenderung >>> pada baris 1 dan 2 (kayanya loh ya) >>> > Andai mau mencoba, fungsi vLookUp dengan kolom pertama area lookup >>> adalah kolom D (yang ada gabungan ticker dengan account), maka bisa >>> dihitung nomor kolomnya untuk sampai setiap Q yang dibutuhkan (berdasar Q >>> di baris 1 atau Q di baris tertentu milik masing-masing ticker [kalo ndak >>> kliru yang kode account aa0 atau aa1 gitu]). Cukup menambahkan suatu nilai >>> konstan antara kolom bernomor 1 di baris 2 dengan jumlah kolom sampai ke >>> kolom D nya >>> >>> saat ini pun masih mengunakan template : tapi hanya per ticker saja. >>>> (seandainya copy paste perticker 1 detik hasilnya masih lebih cepat pakai >>>> VBA >>>> kalau hanya di hitung per column quater saat ini saja . sekitar 1 >>>> menit ) >>>> jumlah ticker ini selalu bertambah. >>> >>> > hmmm... tampaknya memang bisa jadi menggunakan VBA lebih cepat >>> dibanding dengan formula. >>> > untuk proses copas-nya bisa dengan VBA kan ya... >>> > bagaimana jika template-nya per ticker tapi seluruh periode (periode >>> triwulanan kan ya) ? Dengan asumsi bahwa setiap ticker (berapapun records >>> yang disediakan oleh si ticker) dibuatkan template yang jumlah record per >>> ticker selalu tetap (misal 46 record [jumlah semua account -> katanya : >>> 'semuanya ada 46 macam formula'] lalu VBA mengganti-ganti kode ticker nya, >>> sehingga formula langsung ambil data sesuai ticker dan kolom quarter-an >>> langsung hitung. Selesai hitung, copas values ke sheet output yang juga >>> pasti tetap jumlah record per ticker nya. >>> >>> btw, >>> Kalau dilihat sekilas dari rumusan di kolom i dan juga implementasi >>> rumusan tersebut dalam script, masih ada potensi yang besar untuk >>> mempercepat prosesnya. Bisa jadi langkahnya akan diawali dengan menyusun >>> ulang (dengan bahasa manusia) alur komputasi setiap item account. >>> >>> Misalnya, komputasi pertama adalah menetapkan nomor kolom untuk >>> mendapatkan data setiap q yang dibutuhkan (qtk,qtkq,qtky,qtka -> sepertinya >>> justru variabel ini yang pokok). Penetapan nilai ini dilakukan setiap kali >>> ticker berganti (berbeda dengan ticker sebelumnya). Begitu juga dengan >>> komputasi nilai kurs. Jadi, proses ini tidak dilakukan setiap kali baris >>> yang diproses berganti (setiap perubahan nilai rc dalam loop per barisnya. >>> >>> Tampaknya lagi, ketika kode ticker berganti, andai dilakukan sekalian >>> komputasi seluruh item account yang dibutuhkan juga akan mempersingkat >>> waktu proses. >>> hehehe... >>> kalau 'hanya di hitung per column quater saat ini saja . sekitar 1 >>> menit', bisa jadi nanti bisa turun menjadi sekitar 40 detik atau kurang >>> kali ya... moga-moga sih begitu... >>> >>> ;) >>> >>> Wassalam, >>> Kid >>> >>> >>> >>> >>> >>> 2015-06-13 13:27 GMT+10:00 lkm jktind lkmjkt...@gmail.com >>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>> >>>> >>>> >>>> Terima kasih Pak Kid. >>>> >>>> Jadi untuk memakai select case : tinggal saya ganti saja . dari IF / >>>> ElseIF --- dengan case. >>>> >>>> adapun data yg saya gunakankan dari range A1: paling akhir. dan >>>> semuanya mengunakan formula index-- >>>> biar seandai nya bila ada penambahan row atau colum nga akan merubah >>>> formulanya. dan lebih mudah bikin VBA nya ( lebih mudah di perbaikinya/ >>>> seragam) >>>> >>>> >>>> saat ini pun masih mengunakan template : tapi hanya per ticker saja. >>>> (seandainya copy paste perticker 1 detik hasilnya masih lebih cepat pakai >>>> VBA >>>> kalau hanya di hitung per column quater saat ini saja . sekitar 1 >>>> menit ) >>>> jumlah ticker ini selalu bertambah. >>>> >>>> sumber data jarang di rubah (kecuali ada revisi) >>>> >>>> >>>> Salam >>>> >>>> >>>> Lukman. >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 2015-06-12 8:43 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] >>>> <belajar-excel@yahoogroups.com>: >>>> >>>>> >>>>> >>>>> hmmm... >>>>> >>>>> 0. Panjang juga bunyi formula untuk 1 item kode kolom C yang berisi >>>>> CC301. >>>>> >>>>> 1. Kalau melihat text file berisi script yang Anda buat, tampaknya >>>>> seluruh kolom dikomputasi ulang. >>>>> > Apakah sumber datanya berubah setiap waktu, sehingga seluruh kolom >>>>> harus dikomputasi ulang? >>>>> > Apakah tidak memungkinkan dibuatkan satu template untuk >>>>> mengkomputasi 1 kolom data quarter (triwulan) terbaru saja, yang hasil >>>>> komputasi template ini lalu di-copy ke sheet series quarter-an tersebut ? >>>>> >>>>> 2. Jika dilihat dari rumusan komputasi di kolom i, ada nilai-nilai >>>>> kode kolom C yang sudah menjadi bawaan sumber data (kolom i tidak berisi >>>>> misalnya [bisa jadi ada kriteria lain, but it's ok]) dan ada nilai-nilai >>>>> kode kolom C yang harus dikomputasi. >>>>> > Berarti, ada kemungkinan bahwa isi kolom C akan selalu tetap atau >>>>> setidaknya di-set selalu tetap, walau sumber datanya hanya menyediakan >>>>> baris-baris nilai yang tidak butuh hitungan saja. Iya gak ? >>>>> >>>>> 3. kembali ke contoh formula nomor 0, yang berbunyi : >>>>> *CC301* : >>>>> =IF($C51="CC301";IF(AND(ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2));INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2)<>0); >>>>> IF(RIGHT(R$1;2)="Q1";INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2); >>>>> IF(OR(RIGHT(R$1;2)="Q2";RIGHT(R$1;2)="Q3";RIGHT(R$1;2)="Q4");IF(AND(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1)<>0;ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1)));INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2)-INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1);"")));"");"SalahJalur") >>>>> >>>>> > Bisa jadi dengan mengubahnya agar menggunakan vLookUp akan menjadi >>>>> lebih singkat, contohnya : >>>>> =IF($C51="CC301";IFERROR(IF(RIGHT(M$1)-1;IF(N(VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+9;0))*N(VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+10;0));VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+9;0)-VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+10;0);"");IF( >>>>> N(VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+9;0));VLOOKUP($A51&"be1=";$D$1:$AX$48000;M$2+9;0);""));"");"SalahJalur") >>>>> >>>>> [bisa jadi formula lain juga masih ada yang bisa disederhanakan] >>>>> >>>>> > Dengan mencoba formulasi di atas yang diterapkan dalam bentuk VBA, >>>>> bisa jadi akan cukup mempersingkat proses >>>>> >>>>> 4. tentang 'kecuali untuk LK th fiscal yg berbeda', jika dikaitkan >>>>> dengan beberapa baris kode terkait yang ada dalam text file berisi script >>>>> Anda >>>>> > Formulasi seperti CC301 di atas yang tadinya berdasar bunyi periode >>>>> Q di baris 1 [seperti RIGHT(M$1], akan menjadi dipengaruhi bunyi periode Q >>>>> di baris yang kolom C nya berisi kode berbunyi 'aa0' >>>>> > Berarti, andaikan ada emiten (kolom A) yang tidak menyediakan data >>>>> kolom C bernilai 'aa0' akan menggunakan bunyi Q di baris 1. Hal ini >>>>> mengindikasikan bahwa komputasi CC301 dan sebangsanya yang lain, yang >>>>> dipengaruhi oleh bunyi Q di 'aa0' akan memiliki nilai qtr,qtQ, qtY, dsb >>>>> yang berasal dari baris 'aa0'. >>>>> > Bisa jadi, formula di nomor 3 (termasuk yang di-VBA-ken) cukup >>>>> disesuaikan untuk bagian cek bunyi Q oleh Right(M1 menjadi >>>>> =Right( if( kalau ada aa0 di emiten tersebut, ambil bunyi q nya , >>>>> M1 ) >>>>> ***ambil dari kanan dari suatu teks di : >>>>> yang kalau ada kode aa0 di emiten itu, ambil dari baris itu >>>>> di kolom yang sama (misal di m40) >>>>> ,kalau tidak ada kode aa0 di emiten itu, ambil dari baris 1 >>>>> di kolom yang sama (m1) >>>>> >>>>> 5. beberapa pengkondisi script yang ada, sebaiknya diperbaiki lagi. >>>>> Contoh : >>>>> ada blok pengkondisian IF yang berbunyi : >>>>> If Len(qtk) = 0 Then >>>>> 'blablablabla banyak sekali barisnya >>>>> elseif len(qtk)>0 then >>>>> 'blublublublu yang juga banyak sekali barisnya, dan >>>>> ada yang berupa beda penggunaan qtk atau qtka qtkq dsb >>>>> endif >>>>> >>>>> > bisa diubah menjadi seperti : >>>>> if len(qtk)<>0 then >>>>> 'blublublublu yang juga banyak sekali barisnya, dan >>>>> ada yang berupa beda penggunaan qtk atau qtka qtkq dsb >>>>> else >>>>> 'blablablabla banyak sekali barisnya >>>>> end >>>>> > blok ini menghemat 1 proses perbandingan, yaitu tidak perlu cek >>>>> Len(qtk) = 0 >>>>> > proses perbandingan dengan operator <> lebih cepat dibanding >>>>> operator = >>>>> >>>>> 6. Script menunjukkan bahwa proses komputasi selalu dimulai dari kode >>>>> 'aa0' sampai yang terbawah. Artinya, data memang memiliki urutan kode >>>>> 'aa0' >>>>> dst yang tetap. >>>>> > Berarti, Select Case bisa digunakan >>>>> > Misal : >>>>> select case acc >>>>> case "aa0" >>>>> script kerjaannya >>>>> case "ba2=","ba3=","ba6=","be1=","be3=","be5=","bg5=" >>>>> 'proses universal untuk kode-kode acc diatas >>>>> Cells(rc, cc).Value = .Index(Dtlk, .Match(Tic >>>>> & "a" & mid(acc,2) , Vlk, False), cc) * Kurs >>>>> case dst >>>>> >>>>> end select >>>>> >>>>> >>>>> btw, >>>>> Andai yang diproses bisa 1 kolom per datangnya data baru di quarter >>>>> baru yang masuk ke sheet input, maka dengan template berupa 1 sheet >>>>> terpisah lalu hasilnya disalin ke sheet output yang berisi series yang >>>>> pakai script Anda tersebut, maka seluruh proses bisa jadi lebih cepat. >>>>> >>>>> Apalagi kalau mau mulai mengerjakan dengan konsep cara kerja database >>>>> mengolah data. Excel dengan fitur Get External Data dan susunan tabel yang >>>>> baik dalam sheet Excel, bisa melakukan hal itu, meskipun ndak punya MS >>>>> Access, MS SQL Server, Oracle, MySQL dsb sekalipun. Mestinya, dengan fitur >>>>> get external data, untuk record yang masih sekitar 5 jutaan sih masih bisa >>>>> sekitar beberapa menit malah bisa beberapa detik saja. >>>>> >>>>> Moga-moga ada manfaatnya... >>>>> >>>>> Wassalam, >>>>> Kid >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 2015-06-11 17:55 GMT+10:00 lkm jktind lkmjkt...@gmail.com >>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>> >>>>>> >>>>>> >>>>>> ini kalau pakai formula biasa : >>>>>> >>>>>> *CC301* : >>>>>> =IF($C51="CC301";IF(AND(ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2));INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2)<>0); >>>>>> IF(RIGHT(R$1;2)="Q1";INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2); >>>>>> IF(OR(RIGHT(R$1;2)="Q2";RIGHT(R$1;2)="Q3";RIGHT(R$1;2)="Q4");IF(AND(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1)<>0;ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1)));INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2)-INDEX($M$1:$AX$48000;MATCH($A51&"be1=";$D$1:$D$48000;0);R$2+1);"")));"");"SalahJalur") >>>>>> >>>>>> >>>>>> CC301 = menghitung pendapatan hanya 3 bulan saja . >>>>>> CC302. CC303, CC304 -- rumus nya mirip -- yg dihitung , laba kotor , >>>>>> laba usaha, laba bersih hanya 3 bulan saja. >>>>>> >>>>>> *CC302* = >>>>>> =IF($C52="CC302";IF(AND(ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2));INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2)<>0);IF(RIGHT(R$1;2)="Q1";INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2);IF(OR(RIGHT(R$1;2)="Q2";RIGHT(R$1;2)="Q3";RIGHT(R$1;2)="Q4");IF(AND(INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2+1)<>0;ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2+1)));INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2)-INDEX($M$1:$AX$48000;MATCH($A52&"be3=";$D$1:$D$48000;0);R$2+1);"")));"");"SalahJalur") >>>>>> >>>>>> >>>>>> *CC220* = =IF($C50="CC220";IF( >>>>>> AND(ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2));ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2+4));ISNUMBER(INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);MATCH((LEFT(R$1;4)-1)&" >>>>>> Q4";$M$1:$AX$1;0))));IF(AND(INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2)<>0;INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2+4)<>0;INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);MATCH((LEFT(R$1;4)-1)&" >>>>>> Q4";$M$1:$AX$1;0))<>0);INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2)-INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);R$2+4)+INDEX($M$1:$AX$48000;MATCH($A50&"bg5=";$D$1:$D$48000;0);MATCH((LEFT(R$1;4)-1)&" >>>>>> Q4";$M$1:$AX$1;0));"");"");"Salah Jalur") >>>>>> >>>>>> >>>>>> diatas 3 macam dari semuanya ada 46 macam formula -- dan bisa di >>>>>> pakai untuk semua column atau row . >>>>>> >>>>>> >>>>>> kecuali untuk LK th fiscal yg berbeda - >>>>>> >>>>>> >>>>>> >>>>>> Salam >>>>>> >>>>>> Lukman >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> 2015-06-11 14:30 GMT+07:00 lkm jktind <lkmjkt...@gmail.com>: >>>>>> >>>>>>> contoh : I56 : be1= - be1=-1Q berapa pendapatan dalam 3 bulan . >>>>>>> >>>>>>> Q56 = Q51 Karena kolom Q adalah Q1 >>>>>>> R56 = Q51 - S51 : kolom R adalah Q4 untuk mendapatkan >>>>>>> data dari Okt ~ des >>>>>>> S56 = S51 - T51 : Kolom S adalah Q3 untuk mendapatkan >>>>>>> data dari Jul ~ sep >>>>>>> T56 = T51 - U51 : Kolom T adalah Q2 untuk mendapatkan >>>>>>> data dari april ~ jun >>>>>>> >>>>>>> Q51 = adalah pendapat dari jan ~ maret 2015 >>>>>>> R51 = adalah pendapatan dari jan ~ des 2014 >>>>>>> S51 = adalah pendapatan dari jan ~ sep 2014 >>>>>>> T51 = adalah pendapatan dari jan ~ juni 2014 >>>>>>> >>>>>>> >>>>>>> Salam >>>>>>> >>>>>>> Lukman >>>>>>> >>>>>>> >>>>>>> 2015-06-11 13:43 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com >>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Jadi, untuk semua rumusan di kolom i, pasti mengambil nilai (yang >>>>>>>> ditambah kurang bagi dsb) hanya dari 1 kolom saja ? >>>>>>>> Kalau sedang menghitung q1 tahun 2000 (yang ditambah kurang bagi >>>>>>>> dsb), apakah hanya pakai data q1 tahun 2000 saja ? >>>>>>>> Bagaimana dengan menghitung q2,q3,q4 ? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2015-06-11 16:37 GMT+10:00 lkm jktind lkmjkt...@gmail.com >>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Jadi kalau ada kolom i yang tidak berisi rumus (alias blank), maka >>>>>>>>> nilainya tetap apa adanya dari sumber data ? >>>>>>>>> : Ya >>>>>>>>> kecuali data dalam USD -- akan di konversikan dalam IDR. >>>>>>>>> >>>>>>>>> Apakah semua rumus di kolom i itu pasti mengambil dari kolom yang >>>>>>>>> sama ? kebanyakan mengunakan column yg sama >>>>>>>>> >>>>>>>>> bila masih mengunakan formula di dalam excel : >>>>>>>>> baris untuk bantu untuk vertical : columns E,F,G,H (match >>>>>>>>> vertical) >>>>>>>>> baris untuk bantu untuk horizontal : Row 2. >>>>>>>>> (match horizontal) >>>>>>>>> >>>>>>>>> jadi : = Index (data, match vertical, match horizontal) >>>>>>>>> >>>>>>>>> sedangkan untuk tahun fiscal yg berbeda di hitung secara manual . >>>>>>>>> >>>>>>>>> Kolom I : ini hanya catatan rumus nya saja . berisi No Acc yg >>>>>>>>> akan digunakan untuk menghitung . (dari pada saya catat di file yg >>>>>>>>> berbeda) >>>>>>>>> sebagai dan dasar pembuatan formula >>>>>>>>> >>>>>>>>> >>>>>>>>> Salam >>>>>>>>> >>>>>>>>> >>>>>>>>> Lukman >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> 2015-06-11 12:10 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com >>>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Jadi kalau ada kolom i yang tidak berisi rumus (alias blank), >>>>>>>>>> maka nilainya tetap apa adanya dari sumber data ? >>>>>>>>>> Apakah semua rumus di kolom i itu pasti mengambil dari kolom yang >>>>>>>>>> sama ? >>>>>>>>>> Maksudnya, ketika rumusan kolom i akan diimplementasi di kolom q1 >>>>>>>>>> tahun x, maka akan menggunakan semua nilai di kolom tersebut juga >>>>>>>>>> berdasar >>>>>>>>>> kode-kode dalam rumusan kolom i ? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2015-06-11 14:46 GMT+10:00 lkm jktind lkmjkt...@gmail.com >>>>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Pak Kid. >>>>>>>>>>> >>>>>>>>>>> Data nya : ada yg mengunakan USD dan IDR >>>>>>>>>>> sedangkan Harga sahamnya mengunakan IDR >>>>>>>>>>> Tahun fiscalnya ada ada yg berbeda: >>>>>>>>>>> Kebanyakan : dari jan ~ des , atau dari april 2014 ~ >>>>>>>>>>> maret 2015 (jepang) >>>>>>>>>>> >>>>>>>>>>> No Acc ---- di kolom C >>>>>>>>>>> Ticker --- di kolom A >>>>>>>>>>> >>>>>>>>>>> Data awal nya . dari aa0 sampai AT100 jumlah row nya >>>>>>>>>>> bisa tidak sama. disini ada formula yg di letakan di dalam excel. >>>>>>>>>>> >>>>>>>>>>> Data Inti nya dari ba2= sampai bg5= disini . semua >>>>>>>>>>> data di seragamkan dengan mata uang rupiah. >>>>>>>>>>> qtr, qtrQ, qtrY, qtrA --- tahun fiscalnya dari jan ~ des >>>>>>>>>>> row 1. >>>>>>>>>>> qtk, qtrkQ, qttkY, qtkA --- tahun fiscalnya berbeda. >>>>>>>>>>> >>>>>>>>>>> qtr, qtk -- quater saat ini. >>>>>>>>>>> qtrQ , qtkQ ---- quater sebelumnya . digunakan untuk mencari >>>>>>>>>>> hasil 3 bulan terakhir ---- Q to Q. >>>>>>>>>>> qtrY , qtkY ---- setahun yg lalu . digunakan untuk >>>>>>>>>>> menghitung Y to Y >>>>>>>>>>> qtrA, qtkA ---- untuk mencari hasil 12 bulan terakhir. >>>>>>>>>>> contoh : = 2014 Q2 + 2013 Q4 - 2013 Q2 >>>>>>>>>>> >>>>>>>>>>> sebuah template formula : >>>>>>>>>>> sebenarnya ada sheet tambahan . dinamai sheet rumus . . >>>>>>>>>>> >>>>>>>>>>> Sub copy_formula() >>>>>>>>>>> Application.Calculation = xlCalculationAutomatic >>>>>>>>>>> Sheets("rumus").Range("R38:R83").Copy >>>>>>>>>>> >>>>>>>>>>> Selection.PasteSpecial Paste:=xlPasteFormulas, >>>>>>>>>>> Operation:=xlNone, _ >>>>>>>>>>> SkipBlanks:=False, Transpose:=False >>>>>>>>>>> >>>>>>>>>>> Selection.Copy >>>>>>>>>>> Selection.PasteSpecial Paste:=xlPasteValues, >>>>>>>>>>> Operation:=xlNone, SkipBlanks _ >>>>>>>>>>> :=False, Transpose:=False >>>>>>>>>>> Application.CutCopyMode = False >>>>>>>>>>> With Selection.Interior >>>>>>>>>>> .Pattern = xlNone >>>>>>>>>>> .TintAndShade = 0 >>>>>>>>>>> .PatternTintAndShade = 0 >>>>>>>>>>> End With >>>>>>>>>>> Selection.Replace What:="False", Replacement:="", >>>>>>>>>>> LookAt:=xlPart, _ >>>>>>>>>>> SearchOrder:=xlByRows, MatchCase:=False, >>>>>>>>>>> SearchFormat:=False, _ >>>>>>>>>>> ReplaceFormat:=False >>>>>>>>>>> Selection.Replace What:="", Replacement:="", LookAt:=xlPart, >>>>>>>>>>> _ >>>>>>>>>>> SearchOrder:=xlByRows, MatchCase:=False, >>>>>>>>>>> SearchFormat:=False, _ >>>>>>>>>>> ReplaceFormat:=False >>>>>>>>>>> Selection.Replace What:="#VALUE!", Replacement:="", >>>>>>>>>>> LookAt:=xlPart, _ >>>>>>>>>>> SearchOrder:=xlByRows, MatchCase:=False, >>>>>>>>>>> SearchFormat:=False, _ >>>>>>>>>>> ReplaceFormat:=False >>>>>>>>>>> Selection.Replace What:="", Replacement:="", LookAt:=xlPart, >>>>>>>>>>> SearchOrder _ >>>>>>>>>>> :=xlByRows, MatchCase:=False, SearchFormat:=False, >>>>>>>>>>> ReplaceFormat:=False >>>>>>>>>>> >>>>>>>>>>> Application.Calculation = xlCalculationManual >>>>>>>>>>> >>>>>>>>>>> End Sub >>>>>>>>>>> >>>>>>>>>>> di kolom I ada rumus nya >>>>>>>>>>> >>>>>>>>>>> total row sekitar 47.800 baris dengan columns 30 >>>>>>>>>>> >>>>>>>>>>> kalau di hitung dengan VBA komplit_1 waktunya sekitar 22 ~ >>>>>>>>>>> 23 menit. >>>>>>>>>>> VBA Komplit_2 sekitar 15 ~ 16 menit. >>>>>>>>>>> >>>>>>>>>>> Salam >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Lukman >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2015-06-11 10:06 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com >>>>>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Hai Lukman, >>>>>>>>>>>> >>>>>>>>>>>> Data awalnya seperti apa dan hasilnya seperti apa ya ? >>>>>>>>>>>> Tampaknya tidak semua record adalah hitungan. Record hasil >>>>>>>>>>>> hitungan pun sebenarnya akan selalu tetap per kode di kolom C, >>>>>>>>>>>> walau >>>>>>>>>>>> hitungannya membutuhkan kode kolom C lainnya. >>>>>>>>>>>> >>>>>>>>>>>> Bolehkah dijabarkan kapan menggunakan : >>>>>>>>>>>> qtr,qtrq,qtrY,qtrA ? >>>>>>>>>>>> >>>>>>>>>>>>> Dim qtr As String, qtrQ As String, qtrY As String, qtrA As >>>>>>>>>>>>> String >>>>>>>>>>>>> Dim qtk As String, qtkQ As String, qtkY As String, qtkA As >>>>>>>>>>>>> String >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Sepertinya sebuah template formula yang diletakkan pada sebuah >>>>>>>>>>>> kolom bisa mempercepat proses daripada menghitung setiap cells >>>>>>>>>>>> dengan loop >>>>>>>>>>>> terhadap M baris x N kolom. >>>>>>>>>>>> >>>>>>>>>>>> Wassalam, >>>>>>>>>>>> Kid. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2015-06-08 12:00 GMT+10:00 lkm jktind lkmjkt...@gmail.com >>>>>>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> lebih sering -- hanya di hitung 1 column saja . >>>>>>>>>>>>> >>>>>>>>>>>>> contoh file terlampir : >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Salam >>>>>>>>>>>>> >>>>>>>>>>>>> Lukman >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 2015-06-07 18:58 GMT+07:00 Toby kenzo tobyke...@yahoo.co.id >>>>>>>>>>>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Dear Lukman, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Menurut saya masih bisa di simplfy programnya dgn tidak >>>>>>>>>>>>>> terlalu banyak menggunakan "kondisi". >>>>>>>>>>>>>> Jika memungkinkan,anda bisa menggunakan formula excel dalam >>>>>>>>>>>>>> suatu sheet untuk melakukan kalkulasi,jadi tidak semua fungsi >>>>>>>>>>>>>> kalkulasi di >>>>>>>>>>>>>> lakukan di dalam vba,sebisa mungkin tugas vba hanya memanggil >>>>>>>>>>>>>> resultnya >>>>>>>>>>>>>> saja, itu akan lebih cepat. >>>>>>>>>>>>>> >>>>>>>>>>>>>> TerimaKasih. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Sent from Yahoo Mail on Android >>>>>>>>>>>>>> <http://overview.mail.yahoo.com/mobile/?.src=Android> >>>>>>>>>>>>>> >>>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>>> * From: * lkm jktind lkmjkt...@gmail.com [belajar-excel] < >>>>>>>>>>>>>> belajar-excel@yahoogroups.com>; >>>>>>>>>>>>>> * To: * belajar-excel@yahoogroups com < >>>>>>>>>>>>>> belajar-excel@yahoogroups.com>; >>>>>>>>>>>>>> * Subject: * [belajar-excel] Do Case atau select Case [2 >>>>>>>>>>>>>> Attachments] >>>>>>>>>>>>>> * Sent: * Sun, Jun 7, 2015 6:15:17 AM >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Saya telah membuat VBA (seperti terlampir di email ini.) >>>>>>>>>>>>>> >>>>>>>>>>>>>> Tapi rasanya lambat dalam memproses data. >>>>>>>>>>>>>> >>>>>>>>>>>>>> bila mengunakan do case atau select case apakah akan lebih >>>>>>>>>>>>>> cepat ? >>>>>>>>>>>>>> >>>>>>>>>>>>>> bagaimana cara merubahnya . bila hendak mengunakan do case. >>>>>>>>>>>>>> /select case. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Salam >>>>>>>>>>>>>> >>>>>>>>>>>>>> Lukman >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> NB : >>>>>>>>>>>>>> 1. Komplit_1 -- ini lambat >>>>>>>>>>>>>> 2. Komplit_2 -- ini lebih cepat daripada yang diatas. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >