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 [email protected] [belajar-excel] < [email protected]>: > > > 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' [email protected] [belajar-excel] < > [email protected]>: > >> >> >> 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 [email protected] >> [belajar-excel] <[email protected]>: >> >>> >>> >>> 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' [email protected] [belajar-excel] < >>> [email protected]>: >>> >>>> >>>> >>>> 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 [email protected] >>>> [belajar-excel] <[email protected]>: >>>> >>>>> >>>>> >>>>> 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 <[email protected]>: >>>>> >>>>>> 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' [email protected] >>>>>> [belajar-excel] <[email protected]>: >>>>>> >>>>>>> >>>>>>> >>>>>>> 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 [email protected] >>>>>>> [belajar-excel] <[email protected]>: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 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' [email protected] >>>>>>>> [belajar-excel] <[email protected]>: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> 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 [email protected] >>>>>>>>> [belajar-excel] <[email protected]>: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 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' [email protected] >>>>>>>>>> [belajar-excel] <[email protected]>: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 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 [email protected] >>>>>>>>>>> [belajar-excel] <[email protected]>: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> lebih sering -- hanya di hitung 1 column saja . >>>>>>>>>>>> >>>>>>>>>>>> contoh file terlampir : >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Salam >>>>>>>>>>>> >>>>>>>>>>>> Lukman >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2015-06-07 18:58 GMT+07:00 Toby kenzo [email protected] >>>>>>>>>>>> [belajar-excel] <[email protected]>: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 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 [email protected] [belajar-excel] < >>>>>>>>>>>>> [email protected]>; >>>>>>>>>>>>> * To: * belajar-excel@yahoogroups com < >>>>>>>>>>>>> [email protected]>; >>>>>>>>>>>>> * 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. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >

