Sabtu, 24 November 2012

[belajar-excel] Digest Number 1928

Milis Belajar Microsoft Excel

15 New Messages

Digest #1928
1a
split data by "Johan hung" joeh2_007
1b
Re: split data by "Mr. Kid" nmkid.family@ymail.com
2a
Re: Menempatkan Data Pada Kolom Secara Otomatis by "Mr. Kid" nmkid.family@ymail.com
3.2
3.3
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
3.4
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
3.5
3.6
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
3.7
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
3.8
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
5a
Melink'an no induk dengan besaran nilai yang berbeda by "Debora Christy" debora.christy@rocketmail.com
5b
Bls: [belajar-excel] Melink'an no induk dengan besaran nilai yang be by "Debora Christy" debora.christy@rocketmail.com

Messages

Fri Nov 23, 2012 1:21 pm (PST) . Posted by:

"Johan hung" joeh2_007

Dear pakar excel…

Saya mempunyai kesulitan seperti contoh terlampir dalam mengabungkan
laporan keuangan cabang. dimana selama ini saya gabungkan secara manual dan
itu membutuhkan waktu yang cukup lama. Mohon bantuan teman-teman untuk
memberikan pencerahan apakah dalam bentuk macro atau ada software tertentu
yang bisa di gunakan..

Thanks

Fri Nov 23, 2012 3:09 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Pak Johan,

File terlampir memanfaatkan Pivot Table Consolidation Range.

Wassalam,
Kid.

2012/11/23 Johan hung <johan.hung@gmail.com>

> **
>
>
>
>
> Dear pakar excel…
>
> Saya mempunyai kesulitan seperti contoh terlampir dalam mengabungkan
> laporan keuangan cabang. dimana selama ini saya gabungkan secara manual dan
> itu membutuhkan waktu yang cukup lama. Mohon bantuan teman-teman untuk
> memberikan pencerahan apakah dalam bentuk macro atau ada software tertentu
> yang bisa di gunakan..
>
> Thanks
>
> _
>

Fri Nov 23, 2012 3:27 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Wa'alaikumussalam Wr. Wb.

Walau ndak urun solusi tetap boleh bertanya kan ya...
Tabel tersebut tabel entry data (media input) atau tabel output ?

Wassalamu'alaikum Wr. Wb.
Kid.

2012/11/23 Prodev SIMPLE PB <prodev_simple@yahoo.com>

> **
>
>
> Assalamu'alaikum Wr. Wb.
>
> Para Guru Besar yang terhormat.
> Mohon pencerahan dan solusi untuk kasus penempatan data pada kolom secara
> otomatis.
> Contoh kasus terlampir.
> Atas perhatian dan solusinya diucapkan terima kasih.
>
> Wassalam.
>
> - prodev simple -
>
>
>

Fri Nov 23, 2012 6:11 pm (PST) . Posted by:

"Winda Miranti" winda_1504

Trimakasi mas Lukman akan saya coba terlebih dahulu

Regards,
Winda

________________________________
Dari: lkm jktind <lkmjktind@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Jumat, 23 November 2012 17:05
Judul: Re: Bls: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih


 
yg warna merah di ganti dengan warna biru .

kalau pakai excel 2007  : Range("AE5", Range("AE1000000").End(xlup)).ClearContents

,bagian mana kah yg menyatakan baris kosong tetap dilanjutkan:
    brsakh = Range("W65000").End(xlUp).Row
    Set Rng = Range("W5" & ":W" & brsakh)
    Range("AE5", Range("AE5").End(xlDown)).ClearContents
    Range("AE5", Range("AE65000").End(xlup)).ClearContents
    For Each r In Rng
        If r <> "" Then
            Set hsl = Range("AE5").CurrentRegion
            If
WorksheetFunction.CountIf(hsl, r) = 0 Then
                brshsl = brshsl + 1
                Range("AE" & brshsl) = r
            End If
        End If
    Next r
    Cancel = True

salam

Lukman

2012/11/23 Winda Miranti <winda_1504@yahoo.co.id>

> 
>Mas Hendrik maaf saya mau bertanya lagi,kalo terdapat baris yg kosong,baris selanjutnya itu tidak terbaca
>bgmnkah kalimat VB nya?
>
>dan di rumus yg mas hendrik berikan pertama kali kl ada baris yg kosong masi tetap akan terbaca,bagian mana kah yg menyatakan baris kosong tetap dilanjutkan:
>    brsakh = Range("W65000").End(xlUp).Row
>    Set Rng = Range("W5" & ":W" & brsakh)
>    Range("AE5", Range("AE5").End(xlDown)).ClearContents
>    For Each r In Rng
>        If r <> "" Then
>            Set hsl = Range("AE5").CurrentRegion
>            If
WorksheetFunction.CountIf(hsl, r) = 0 Then
>                brshsl = brshsl + 1
>                Range("AE" & brshsl) = r
>            End If
>        End If
>    Next r
>    Cancel = True
>
>
>
>berikut saya lampir kan excelnya
>Trimaksi :)
>
>
>________________________________
> Dari: Winda Miranti <winda_1504@yahoo.co.id>
>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Dikirim: Jumat, 23 November 2012 13:51
>Judul: Bls: Bls: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
>
> 
>trimakasi mas Hendrik akan saya coba terlebih dahulu :D
>
>Regards,
>Winda
>
>
>
>________________________________
> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Dikirim: Jumat, 23 November 2012 13:19
>Judul: Re: Bls: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Yang diganti yang diberi huruf tebal,
>ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
>
>jika sheetnya sama.
>
>
>
>Salam.
>Hendrik Karnadi
>
>
>
>________________________________
> From: Winda Miranti <winda_1504@yahoo.co.id>
>To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Sent: Friday, 23 November 2012, 11:59
>Subject: Bls: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Trimakasi atas solusi nya mas Hendrik,
>brarti nanti kalo saya mau menggunakan cara yg sama dengan rumus yg berbeda saya ganti bagian =TEXT(RC[-2],""dd/mm/yy"")" saja yg disesuaikan dengan rumusyg akan dipake?
>
>
>
>Regards,
>Winda
>
>
>
>
>
>
>________________________________
> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Dikirim: Jumat, 23 November 2012 9:39
>Judul: Re: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Coba copy paste macro ini ke module1,
>Sub Tes()
>    Dim Rng As Range
>    Dim i As Long
>    Application.ScreenUpdating = False
>    Application.EnableEvents = False
>    Sheets("Pertanyaan 2").Select
>    Range("A2").Select
>    Set Rng = Range("A2", Range("A2").End(xlDown))
>    For i = 1 To Rng.Rows.Count
>        ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
>        ActiveCell.Offset(1, 0).Select
>    Next i
>    Application.ScreenUpdating = True
>    Application.EnableEvents = True
>End Sub
>
>
>Hasilnya seperti file terlampir (macro diattached ke tombol "FILTER")
>
>
>Salam,
>Hendrik Karnadi
>
>
>
>________________________________
> From: Winda Miranti <winda_1504@yahoo.co.id>
>To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Sent: Friday, 23 November 2012, 8:37
>Subject: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Dear Master Excel,
>
>Melanjutkan pembahasan yang lama, ada yang mau saya tanyakan lagi :D
>Saya menemukan kendala ketika data yang digunakan itu menggunakan row yg sangat banyak
>Apakah ada cara utk mengefektifkan kerja makro sehingga kinerjanya menjadi lebih cepat?
>
>Kemudian saya sudah mencoba utk menggunakan jurus dari Mas Aji utk menemukan baris paling akir
>dan sudah coba utk mengotak atik rumus dari mas Hendrik juga utk menemukan baris trakirnya, tapi masi blm bisa
>Maklum masi dalam tahap mempelajari makro :D
>
>Mohon pencerahanya para master excel :)
>Berikut saya lampirkan data excelnya
>
>Regards,
>Winda
>
>
>
>
>
>
>________________________________
> Dari: Winda Miranti <winda_1504@yahoo.co.id>
>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Dikirim: Jumat, 19 Oktober 2012 13:42
>Judul: Bls: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Trimakasi master excel atas pencerahanya, akan saya pelajari terlebih dahulu :D
>
>Regards,
>Winda
>
>
>
>________________________________
> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>Dikirim: Jumat, 19 Oktober 2012 11:50
>Judul: Fw: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>Terima kasih Mas Aji atas tambahan ilmunya.
>
>
>Salam,
>Hendrik Karnadi
>
>
>----- Forwarded Message -----
>From: aji mumpung <pupung1986@gmail.com>
>To: belajar-excel@yahoogroups.com
>Sent: Friday, 19 October 2012, 11:05
>Subject: Re: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>
>
> 
>ikutan ya.. biar rame hehehe..
>
>
>cara lain untuk menemukan baris paling akhir adalah menggunakan kode berikut
>
>
>Cells.SpecialCells(xlCellTypeLastCell).Row
>
>
>hasilnya disimpan dalam sebuah variabel yang seharusnya sudah dideklarasikan di awal
>jadi jika dalam range data terdapat beberapa baris kosing, masih bisa terdeteksi dalam looping For - Next
>
>
>hal ini juga akan memperpendek waktu proses & mengurangi beban kerja macro yang hanya akan memproses dari baris data awal sampai dengan baris data akhir.. selain itu tidak perlu dilakukan pengecekan
>
>
>cmiiw (kata mbak'e Colek Me If Im Wrong)
>
>
>wassalam,
>
>
>-aji mumpung-
>
>
>Pada 19 Oktober 2012 10:56, hendrik karnadi <hendrikkarnadi@yahoo.com> menulis:
>
>
>> 
>>Dear Winda,
>>
>>
>>Mengapa yang dibold tidak terbaca? 
>>Karena disamping baris kosong pertama pada kolom B masih ada data (masih termasuk lingkup CurrentRegion), sedangkan disamping baris kosong kedua pada kolom B tidak ada data jadi tidak ikut terambil.
>>
>>
>>Untuk itu perlu sedikit akal untuk menentukan baris akhir yang ada isinya.
>>
>>
>>Coba lihat macro yang sudah diupdate untuk mengambil baris terakhir yang ada isinya.
>>
>>
>>Salam,
>>Hendrik Karnadi
>>
>>
>>
>>
>>
>>________________________________
>> From: Winda Miranti <winda_1504@yahoo.co.id>
>>To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>>Sent: Friday, 19 October 2012, 9:46
>>Subject: Bls: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>>
>>
>>
>> 
>>Dear Mas Hendrik,
>>
>>Trimakasi sekali solusi nya mas hendrik kebenaran saya juga lagi menemukan kasus yang sama
>>tapi hanya ingin sebatas per kolom saja misalnya hanya kolom B, saya coba otak atik tapi debug selalu hehe, bgmn cara membatasinya biar hanya membaca satu kolom saja?
>>dan saya coba tambahkan data kebawah seperti data telampir, tetapi jika ada baris yg kosong dua kali, data setelah baris kosong yg kedua tersebut tidak terbaca
>>Mohon pencerahanya mas hendrik :D
>>
>>Regards,
>>Winda
>>
>>
>>
>>
>>
>>
>>________________________________
>> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com>
>>Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>>Dikirim: Jumat, 19 Oktober 2012 6:05
>>Judul: Fw: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>>
>>
>> 
>>Sekedar selingan, pake macro.
>>
>>
>>Salam,
>>Hendrik Karnadi
>>
>>
>>
>>----- Forwarded Message -----
>>From: Mr. Kid <mr.nmkid@gmail.com>
>>To: belajar-excel@yahoogroups.com
>>Sent: Thursday, 18 October 2012, 23:47
>>Subject: Re: [belajar-excel] Index Data Beberapa Kolom atau Lebih
>>
>>
>> 
>>1. Untuk cara 2, ada array formula bantu berbunyi : (cell M3)
>>=MIN(IF(COUNTIF(N$2:N2,$B$3:$F$14)=0,ROW($B$3:$F$14)*1000+COLUMN($B$3:$F$14)))
>>Kondisi yang ada baru 1, yaitu bagian CountIF. Belum ada pengkondisian berdasar ada atau tidaknya teks dalam data.
>>Pengkondisian untuk mengambil cell yang ada datanya saja adalah dengan memeriksa jumlah karakter yang ada di dalam cell tersebut.
>>( Len($B$3:$F$14) > 0 )
>>
>>Jadi, 2 kondisi yang harus digunakan adalah :
>>>> ( COUNTIF(N$2:N2,$B$3:$F$14)=0 )
>>>> ( Len($B$3:$F$14) > 0 )
>>Keduanya harus terpenuhi, artinya harus dihubungkan dengan operator AND yang setara dengan kegiatan operasi matematis perkalian.
>>Jadi kedua kondisi akan diekspresikan menjadi :
>>( COUNTIF(N$2:N2,$B$3:$F$14)=0 )*( Len($B$3:$F$14) > 0 )
>>
>>Maka bagian CountIF dalam array formula diganti dengan 2 pengkondisian baru ini akan menjadi :
>>=MIN(IF( ( COUNTIF(N$2:N2,$B$3:$F$14)=0 )*( Len($B$3:$F$14) > 0 ) ,ROW($B$3:$F$14)*1000+COLUMN($B$3:$F$14)))
>>>> Jangan lupa untuk di-Enter sebagai Array formula dengan CTRL  SHIFT  ENTER <<
>>
>>2. Menghitung jumlah unique item (seperti cell H2 atau M2)
>>Formula yang ada :
>>=SUMPRODUCT(1/COUNTIF(B3:F14,B3:F14))
>>Ketika ada cell di B3:F14 yang tidak ada datanya, maka akan menghasilkan hasil countif akan 0. Maka akan ada item yang kalkulasinya berupa 1/0 yang menghasilkan error value #DIV/0!
>>Maka efek ketika hasil CountIF adalah 0 harus dinetralisir dengan suatu nilai yang bukan 0. CountIF menghasilkan 0 jika tidak ada data, maka kondisi tidak ada data bisa diubah hasilnya menjadi 1 yang setara TRUE. Maka Len(B3:F14)=0 akan bernilai TRUE ketika B3:F14 tidak ada datanya. Bunyi kondisi terhadap CountIF adalah sebagai berikut :
>>>> Jika hasil CountIF adalah 0, maka isi dengan Len(B3:F14)=0
>>>> Jika hasil CountIF bukan 0, maka isi dengan hasil CountIF
>>Secara harfiah, translatenya ke bahasa formula menjadi :
>>IF( COUNTIF(B3:F14,B3:F14)= 0 , ( Len(B3:F14)=0 ) , COUNTIF(B3:F14,B3:F14) )
>>Dari kalimat ini, sebenarnya jika diperhatikan secara seksama, akan ada benang merah berbunyi :
>>"Nilai hasil CountIF atau Len(B3:F14)=0"
>>yang bahasa formulanya :
>>( COUNTIF(B3:F14,B3:F14) + ( Len(B3:F14)=0 ) )
>>Hasilnya, akan didapat bahwa seluruh cell yang tidak ada isinya akan bernilai TRUE (setara 1).
>>Maka, 1/COUNTIF(B3:F14,B3:F14)
>>akan menjadi :
>>1/( COUNTIF(B3:F14,B3:F14) + ( Len(B3:F14)=0 ) )
>>tetapi, akan terjadi 1/1 ketika cell tidak ada isinya, karena 1/( 0 + TRUE ) = 1/( 0 + 1 ) = 1/1
>>Hal ini akan menghasilkan jumlah unique yang tidak tepat. Oleh sebab itu bagian 1 (biru) dalam :
>>1/( COUNTIF(B3:F14,B3:F14) + ( Len(B3:F14)=0 ) )
>>harus berupa pemfilteran bahwa jika cell berisi data maka bernilai 1 dan jika tidak berisi data bernilai 0.
>>( Len(B3:F14)>0 )
>>Maka formula lengkap :
>>=SUMPRODUCT(( Len(B3:F14)>0 ) / ( COUNTIF(B3:F14,B3:F14) + ( Len(B3:F14)=0 ) ) )
>>
>>3. Cara1.
>>untuk versi xl2007 (dengan IFError) array formulanya  (J3)
>>=IFERROR(INDEX($H$3:$H$63,MATCH(0,COUNTIF(J$2:J2,$H$3:$H$63),0)),"")
>>untuk semua versi (berdasar jumlah item unique yang mungkin) : (K3)
>>=IF(ROW()-2>$H$2,"",INDEX($H$3:$H$63,MATCH(0,COUNTIF(K$2:K2,$H$3:$H$63),0)))
>>memiliki benang merah pada bagian yang biru :
>>MATCH(0,COUNTIF(K$2:K2,$H$3:$H$63),0)
>>Bahasa manusianya :
>>"Cari posisi angka 0 pada suatu data array yang berupa nilai-nilai jumlah cacah (CountIF) data dalam $H$3:$H$63 di suatu area K$2:K2 yang pencariannya harus bener-bener persis [0]"
>>Kalimat 'nilai-nilai jumlah cacah data dalam $H$3:$H$63 di suatu area K$2:K2' akan menghasilkan angka bukan 0 jika memang telah ada di K$2:K2 dan menghasilkan 0 jika belum ada di K$2:K2. Padahal area K$2:K2 adalah hasil (output). Artinya, kalau sampai hasil CountIF adalah 0, maka data itu belum ada di area output alias data baru. Dengan demikian, fungsi Match tugasnya adalah selalu mendapatkan posisi data baru (data yang belum ada di output).
>>Pada kondisi itu, tidak ada pengkondisian bahwa data di $H$3:$H$63 bukanlah bernilai 0.
>>Jelas sudah diketahui bahwa data baru (belum ada di output) adalah yang COUNTIF(K$2:K2,$H$3:$H$63)=0
>>Kondisi data di $H$3:$H$63 bukanlah bernilai 0 dapat diekspresikan sebagai :
>>( $H$3:$H$63 <> 0 )
>>
>>Sampai disini, sudah ada 2 kondisi :
>>1. data baru (belum ada dioutput) :
>>( COUNTIF(K$2:K2,$H$3:$H$63)=0 )
>>2. tidak adanya nilai di data $H$3:$H$63
>>( $H$3:$H$63 <> 0 )
>>Keduanya harus terpenuhi berarti setara AND yang setara perkalian.
>>Maka array data dalam Match akan berupa :
>>( COUNTIF(K$2:K2,$H$3:$H$63)=0 ) * ( $H$3:$H$63 <> 0 )
>>Hasilnya adalah 1 (untuk data baru dan nilai data di $H$3:$H$63 bukanlah 0 ) atau 0 (untuk salah satu dari kedua kondisi yang tak terpenuhi).
>>Jadi, yang menjadi lookup value (dicari oleh match) bukan lagi angka 0, melainkan angka 1
>>Nah... bagian Match akan menjadi :
>>MATCH(1 , ( COUNTIF(K$2:K2,$H$3:$H$63)=0 ) * ( $H$3:$H$63 <> 0 ) , 0 )
>>
>>Array formula lengkap masing-masing :
>>1. untuk versi xl2007 :
>>=IFERROR(INDEX($H$3:$H$63,MATCH(1 , ( COUNTIF(K$2:K2,$H$3:$H$63)=0 ) * ( $H$3:$H$63 <> 0 ) , 0 ) ),"")
>>
>>2. untuk semua versi :
>>=IF(ROW()-2>$H$2,"",INDEX($H$3:$H$63,MATCH(1 , ( COUNTIF(K$2:K2,$H$3:$H$63)=0 ) * ( $H$3:$H$63 <> 0 ) , 0 ) ))
>>
>>Kesimpulannya :
>>Pengubahan formula karena adanya perubahan kondisi (bertambah atau berkurang jumlah kondisinya), difokuskan pada penyusunan kondisi-kondisi baru yang menyertakan kondisi awal (sebelum berubah) secara konsisten. Seperti kondisi bahwa jika CountIF 0 artinya sebagai data baru bergabung bersama kondisi baru berupa ada data di suatu area (dengan Len misalnya).
>>
>>Wassalam,
>>Kid.
>>
>>
>>
>>
>>2012/10/18 M.Ade Alfarid <QA@kkmi.co.id>
>>
>>Dear,
>>>
>>>
>>>Untuk menghilangkan angka 0 pada list index,
>>>tambah rumus apa?
>>>
>>>Ade
>>>
>>>
>>>
>>>
>>>On Mon, 15 Oct 2012 16:30:55 +0700, Mr. Kid <mr.nmkid@gmail.com> wrote:
>>>
>>>
>>>> Coba file terlampir.
>>>> Ada yang dibantu oleh sebuah kolom untuk menyusun data multi kolom
>>>> menjadi
>>>> data sekolom.
>>>>
>>>> Wassalam,
>>>> Kid
>>>>
>>>>
>>>> 2012/10/15 M.Ade Alfarid <QA@kkmi.co.id>
>>>>
>>>>> **
>>>
>>>>>
>>>>>
>>>>> BeExceller,
>>>>>
>>>>> Bagaimana untuk mengurut banyak data beberapa kolom,
>>>>> data dobel dihitung sekali saja?
>>>>> Terimakasih
>>>>> --
>>>>> ade
>>>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Fri Nov 23, 2012 9:24 pm (PST) . Posted by:

"lkm jktind" lkmjkt

Saya masih belajar.
Tanya : cara test_01 waktu nya : 11:53:56 selesai 11:54:01
cara test_02 waktunya : 11:54:17 selesai 11:54:17
apa yg penyebabnya . jadi lambat dari cara tes_01 ?

Sub Tes_01()
Dim Rng As Range
Dim i As Long
'Application.ScreenUpdating = False
'Application.EnableEvents = False
Sheets("Pertanyaan 2").Select
Range("A2").Select
Set Rng = Range("A2", Range("A65000").End(xlUp))
Cells(2, 5) = Time
For i = 1 To Rng.Rows.Count
ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
ActiveCell.Offset(1, 0).Select
Next i
'Application.ScreenUpdating = True
'Application.EnableEvents = True
Cells(2, 6) = Time
End Sub

Option Explicit
Sub tes_02()
Dim r As Long
Dim s As Long
Worksheets(2).Select
Cells(2, 1).Select
s = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 7), Cells(s, 10)).ClearContents
Cells(2, 9) = Time
For r = 2 To s
Cells(r, 7) = Left(Cells(r, 1), 10)
Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
Next
Cells(2, 10) = Time
End Sub

salam

Lukman

--- Mods ---
File lampiran dicekal karena melebihi 250KB.
Contoh data tidak perlu sampai ribuan. Jika membutuhkan contoh data yang banyak untuk uji kecepatan proses, coba create contoh data dengan VBA. Dengan demikian filesize bisa dijaga tetap sesuai peraturan milis.
------------

Sat Nov 24, 2012 12:13 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Sambil menunggu file lampiran beserta contoh data yang bisa di-generate
saat buka file atau saat mulai proses.

Pak Lukman,

Prosedur Test_01 lebih lambat dari Test_02 pada kasus ini adalah karena
penggunaan methods select yang terlalu intensif.
Coba amati bagian loop dengan For Next. Test_01 melakukan loop berdasar
nomor urut cell yang diproses, sedangkan formula dipasang dengan
menggunakan offset 1 baris dari cell terakhir yang dipasangi formula. Oleh
sebab itu dibutuhkan proses Select baris berikutnya setelah memasang
formula. Test_02 melakukan loop berdasar nomor baris excel cell yang
diproses.

Bagaimana kalau dicoba agar test_01 juga menggunakan cara test_02 dalam
merujuk cell yang dipasangi formula.
Kira-kira caranya begini :
Bagian :
For i = 1 To Rng.Rows.Count
ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
ActiveCell.Offset(1, 0).Select
Next i
diganti menjadi :
With activecell
For i = 1 To Rng.Rows.Count
.Offset(i-1, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
Next i
end with
Coba di-run berulang-ulang.
Setidaknya ada peningkatan walau sedikit

Kemudian, coba juga dengan pemasangan langsung ke banyak cell sekaligus :
Bagian :
For i = 1 To Rng.Rows.Count
ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
ActiveCell.Offset(1, 0).Select
Next i
atau bagian : (jika sudah bukan aslinya lagi)
With activecell
For i = 1 To Rng.Rows.Count
.Offset(i-1, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
Next i
end with
diubah menjadi : (jadi 1 baris saja)
Rng.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
kemudian coba di-run berulang kali.

Untuk memeriksa waktu proses, bisa menggunakan fungsi Timer dalam susunan
sebagai berikut :
dim dblTime as double

dbltime=timer

'prosesnya disini

dbltime=timer-dbltime
msgbox "Done in " & dbltime & " second.",vbinformation,"myProcess"

Wassalam,
Kid.

On Sat, Nov 24, 2012 at 12:11 PM, lkm jktind <lkmjktind@gmail.com> wrote:

> Saya masih belajar.
> Tanya : cara test_01 waktu nya : 11:53:56 selesai 11:54:01
> cara test_02 waktunya : 11:54:17 selesai 11:54:17
> apa yg penyebabnya . jadi lambat dari cara tes_01 ?
>
> Sub Tes_01()
> Dim Rng As Range
> Dim i As Long
> 'Application.ScreenUpdating = False
> 'Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A65000").End(xlUp))
> Cells(2, 5) = Time
> For i = 1 To Rng.Rows.Count
> ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
> ActiveCell.Offset(1, 0).Select
> Next i
> 'Application.ScreenUpdating = True
> 'Application.EnableEvents = True
> Cells(2, 6) = Time
> End Sub
>
> Option Explicit
> Sub tes_02()
> Dim r As Long
> Dim s As Long
> Worksheets(2).Select
> Cells(2, 1).Select
> s = Cells(Rows.Count, 1).End(xlUp).Row
> Range(Cells(2, 7), Cells(s, 10)).ClearContents
> Cells(2, 9) = Time
> For r = 2 To s
> Cells(r, 7) = Left(Cells(r, 1), 10)
> Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
> Next
> Cells(2, 10) = Time
> End Sub
>
>
> salam
>
> Lukman
>
>
> --- Mods ---
> File lampiran dicekal karena melebihi 250KB.
> Contoh data tidak perlu sampai ribuan. Jika membutuhkan contoh data yang
> banyak untuk uji kecepatan proses, coba create contoh data dengan VBA.
> Dengan demikian filesize bisa dijaga tetap sesuai peraturan milis.
> ------------
>
>
>
>

Sat Nov 24, 2012 2:00 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Dear BeExceller,

Berhubung Pak Lukman belum juga menyusulkan file lampiran lainnya, file
terlampir bisa dijadikan bahan untuk mempelajari kasus ini.
File terlampir adalah hasil pengurangan isi dari file yang dilampirkan Pak
Lukman pada thread ini.

Wassalam,
Moderator Belajar-Excel

On Sat, Nov 24, 2012 at 12:11 PM, lkm jktind <lkmjktind@gmail.com> wrote:

> Saya masih belajar.
> Tanya : cara test_01 waktu nya : 11:53:56 selesai 11:54:01
> cara test_02 waktunya : 11:54:17 selesai 11:54:17
> apa yg penyebabnya . jadi lambat dari cara tes_01 ?
>
> Sub Tes_01()
> Dim Rng As Range
> Dim i As Long
> 'Application.ScreenUpdating = False
> 'Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A65000").End(xlUp))
> Cells(2, 5) = Time
> For i = 1 To Rng.Rows.Count
> ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
> ActiveCell.Offset(1, 0).Select
> Next i
> 'Application.ScreenUpdating = True
> 'Application.EnableEvents = True
> Cells(2, 6) = Time
> End Sub
>
> Option Explicit
> Sub tes_02()
> Dim r As Long
> Dim s As Long
> Worksheets(2).Select
> Cells(2, 1).Select
> s = Cells(Rows.Count, 1).End(xlUp).Row
> Range(Cells(2, 7), Cells(s, 10)).ClearContents
> Cells(2, 9) = Time
> For r = 2 To s
> Cells(r, 7) = Left(Cells(r, 1), 10)
> Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
> Next
> Cells(2, 10) = Time
> End Sub
>
>
> salam
>
> Lukman
>
>
> --- Mods ---
> File lampiran dicekal karena melebihi 250KB.
> Contoh data tidak perlu sampai ribuan. Jika membutuhkan contoh data yang
> banyak untuk uji kecepatan proses, coba create contoh data dengan VBA.
> Dengan demikian filesize bisa dijaga tetap sesuai peraturan milis.
> ------------
>
>
> ------------------------------------
>
> ----------------------------------------------------------
> bergabung ke milis (subscribe), kirim mail kosong ke:
> belajar-excel-subscribe@yahoogroups.com
>
> posting ke milis, kirimkan ke:
> belajar-excel@yahoogroups.com
>
> berkunjung ke web milis
> http://tech.groups.yahoo.com/group/belajar-excel/messages
>
> melihat file archive / mendownload lampiran
> http://www.mail-archive.com/belajar-excel@yahoogroups.com/
> atau (sejak 25-Apr-2011) bisa juga di :
> http://milis-belajar-excel.1048464.n5.nabble.com/
>
> menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
>
> keluar dari membership milis (UnSubscribe):
> kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
> ----------------------------------------------------------Yahoo!
> Groups Links
>
>
>
>

Sat Nov 24, 2012 6:38 am (PST) . Posted by:

"lkm jktind" lkmjkt

Pak Kid.

Dari data yg pak Kid kirim kan itu , saya copy paste sampai menjadi
506.482 row
data ini yg saya tes dengan data hanya di kolom A.
dan didalam nya ada data yg kosong. (tidak semua nya terisi data)
hasil nya seperti dibawah ini :

Tes_01 : diatas 5 menit (ini pun belum selesai)
Tes_02 06:17:44 PM ~ 06:17:56 PM
Tes_03 : diatas 5 menit dan belum selesai)
Tes_04 : 06:28:45 PM ~ 06:28:46 PM

yg hendak saya tanyakan: cara tes_02 . dalam pelaksanan untuk prosedur
lain nya . apakah bisa menimbulkan kesalahan dihasilnya ?
Walaupun waktu yg di butuhkan lebih banyak . tapi cara tes_02 ini , lebih
mudah saya pahami.

terima kasih . (sudah banyak saya belajar dari Pak Kid)

Selamat malam dan salam sejahtera.

Lukman.

Maaf file nya tidak saya sertakan ( 8.5 MB)

Sub Tes_01()
Cells(1, 9) = Time
Dim Rng As Range
Dim i As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Pertanyaan 2").Select
Range("A2").Select
Set Rng = Range("A2", Range("A1000000").End(xlUp))
Cells(2, 9) = Time
For i = 1 To Rng.Rows.Count
ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
ActiveCell.Offset(1, 0).Select
Next i
Application.ScreenUpdating = True
Application.EnableEvents = True
Cells(3, 9) = Time
End Sub

Sub tes_02()
Cells(1, 10) = Time
Dim r As Long
Dim s As Long
Worksheets(2).Select
Cells(2, 1).Select
s = Cells(Rows.Count, 1).End(xlUp).Row
'Range(Cells(2, 7), Cells(s, 10)).ClearContents
Cells(2, 10) = Time
For r = 2 To s
Cells(r, 4) = Left(Cells(r, 1), 10)
'Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
Next
Cells(3, 10) = Time
End Sub

Sub Tes_03()
Cells(1, 11) = Time
Dim Rng As Range
Dim i As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Pertanyaan 2").Select
Range("A2").Select
Set Rng = Range("A2", Range("A1000000").End(xlUp))
Cells(2, 11) = Time
With ActiveCell
For i = 1 To Rng.Rows.Count
.Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
Next i
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Cells(3, 11) = Time
End Sub

Sub Tes_04()
Cells(1, 11) = Time
Dim Rng As Range
Dim i As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Pertanyaan 2").Select
Range("A2").Select
Set Rng = Range("A2", Range("A1000000").End(xlUp))
Cells(2, 11) = Time
With ActiveCell
For i = 1 To Rng.Rows.Count
.Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
Next i
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Cells(3, 11) = Time
End Sub

2012/11/24 Mr. Kid <mr.nmkid@gmail.com>

> **
>
>
> Dear BeExceller,
>
> Berhubung Pak Lukman belum juga menyusulkan file lampiran lainnya, file
> terlampir bisa dijadikan bahan untuk mempelajari kasus ini.
> File terlampir adalah hasil pengurangan isi dari file yang dilampirkan Pak
> Lukman pada thread ini.
>
> Wassalam,
> Moderator Belajar-Excel
>
>
> On Sat, Nov 24, 2012 at 12:11 PM, lkm jktind <lkmjktind@gmail.com> wrote:
>
>> Saya masih belajar.
>> Tanya : cara test_01 waktu nya : 11:53:56 selesai 11:54:01
>> cara test_02 waktunya : 11:54:17 selesai 11:54:17
>> apa yg penyebabnya . jadi lambat dari cara tes_01 ?
>>
>> Sub Tes_01()
>> Dim Rng As Range
>> Dim i As Long
>> 'Application.ScreenUpdating = False
>> 'Application.EnableEvents = False
>> Sheets("Pertanyaan 2").Select
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A65000").End(xlUp))
>> Cells(2, 5) = Time
>> For i = 1 To Rng.Rows.Count
>> ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
>> ActiveCell.Offset(1, 0).Select
>> Next i
>> 'Application.ScreenUpdating = True
>> 'Application.EnableEvents = True
>> Cells(2, 6) = Time
>> End Sub
>>
>> Option Explicit
>> Sub tes_02()
>> Dim r As Long
>> Dim s As Long
>> Worksheets(2).Select
>> Cells(2, 1).Select
>> s = Cells(Rows.Count, 1).End(xlUp).Row
>> Range(Cells(2, 7), Cells(s, 10)).ClearContents
>> Cells(2, 9) = Time
>> For r = 2 To s
>> Cells(r, 7) = Left(Cells(r, 1), 10)
>> Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
>> Next
>> Cells(2, 10) = Time
>> End Sub
>>
>>
>> salam
>>
>> Lukman
>>
>>
>> --- Mods ---
>> File lampiran dicekal karena melebihi 250KB.
>> Contoh data tidak perlu sampai ribuan. Jika membutuhkan contoh data yang
>> banyak untuk uji kecepatan proses, coba create contoh data dengan VBA.
>> Dengan demikian filesize bisa dijaga tetap sesuai peraturan milis.
>> ------------
>>
>>
>> ------------------------------------
>>
>> ----------------------------------------------------------
>> bergabung ke milis (subscribe), kirim mail kosong ke:
>> belajar-excel-subscribe@yahoogroups.com
>>
>> posting ke milis, kirimkan ke:
>> belajar-excel@yahoogroups.com
>>
>> berkunjung ke web milis
>> http://tech.groups.yahoo.com/group/belajar-excel/messages
>>
>> melihat file archive / mendownload lampiran
>> http://www.mail-archive.com/belajar-excel@yahoogroups.com/
>> atau (sejak 25-Apr-2011) bisa juga di :
>> http://milis-belajar-excel.1048464.n5.nabble.com/
>>
>> menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
>>
>> keluar dari membership milis (UnSubscribe):
>> kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
>> ----------------------------------------------------------Yahoo!
>> Groups Links
>>
>>
>>
>>
>
>

Sat Nov 24, 2012 7:12 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Pak Lukman,

Mungkin prosedur Tes_04 yang dimaksud Pak Lukman adalah :
Sub Tes_04()
Cells(1, 11) = Time

Dim Rng As Range
Dim i As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Pertanyaan 2").Select
Range("A2").Select
Set Rng = Range("A2", Range("A1000000").End(xlUp))
Cells(2, 11) = Time
'With ActiveCell

' For i = 1 To Rng.Rows.Count
' .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
' Next i
'End With

*Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*

Application.ScreenUpdating = True
Application.EnableEvents = True
Cells(3, 11) = Time
End Sub

Tes_01 : diatas 5 menit (ini pun belum selesai)
Tes_02 06:17:44 PM ~ 06:17:56 PM
Tes_03 : diatas 5 menit dan belum selesai)
Tes_04 : 06:28:45 PM ~ 06:28:46 PM

Tes_03 lebih cepat dibanding Tes_01 karena loop pada Tes_03 tidak melakukan
Select pada cell berikutnya yang akan dipasangi formula.
Tes_04 paling cepat karena tidak meminta VBA untuk membaca satu per satu
cell yang akan diproses.
Pada Tes_04, seluruh pemasangan formula diserahkan kepada Excel.
*VBA digunakan untuk :
1. menentukan range yang akan dipasangi formula*,
yaitu bagian yang berbunyi :
*Rng**.Offset(0, 2)*
dimana rng merujuk pada kolom data mulai A2 sampai baris A terbawah yang
berisi data :
Set Rng = Range("A2", Range("A1000000").End(xlUp))
kemudian di offset 2 kolom kekanan yang berati ke range hasil yaitu di
kolom C dengan rujukan baris yang sama dengan rng, yaitu mulai baris 2
sampai baris terkahir data.

*2. menentukan bunyi formula pada cell pertama hasil yang kemudian oleh
Excel akan di-copy ke cell lain yang ditunjuk oleh nomor 1 tadi.*
Bunyi formula pada cell pertama hasil [cell C2] :
*.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
Untuk formula ini, kerja Excel dalam meng-copy formula dan mengkalkulasinya
jauh lebih cepat dibanding proses kalkulasi yang sama yang dilakukan oleh
VBA.
Itu sebabnya prosedur Tes_04 jauh lebih cepat dibanding Tes_03.

Pemasangan formula melalui VBA umumnya disusun dengan kaidah dasar :
1. buat formula dalam worksheet pada cell pertama hasil
2. copy formula ke semua baris data yang membutuhkan
3. cek hasil kalkulasi formula,
>> jika sudah sesuai, lanjutkan ke nomor 4
>> jika belum sesuai, kembali ke nomor 1
4. Susun script pemasangan formula untuk seluruh baris hasil (jangan satu
per satu cell melalui loop)
Contohnya adalah baris berbunyi :
*Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
5. Copy formula ke VBA pada bagian pemasangan formula,
Contohnya seperti bagian yang berbunyi :
*.FormulaR1C1 = "=TEXT(RC[-2],"dd/mm/yy")"*
Bagian *merah *adalah bunyi formula dalam cell C2 di worksheet (bukan
di VBA) sesuai hasil kerja nomor 1 sampai nomor 3 di atas
6. Ganti semua karakter petik dua (") menjadi 2 buah karakter petik dua ("")
Contoh :
*.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*

Jadi, sebenarnya ndak terlalu sulit untuk dipahami kok. Justru harusnya
lebih mudah.
Coba bayangkan jika kalkulasinya membutuhkan proses lookup 2 dimensi (sisi
row dan juga harus cari di sisi kolom).
Apalagi jika sisi row nya saja ada banyak kriteria (misal saja ada 7
kriteria), yang jadinya harus berupa array formula.
Dengan memanfaatkan properti formulaarray, maka bisa disusun sebuah array
blok.

Pada beberapa kasus, seperti memasang array formula unique list, maka
proses pemasangan array formula hanya bisa pada cell pertama saja dengan
properti array formula. Kemudian copy formula ke cell lain (selain cell
pertama).

>> cara tes_02 . dalam pelaksanan untuk prosedur lain nya . apakah bisa
menimbulkan kesalahan dihasilnya ?
Untuk kegiatan seperti data tersebut, bisa jadi tidak ada yang salah
hasilnya. Hanya saja tes_02 secara mutlak adalah memerintahkan VBA
mengkalkulasi hasil dengan algoritma yang disusun programmer-nya melalui
bahasa VB. Sedangkan Excel memberi akses untuk bisa memanfaatkan kemampuan
si Excel dalam menyusun, memasang, dan mengkalkulasi formula.

Wassalam,
Kid.

2012/11/24 lkm jktind <lkmjktind@gmail.com>

> **
>
>
> Pak Kid.
>
> Dari data yg pak Kid kirim kan itu , saya copy paste sampai menjadi
> 506.482 row
> data ini yg saya tes dengan data hanya di kolom A.
> dan didalam nya ada data yg kosong. (tidak semua nya terisi data)
> hasil nya seperti dibawah ini :
>
> Tes_01 : diatas 5 menit (ini pun belum selesai)
> Tes_02 06:17:44 PM ~ 06:17:56 PM
> Tes_03 : diatas 5 menit dan belum selesai)
> Tes_04 : 06:28:45 PM ~ 06:28:46 PM
>
> yg hendak saya tanyakan: cara tes_02 . dalam pelaksanan untuk prosedur
> lain nya . apakah bisa menimbulkan kesalahan dihasilnya ?
> Walaupun waktu yg di butuhkan lebih banyak . tapi cara tes_02 ini , lebih
> mudah saya pahami.
>
> terima kasih . (sudah banyak saya belajar dari Pak Kid)
>
> Selamat malam dan salam sejahtera.
>
> Lukman.
>
> Maaf file nya tidak saya sertakan ( 8.5 MB)
>
>
> Sub Tes_01()
> Cells(1, 9) = Time
>
> Dim Rng As Range
> Dim i As Long
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> Cells(2, 9) = Time
>
> For i = 1 To Rng.Rows.Count
> ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
> ActiveCell.Offset(1, 0).Select
> Next i
> Application.ScreenUpdating = True
> Application.EnableEvents = True
> Cells(3, 9) = Time
> End Sub
>
> Sub tes_02()
> Cells(1, 10) = Time
>
> Dim r As Long
> Dim s As Long
> Worksheets(2).Select
> Cells(2, 1).Select
> s = Cells(Rows.Count, 1).End(xlUp).Row
> 'Range(Cells(2, 7), Cells(s, 10)).ClearContents
> Cells(2, 10) = Time
>
> For r = 2 To s
> Cells(r, 4) = Left(Cells(r, 1), 10)
> 'Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
> Next
> Cells(3, 10) = Time
> End Sub
>
> Sub Tes_03()
> Cells(1, 11) = Time
>
> Dim Rng As Range
> Dim i As Long
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> Cells(2, 11) = Time
> With ActiveCell
>
> For i = 1 To Rng.Rows.Count
> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
> Next i
> End With
>
> Application.ScreenUpdating = True
> Application.EnableEvents = True
> Cells(3, 11) = Time
> End Sub
>
> Sub Tes_04()
> Cells(1, 11) = Time
>
> Dim Rng As Range
> Dim i As Long
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> Cells(2, 11) = Time
> With ActiveCell
>
> For i = 1 To Rng.Rows.Count
> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
> Next i
> End With
>
> Application.ScreenUpdating = True
> Application.EnableEvents = True
> Cells(3, 11) = Time
> End Sub
>
>
>
>
>

Sat Nov 24, 2012 8:08 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Oh iya, ada yang kelupaan.

Dari tadikan membahas yang sheet Pertanyaan 2.
Masalah kecepatan proses sudah dibahas cukup banyak.
Kesimpulan yang dapat diambil antara lain adalah perlunya usaha untuk
memanfaatkan fitur-fitur Excel secara optimum.

Contohnya pada sheet pertanyaan 1. Diinginkan untuk menyusun unique list
per kolom.
Dengan memanfaatkan fitur remove duplicate dalam sebuah loop untuk
memproses perkolom, bisa diperoleh hasil yang relatif cepat dengan jumlah
baris script yang lebih sedikit.
Baris script yang lebih sedikit tentu saja akan mempercepat proses, tetapi
tidaklah terlalu signifikan. Yang utama adalah algoritma dalam script itu
sendiri. Semakin efisien alur proses yang disusun, maka semakin cepat.
Biasanya, jumlah baris script yang sedikit lebih memudahkan penelusuran
ketika terjadi error.

File terlampir adalah sebuah contoh.
>> Pada sheet Pertanyaan 1, ada proses yang memanfaatkan fitur
removeduplicate. Untuk xl2003 dan sebelumnya, ganti penggunaan
removedupklicate dengan fitur advanced filter unique records to another
place
>> Pada sheet Pertanyaan 2, bisa dilakukan pengujian proses untuk maksimal
baris Excel yang terisi data. Perhatikan syarat dan ketentuan yang
dijelaskan dalam sheet tersebut, karena tujuannya adalah untuk menguji
kecepatan proses tertentu pada suatu keadaan tertentu. Untuk awalnya, file
tersebut menyediakan data sampai cell A1000000. Penggantian nomor baris
maksimal bisa dilakukan dengan mengubah nilai (numerik) pada cell J1.

Wassalam,
Kid.

2012/11/24 Mr. Kid <mr.nmkid@gmail.com>

> Pak Lukman,
>
> Mungkin prosedur Tes_04 yang dimaksud Pak Lukman adalah :
>
> Sub Tes_04()
> Cells(1, 11) = Time
>
> Dim Rng As Range
> Dim i As Long
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> Sheets("Pertanyaan 2").Select
> Range("A2").Select
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> Cells(2, 11) = Time
> 'With ActiveCell
>
> ' For i = 1 To Rng.Rows.Count
> ' .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
> ' Next i
> 'End With
>
> *Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>
>
> Application.ScreenUpdating = True
> Application.EnableEvents = True
> Cells(3, 11) = Time
> End Sub
>
>
> Tes_01 : diatas 5 menit (ini pun belum selesai)
> Tes_02 06:17:44 PM ~ 06:17:56 PM
> Tes_03 : diatas 5 menit dan belum selesai)
> Tes_04 : 06:28:45 PM ~ 06:28:46 PM
>
> Tes_03 lebih cepat dibanding Tes_01 karena loop pada Tes_03 tidak
> melakukan Select pada cell berikutnya yang akan dipasangi formula.
> Tes_04 paling cepat karena tidak meminta VBA untuk membaca satu per satu
> cell yang akan diproses.
> Pada Tes_04, seluruh pemasangan formula diserahkan kepada Excel.
> *VBA digunakan untuk :
> 1. menentukan range yang akan dipasangi formula*,
> yaitu bagian yang berbunyi :
> *Rng**.Offset(0, 2)*
> dimana rng merujuk pada kolom data mulai A2 sampai baris A terbawah yang
> berisi data :
>
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> kemudian di offset 2 kolom kekanan yang berati ke range hasil yaitu di
> kolom C dengan rujukan baris yang sama dengan rng, yaitu mulai baris 2
> sampai baris terkahir data.
>
> *2. menentukan bunyi formula pada cell pertama hasil yang kemudian oleh
> Excel akan di-copy ke cell lain yang ditunjuk oleh nomor 1 tadi.*
> Bunyi formula pada cell pertama hasil [cell C2] :
> *.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
> Untuk formula ini, kerja Excel dalam meng-copy formula dan
> mengkalkulasinya jauh lebih cepat dibanding proses kalkulasi yang sama yang
> dilakukan oleh VBA.
> Itu sebabnya prosedur Tes_04 jauh lebih cepat dibanding Tes_03.
>
> Pemasangan formula melalui VBA umumnya disusun dengan kaidah dasar :
> 1. buat formula dalam worksheet pada cell pertama hasil
> 2. copy formula ke semua baris data yang membutuhkan
> 3. cek hasil kalkulasi formula,
> >> jika sudah sesuai, lanjutkan ke nomor 4
> >> jika belum sesuai, kembali ke nomor 1
> 4. Susun script pemasangan formula untuk seluruh baris hasil (jangan satu
> per satu cell melalui loop)
> Contohnya adalah baris berbunyi :
> *Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
> 5. Copy formula ke VBA pada bagian pemasangan formula,
> Contohnya seperti bagian yang berbunyi :
>
> *.FormulaR1C1 = "=TEXT(RC[-2],"dd/mm/yy")"*
> Bagian *merah *adalah bunyi formula dalam cell C2 di worksheet
> (bukan di VBA) sesuai hasil kerja nomor 1 sampai nomor 3 di atas
> 6. Ganti semua karakter petik dua (") menjadi 2 buah karakter petik dua (
> "")
> Contoh :
>
> *.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>
> Jadi, sebenarnya ndak terlalu sulit untuk dipahami kok. Justru harusnya
> lebih mudah.
> Coba bayangkan jika kalkulasinya membutuhkan proses lookup 2 dimensi (sisi
> row dan juga harus cari di sisi kolom).
> Apalagi jika sisi row nya saja ada banyak kriteria (misal saja ada 7
> kriteria), yang jadinya harus berupa array formula.
> Dengan memanfaatkan properti formulaarray, maka bisa disusun sebuah array
> blok.
>
> Pada beberapa kasus, seperti memasang array formula unique list, maka
> proses pemasangan array formula hanya bisa pada cell pertama saja dengan
> properti array formula. Kemudian copy formula ke cell lain (selain cell
> pertama).
>
>
> >> cara tes_02 . dalam pelaksanan untuk prosedur lain nya . apakah bisa
> menimbulkan kesalahan dihasilnya ?
> Untuk kegiatan seperti data tersebut, bisa jadi tidak ada yang salah
> hasilnya. Hanya saja tes_02 secara mutlak adalah memerintahkan VBA
> mengkalkulasi hasil dengan algoritma yang disusun programmer-nya melalui
> bahasa VB. Sedangkan Excel memberi akses untuk bisa memanfaatkan kemampuan
> si Excel dalam menyusun, memasang, dan mengkalkulasi formula.
>
> Wassalam,
> Kid.
>
>
>
> 2012/11/24 lkm jktind <lkmjktind@gmail.com>
>
>> **
>>
>>
>> Pak Kid.
>>
>> Dari data yg pak Kid kirim kan itu , saya copy paste sampai menjadi
>> 506.482 row
>> data ini yg saya tes dengan data hanya di kolom A.
>> dan didalam nya ada data yg kosong. (tidak semua nya terisi data)
>> hasil nya seperti dibawah ini :
>>
>> Tes_01 : diatas 5 menit (ini pun belum selesai)
>> Tes_02 06:17:44 PM ~ 06:17:56 PM
>> Tes_03 : diatas 5 menit dan belum selesai)
>> Tes_04 : 06:28:45 PM ~ 06:28:46 PM
>>
>> yg hendak saya tanyakan: cara tes_02 . dalam pelaksanan untuk prosedur
>> lain nya . apakah bisa menimbulkan kesalahan dihasilnya ?
>> Walaupun waktu yg di butuhkan lebih banyak . tapi cara tes_02 ini ,
>> lebih mudah saya pahami.
>>
>> terima kasih . (sudah banyak saya belajar dari Pak Kid)
>>
>> Selamat malam dan salam sejahtera.
>>
>> Lukman.
>>
>> Maaf file nya tidak saya sertakan ( 8.5 MB)
>>
>>
>> Sub Tes_01()
>> Cells(1, 9) = Time
>>
>> Dim Rng As Range
>> Dim i As Long
>> Application.ScreenUpdating = False
>> Application.EnableEvents = False
>> Sheets("Pertanyaan 2").Select
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> Cells(2, 9) = Time
>>
>> For i = 1 To Rng.Rows.Count
>> ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
>> ActiveCell.Offset(1, 0).Select
>> Next i
>> Application.ScreenUpdating = True
>> Application.EnableEvents = True
>> Cells(3, 9) = Time
>> End Sub
>>
>> Sub tes_02()
>> Cells(1, 10) = Time
>>
>> Dim r As Long
>> Dim s As Long
>> Worksheets(2).Select
>> Cells(2, 1).Select
>> s = Cells(Rows.Count, 1).End(xlUp).Row
>> 'Range(Cells(2, 7), Cells(s, 10)).ClearContents
>> Cells(2, 10) = Time
>>
>> For r = 2 To s
>> Cells(r, 4) = Left(Cells(r, 1), 10)
>> 'Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
>> Next
>> Cells(3, 10) = Time
>> End Sub
>>
>> Sub Tes_03()
>> Cells(1, 11) = Time
>>
>> Dim Rng As Range
>> Dim i As Long
>> Application.ScreenUpdating = False
>> Application.EnableEvents = False
>> Sheets("Pertanyaan 2").Select
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> Cells(2, 11) = Time
>> With ActiveCell
>>
>> For i = 1 To Rng.Rows.Count
>> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
>> Next i
>> End With
>>
>> Application.ScreenUpdating = True
>> Application.EnableEvents = True
>> Cells(3, 11) = Time
>> End Sub
>>
>> Sub Tes_04()
>> Cells(1, 11) = Time
>>
>> Dim Rng As Range
>> Dim i As Long
>> Application.ScreenUpdating = False
>> Application.EnableEvents = False
>> Sheets("Pertanyaan 2").Select
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> Cells(2, 11) = Time
>> With ActiveCell
>>
>> For i = 1 To Rng.Rows.Count
>> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
>> Next i
>> End With
>>
>> Application.ScreenUpdating = True
>> Application.EnableEvents = True
>> Cells(3, 11) = Time
>> End Sub
>>
>>
>>
>>
>>
>

Sat Nov 24, 2012 8:25 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Maaf ada yang ketinggalan.

File terlampir adaalh perbaikan dari file sebelumnya, yang berisi :
1. Pengubahan prosedur Tes_01 agar lebih fleksibel terhadap baris data
seperti Tes_02.
2. Pengubahan prosedur Tes_01 agar mengolah sisi time.
3. Pengubahan prosedur Tes_01 agar menghasilkan values.

Wassalam,
Kid.

2012/11/24 Mr. Kid <mr.nmkid@gmail.com>

> Oh iya, ada yang kelupaan.
>
> Dari tadikan membahas yang sheet Pertanyaan 2.
> Masalah kecepatan proses sudah dibahas cukup banyak.
> Kesimpulan yang dapat diambil antara lain adalah perlunya usaha untuk
> memanfaatkan fitur-fitur Excel secara optimum.
>
> Contohnya pada sheet pertanyaan 1. Diinginkan untuk menyusun unique list
> per kolom.
> Dengan memanfaatkan fitur remove duplicate dalam sebuah loop untuk
> memproses perkolom, bisa diperoleh hasil yang relatif cepat dengan jumlah
> baris script yang lebih sedikit.
> Baris script yang lebih sedikit tentu saja akan mempercepat proses, tetapi
> tidaklah terlalu signifikan. Yang utama adalah algoritma dalam script itu
> sendiri. Semakin efisien alur proses yang disusun, maka semakin cepat.
> Biasanya, jumlah baris script yang sedikit lebih memudahkan penelusuran
> ketika terjadi error.
>
> File terlampir adalah sebuah contoh.
> >> Pada sheet Pertanyaan 1, ada proses yang memanfaatkan fitur
> removeduplicate. Untuk xl2003 dan sebelumnya, ganti penggunaan
> removedupklicate dengan fitur advanced filter unique records to another
> place
> >> Pada sheet Pertanyaan 2, bisa dilakukan pengujian proses untuk maksimal
> baris Excel yang terisi data. Perhatikan syarat dan ketentuan yang
> dijelaskan dalam sheet tersebut, karena tujuannya adalah untuk menguji
> kecepatan proses tertentu pada suatu keadaan tertentu. Untuk awalnya, file
> tersebut menyediakan data sampai cell A1000000. Penggantian nomor baris
> maksimal bisa dilakukan dengan mengubah nilai (numerik) pada cell J1.
>
> Wassalam,
> Kid.
>
> 2012/11/24 Mr. Kid <mr.nmkid@gmail.com>
>
> Pak Lukman,
>>
>> Mungkin prosedur Tes_04 yang dimaksud Pak Lukman adalah :
>>
>> Sub Tes_04()
>> Cells(1, 11) = Time
>>
>> Dim Rng As Range
>> Dim i As Long
>> Application.ScreenUpdating = False
>> Application.EnableEvents = False
>> Sheets("Pertanyaan 2").Select
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> Cells(2, 11) = Time
>> 'With ActiveCell
>>
>> ' For i = 1 To Rng.Rows.Count
>> ' .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
>> ' Next i
>> 'End With
>>
>> *Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>>
>>
>> Application.ScreenUpdating = True
>> Application.EnableEvents = True
>> Cells(3, 11) = Time
>> End Sub
>>
>>
>> Tes_01 : diatas 5 menit (ini pun belum selesai)
>> Tes_02 06:17:44 PM ~ 06:17:56 PM
>> Tes_03 : diatas 5 menit dan belum selesai)
>> Tes_04 : 06:28:45 PM ~ 06:28:46 PM
>>
>> Tes_03 lebih cepat dibanding Tes_01 karena loop pada Tes_03 tidak
>> melakukan Select pada cell berikutnya yang akan dipasangi formula.
>> Tes_04 paling cepat karena tidak meminta VBA untuk membaca satu per satu
>> cell yang akan diproses.
>> Pada Tes_04, seluruh pemasangan formula diserahkan kepada Excel.
>> *VBA digunakan untuk :
>> 1. menentukan range yang akan dipasangi formula*,
>> yaitu bagian yang berbunyi :
>> *Rng**.Offset(0, 2)*
>> dimana rng merujuk pada kolom data mulai A2 sampai baris A terbawah yang
>> berisi data :
>>
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> kemudian di offset 2 kolom kekanan yang berati ke range hasil yaitu di
>> kolom C dengan rujukan baris yang sama dengan rng, yaitu mulai baris 2
>> sampai baris terkahir data.
>>
>> *2. menentukan bunyi formula pada cell pertama hasil yang kemudian oleh
>> Excel akan di-copy ke cell lain yang ditunjuk oleh nomor 1 tadi.*
>> Bunyi formula pada cell pertama hasil [cell C2] :
>> *.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>> Untuk formula ini, kerja Excel dalam meng-copy formula dan
>> mengkalkulasinya jauh lebih cepat dibanding proses kalkulasi yang sama yang
>> dilakukan oleh VBA.
>> Itu sebabnya prosedur Tes_04 jauh lebih cepat dibanding Tes_03.
>>
>> Pemasangan formula melalui VBA umumnya disusun dengan kaidah dasar :
>> 1. buat formula dalam worksheet pada cell pertama hasil
>> 2. copy formula ke semua baris data yang membutuhkan
>> 3. cek hasil kalkulasi formula,
>> >> jika sudah sesuai, lanjutkan ke nomor 4
>> >> jika belum sesuai, kembali ke nomor 1
>> 4. Susun script pemasangan formula untuk seluruh baris hasil (jangan satu
>> per satu cell melalui loop)
>> Contohnya adalah baris berbunyi :
>> *Rng**.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>> 5. Copy formula ke VBA pada bagian pemasangan formula,
>> Contohnya seperti bagian yang berbunyi :
>>
>> *.FormulaR1C1 = "=TEXT(RC[-2],"dd/mm/yy")"*
>> Bagian *merah *adalah bunyi formula dalam cell C2 di worksheet
>> (bukan di VBA) sesuai hasil kerja nomor 1 sampai nomor 3 di atas
>> 6. Ganti semua karakter petik dua (") menjadi 2 buah karakter petik dua (
>> "")
>> Contoh :
>>
>> *.FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"*
>>
>> Jadi, sebenarnya ndak terlalu sulit untuk dipahami kok. Justru harusnya
>> lebih mudah.
>> Coba bayangkan jika kalkulasinya membutuhkan proses lookup 2 dimensi
>> (sisi row dan juga harus cari di sisi kolom).
>> Apalagi jika sisi row nya saja ada banyak kriteria (misal saja ada 7
>> kriteria), yang jadinya harus berupa array formula.
>> Dengan memanfaatkan properti formulaarray, maka bisa disusun sebuah array
>> blok.
>>
>> Pada beberapa kasus, seperti memasang array formula unique list, maka
>> proses pemasangan array formula hanya bisa pada cell pertama saja dengan
>> properti array formula. Kemudian copy formula ke cell lain (selain cell
>> pertama).
>>
>>
>> >> cara tes_02 . dalam pelaksanan untuk prosedur lain nya . apakah bisa
>> menimbulkan kesalahan dihasilnya ?
>> Untuk kegiatan seperti data tersebut, bisa jadi tidak ada yang salah
>> hasilnya. Hanya saja tes_02 secara mutlak adalah memerintahkan VBA
>> mengkalkulasi hasil dengan algoritma yang disusun programmer-nya melalui
>> bahasa VB. Sedangkan Excel memberi akses untuk bisa memanfaatkan kemampuan
>> si Excel dalam menyusun, memasang, dan mengkalkulasi formula.
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>> 2012/11/24 lkm jktind <lkmjktind@gmail.com>
>>
>>> **
>>>
>>>
>>> Pak Kid.
>>>
>>> Dari data yg pak Kid kirim kan itu , saya copy paste sampai menjadi
>>> 506.482 row
>>> data ini yg saya tes dengan data hanya di kolom A.
>>> dan didalam nya ada data yg kosong. (tidak semua nya terisi data)
>>> hasil nya seperti dibawah ini :
>>>
>>> Tes_01 : diatas 5 menit (ini pun belum selesai)
>>> Tes_02 06:17:44 PM ~ 06:17:56 PM
>>> Tes_03 : diatas 5 menit dan belum selesai)
>>> Tes_04 : 06:28:45 PM ~ 06:28:46 PM
>>>
>>> yg hendak saya tanyakan: cara tes_02 . dalam pelaksanan untuk prosedur
>>> lain nya . apakah bisa menimbulkan kesalahan dihasilnya ?
>>> Walaupun waktu yg di butuhkan lebih banyak . tapi cara tes_02 ini ,
>>> lebih mudah saya pahami.
>>>
>>> terima kasih . (sudah banyak saya belajar dari Pak Kid)
>>>
>>> Selamat malam dan salam sejahtera.
>>>
>>> Lukman.
>>>
>>> Maaf file nya tidak saya sertakan ( 8.5 MB)
>>>
>>>
>>> Sub Tes_01()
>>> Cells(1, 9) = Time
>>>
>>> Dim Rng As Range
>>> Dim i As Long
>>> Application.ScreenUpdating = False
>>> Application.EnableEvents = False
>>> Sheets("Pertanyaan 2").Select
>>> Range("A2").Select
>>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>>> Cells(2, 9) = Time
>>>
>>> For i = 1 To Rng.Rows.Count
>>> ActiveCell.Offset(0, 2).FormulaR1C1 =
>>> "=TEXT(RC[-2],""dd/mm/yy"")"
>>> ActiveCell.Offset(1, 0).Select
>>> Next i
>>> Application.ScreenUpdating = True
>>> Application.EnableEvents = True
>>> Cells(3, 9) = Time
>>> End Sub
>>>
>>> Sub tes_02()
>>> Cells(1, 10) = Time
>>>
>>> Dim r As Long
>>> Dim s As Long
>>> Worksheets(2).Select
>>> Cells(2, 1).Select
>>> s = Cells(Rows.Count, 1).End(xlUp).Row
>>> 'Range(Cells(2, 7), Cells(s, 10)).ClearContents
>>> Cells(2, 10) = Time
>>>
>>> For r = 2 To s
>>> Cells(r, 4) = Left(Cells(r, 1), 10)
>>> 'Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
>>> Next
>>> Cells(3, 10) = Time
>>> End Sub
>>>
>>> Sub Tes_03()
>>> Cells(1, 11) = Time
>>>
>>> Dim Rng As Range
>>> Dim i As Long
>>> Application.ScreenUpdating = False
>>> Application.EnableEvents = False
>>> Sheets("Pertanyaan 2").Select
>>> Range("A2").Select
>>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>>> Cells(2, 11) = Time
>>> With ActiveCell
>>>
>>> For i = 1 To Rng.Rows.Count
>>> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
>>> Next i
>>> End With
>>>
>>> Application.ScreenUpdating = True
>>> Application.EnableEvents = True
>>> Cells(3, 11) = Time
>>> End Sub
>>>
>>> Sub Tes_04()
>>> Cells(1, 11) = Time
>>>
>>> Dim Rng As Range
>>> Dim i As Long
>>> Application.ScreenUpdating = False
>>> Application.EnableEvents = False
>>> Sheets("Pertanyaan 2").Select
>>> Range("A2").Select
>>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>>> Cells(2, 11) = Time
>>> With ActiveCell
>>>
>>> For i = 1 To Rng.Rows.Count
>>> .Offset(i - 1, 4).FormulaR1C1 = "=TEXT(RC[-4],""dd/mm/yy"")"
>>> Next i
>>> End With
>>>
>>> Application.ScreenUpdating = True
>>> Application.EnableEvents = True
>>> Cells(3, 11) = Time
>>> End Sub
>>>
>>>
>>>
>>>
>>>
>>
>

Fri Nov 23, 2012 7:55 pm (PST) . Posted by:

"Teti Zhe" teti_zhe

Dear Mr. Kid, 
Maaf merepotkan terus neh..penjelasanya dapat saya pahami. Namun ada yang saya bingungkan, belum dapet cara mbuatnya gimana heheh.. untuk menjadikan row label nya menjadi header column seperti yang Mr. Kid uda contohkan.
file yang saya buat terlampir <pada sheet1>... 
Mkasih...
 
Salam,
Teti.

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Friday, November 23, 2012 5:25 PM
Subject: Re: [belajar-excel] Cara Filter Data ke Sheet yang lain berdasar kriteria


 
Coba file terlampir.

Untuk nomor urut, biasanya dibuat sendiri dengan formula dan di-copy ke banyak baris sebagai persiapan berubahnya jumlah record dalam pivot table.
Jadi buat formula yang sesederhana mungkin.

Untuk persentase dalam pivot table, maka bagian Values harus diisi dengan suatu field.
Jika ingin jumlah cacah data (jumlah record), maka klik kanan field yang dimasukkan tadi, pilih field setting, tab Summarize by pilih item Count.
Untuk persentase, pada field setting tersebut, ke tab Show Values as, pilih item % of Total atau apapun yang dibutuhkan.

Wassalam,
Kid.

2012/11/23 Teti Zhe <teti_zhe@yahoo.com>

> 
>Dear Mr. Kid,
>Saran dari Mr.Kid juga sangat membantu, sebagai solusi lain selain macro yang diperkenalkan Ms Jan pada saya.. Dua-dua nya sungguh membantu hehehe.. <dengan ekspresi senang ^^>
>Makasih pengenalan tentang pivot tabel.,.teman saya pernah bilang dengan pivot tabel juga bisa menghitung persenan.. kebetulan nih Mr Kid, boleh tolong ajari saya, karena data di tabel All itu nanti nya (juga di tabel2 lainnya) akan saya hitung berapa persen yang DO/Tidak Sekolah/Tamat , dan berapa persen dari kategori tersebut yang Female dan Male, kira2 salah satu kategori seperti itu,,dan masih banyak lagi data yang akan saya ekstrak dari tabel itu untuk laporan tapi musti menggunakan angka persen gitu..nah, saya berharap, Mr.Kid boleh kasi pencerahan dnk... 
>Cuma solusi pake pivot tabel, nomer urut nya ga bisa berurutan ya ..??
>
>
>Thanks,..
> 
>Salam,
>Teti.
>
>
>
>
>________________________________
> From: Mr. Kid <mr.nmkid@gmail.com>
>To: belajar-excel@yahoogroups.com
>Sent: Thursday, November 22, 2012 10:24 AM
>
>Subject: Re: [belajar-excel] Cara Filter Data ke Sheet yang lain berdasar kriteria
>
>
> 
>Hai Teti,
>
>File terlampir memanfaatkan Pivot Table.
>Data source dibentuk menjadi sebuah pivot cache.
>Sebuah pivot cache bisa digunakan untuk membentuk banyak pivot table.
>
>Pivot table membutuhkan sebuah data source (tabel sumber data yang baik - dalam kasus ini adalah tabel di sheet ALL) yang telah dibentuk menjadi sebuah pivot cache.
>Jika ingin membuat banyak pivot table dari sebuah pivot cache, copy pivot table yang sudah jadi dan paste ke sheet lain atau ketempat lain dalam sheet yang sama sesuai kebutuhan.
>
>Hal ini akan membuat proses lebih cepat, karena Excel hanya butuh merefresh 1 (satu) pivot cache yang bersumber dari 1 tabel data source).
>Dengan di-refreshnya pivot cache, maka seluruh pivot table yang data sourcenya berasal dari pivot cache tersebut akan melakukan refresh tampilan saja. Sedang seluruh datanya sudah direfresh oleh pivot cache.
>
>Wassalam,
>Kid.
>
>
>
>
>2012/11/21 Teti Zhe <teti_zhe@yahoo.com>
>
>
>> 
>>Dear All,
>>Mohon bantuannya , saya ada data yang ingin saya filter : 
>>
>>
>>1. Dari sheet1 (sheet ALL) ke sheet2 (sheet SelectedAwal) tapi berdasarkan kriteria pada kolom Status semua yang DO, Tidak Sekolah, dan Tamat . Data-data yang terseleksi sesuai kriteria tersebut dicopy ke sheet2 dengan format tabel seperti pada sheet1... Kemudian data yang masih tinggal, yang tidak memenuhi kriteria (yang pada kolom status adalah Sekolah) akan dicopy pada sheet2 (sheet Pending). <File terlampir : 1.Bgm_Filter_DataSelectedAwal>.
>>
>>
>>
>>
>>2. Seperti pada lampiran kedua ( File : 2.Bgm_Filter_DataPending) , jika tadi telah ada data yang uda kian dikasi di sheet2 (sheet SelectedAwal) yang tadinya adalah hasil filter sebagian data dari sheet1 (Sheet ALL), nah bagaimana mengetahui data-data yang belum difilter atau data-data yang belum ada pada sheet SelectedAwal? kemudian data-data yang belum termasuk di sheet SelectedAwal tersebut dimasukkan/dicopy pada sheet Pending dan mengikuti format tabel yang ada?
>>
>>
>>Makasih atas bantuan dan pencerahannya....
>> 
>>Salam,
>>Teti.
>>
>
>
>

Fri Nov 23, 2012 8:51 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Hai Teti,

Coba ubah bentuk layout report :
1. refresh dulu jika belum di-refresh
2. klik pivot table
3. ribbon Pivot Table -> Design -> grup Layout -> klik Report Layout ->
Pilih tabular atau Outline

Wassalam,
Kid.

2012/11/24 Teti Zhe <teti_zhe@yahoo.com>

> **
>
>
> Dear Mr. Kid,
> Maaf merepotkan terus neh..penjelasanya dapat saya pahami. Namun ada yang
> saya bingungkan, belum dapet cara mbuatnya gimana heheh.. untuk menjadikan
> row label nya menjadi header column seperti yang Mr. Kid uda contohkan.
> file yang saya buat terlampir <pada sheet1>...
> Mkasih...
>
> Salam,
> Teti.
>
> ------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Friday, November 23, 2012 5:25 PM
>
> *Subject:* Re: [belajar-excel] Cara Filter Data ke Sheet yang lain
> berdasar kriteria
>
>
> Coba file terlampir.
>
> Untuk nomor urut, biasanya dibuat sendiri dengan formula dan di-copy ke
> banyak baris sebagai persiapan berubahnya jumlah record dalam pivot table.
> Jadi buat formula yang sesederhana mungkin.
>
> Untuk persentase dalam pivot table, maka bagian Values harus diisi dengan
> suatu field.
> Jika ingin jumlah cacah data (jumlah record), maka klik kanan field yang
> dimasukkan tadi, pilih field setting, tab Summarize by pilih item Count.
> Untuk persentase, pada field setting tersebut, ke tab Show Values as,
> pilih item % of Total atau apapun yang dibutuhkan.
>
> Wassalam,
> Kid.
>
> 2012/11/23 Teti Zhe <teti_zhe@yahoo.com>
>
> **
>
> Dear Mr. Kid,
> Saran dari Mr.Kid juga sangat membantu, sebagai solusi lain selain macro
> yang diperkenalkan Ms Jan pada saya.. Dua-dua nya sungguh membantu hehehe..
> <dengan ekspresi senang ^^>
> Makasih pengenalan tentang pivot tabel.,.teman saya pernah bilang dengan
> pivot tabel juga bisa menghitung persenan.. kebetulan nih Mr Kid, boleh
> tolong ajari saya, karena data di tabel All itu nanti nya (juga di tabel2
> lainnya) akan saya hitung berapa persen yang DO/Tidak Sekolah/Tamat , dan
> berapa persen dari kategori tersebut yang Female dan Male, kira2 salah satu
> kategori seperti itu,,dan masih banyak lagi data yang akan saya ekstrak
> dari tabel itu untuk laporan tapi musti menggunakan angka persen gitu..nah,
> saya berharap, Mr.Kid boleh kasi pencerahan dnk...
> Cuma solusi pake pivot tabel, nomer urut nya ga bisa berurutan ya ..??
>
> Thanks,..
>
> Salam,
> Teti.
>
> ------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Thursday, November 22, 2012 10:24 AM
>
> *Subject:* Re: [belajar-excel] Cara Filter Data ke Sheet yang lain
> berdasar kriteria
>
>
> Hai Teti,
>
> File terlampir memanfaatkan Pivot Table.
> Data source dibentuk menjadi sebuah pivot cache.
> Sebuah pivot cache bisa digunakan untuk membentuk banyak pivot table.
>
> Pivot table membutuhkan sebuah data source (tabel sumber data yang baik -
> dalam kasus ini adalah tabel di sheet ALL) yang telah dibentuk menjadi
> sebuah pivot cache.
> Jika ingin membuat banyak pivot table dari sebuah pivot cache, copy pivot
> table yang sudah jadi dan paste ke sheet lain atau ketempat lain dalam
> sheet yang sama sesuai kebutuhan.
>
> Hal ini akan membuat proses lebih cepat, karena Excel hanya butuh
> merefresh 1 (satu) pivot cache yang bersumber dari 1 tabel data source).
> Dengan di-refreshnya pivot cache, maka seluruh pivot table yang data
> sourcenya berasal dari pivot cache tersebut akan melakukan refresh tampilan
> saja. Sedang seluruh datanya sudah direfresh oleh pivot cache.
>
> Wassalam,
> Kid.
>
>
>
> 2012/11/21 Teti Zhe <teti_zhe@yahoo.com>
>
> **
>
> Dear All,
> Mohon bantuannya , saya ada data yang ingin saya filter :
>
> 1. Dari sheet1 (sheet ALL) ke sheet2 (sheet SelectedAwal) tapi berdasarkan
> kriteria pada kolom Status semua yang DO, Tidak Sekolah, dan Tamat .
> Data-data yang terseleksi sesuai kriteria tersebut dicopy ke sheet2 dengan
> format tabel seperti pada sheet1... Kemudian data yang masih tinggal, yang
> tidak memenuhi kriteria (yang pada kolom status adalah Sekolah) akan dicopy
> pada sheet2 (sheet Pending). <File terlampir :
> 1.Bgm_Filter_DataSelectedAwal>.
>
>
> 2. Seperti pada lampiran kedua ( File : 2.Bgm_Filter_DataPending) , jika
> tadi telah ada data yang uda kian dikasi di sheet2 (sheet SelectedAwal)
> yang tadinya adalah hasil filter sebagian data dari sheet1 (Sheet ALL), nah
> bagaimana mengetahui data-data yang belum difilter atau data-data yang
> belum ada pada sheet SelectedAwal? kemudian data-data yang belum termasuk
> di sheet SelectedAwal tersebut dimasukkan/dicopy pada sheet Pending dan
> mengikuti format tabel yang ada?
>
> Makasih atas bantuan dan pencerahannya....
>
> Salam,
> Teti.
>
>
>
>
>
>
>
>
>

Fri Nov 23, 2012 11:05 pm (PST) . Posted by:

"Debora Christy" debora.christy@rocketmail.com

Master, sy mw tny...

Sy lg buat excel utk koperasi kredit, sy mengalami kesulitan, jd sy buat 2 sheet...
Sheet 1 sy buat utk kalkulator kredit sdgkan sheet 2 sy buat utk data konsumen...
Kedua sheet ini sy link'kan berdsr no induk, jadi pd sheet 1 kode no induk sy buat dgn model validation list yg berasal dr link sheet 2, shg ketika pd sheet 1 sy pilih no induk maka secara otomatis nilai pokok kredit pd sheet 1 akan berubah sesuai dgn no indukny..
Masalahnya bgmn cara sy melink'an hasil dr perhitungan kredit dr sheet 1 ke sheet 2, krn tiap no induk besaran pokokny berbeda ...

Jd ketika pd sheet 1 sy pilih no induk maka hasilnya dpt terinput lgsg pd sheet 2 sesuai dgn no induknya....
Terima kasih sebelumnya....

--- Mods ---
File lampiran yang berisi contoh data (bukan data kerja) akan membantu calon penanggap dalam bereksperimen mencari ide solusi.
Usahakan file lampiran tidak melebihi 250KB (sesuai peraturan milis).
------------

Fri Nov 23, 2012 11:25 pm (PST) . Posted by:

"Debora Christy" debora.christy@rocketmail.com

Saya lampirkan contoh datanya...

________________________________
Dari: Debora Christy <debora.christy@rocketmail.com>
Kepada: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Dikirim: Sabtu, 24 November 2012 13:46
Judul: [belajar-excel] Melink'an no induk dengan besaran nilai yang berbeda


 
Master, sy mw tny...

Sy lg buat excel utk koperasi kredit, sy mengalami kesulitan, jd sy buat 2 sheet...
Sheet 1 sy buat utk kalkulator kredit sdgkan sheet 2 sy buat utk data konsumen...
Kedua sheet ini sy link'kan berdsr no induk, jadi pd sheet 1 kode no induk sy buat dgn model validation list yg berasal dr link sheet 2, shg ketika pd sheet 1 sy pilih no induk maka secara otomatis nilai pokok kredit pd sheet 1 akan berubah sesuai dgn no indukny..
Masalahnya bgmn cara sy melink'an hasil dr perhitungan kredit dr sheet 1 ke sheet 2, krn tiap no induk besaran pokokny berbeda ...

Jd ketika pd sheet 1 sy pilih no induk maka hasilnya dpt terinput lgsg pd sheet 2 sesuai dgn no induknya....
Terima kasih sebelumnya....

--- Mods ---
File lampiran yang berisi contoh data (bukan data kerja) akan membantu calon penanggap dalam bereksperimen mencari ide solusi.
Usahakan file lampiran tidak melebihi 250KB (sesuai peraturan milis).
------------

GROUP FOOTER MESSAGE
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com

posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com

berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages

melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/

menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com

keluar dari membership milis (UnSubscribe):
kirim mail kosong ke  belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar