betul kata mas Kid
perlu dibuat tabel normal dulu
berikut ini 2 cara solusi dengan makroh
1.
makro membuat tabel normal dulu
berdasarkan tabel normal, dibuat tabel rekap
tabel normal yg terbentuk itu sangat berguna untuk proses lain lebih lainjut
misalnya Report dlm bentuk lain yg dibuat dengan Pivot Tabel
Private Sub Rebuild(Tbl As Range)
' siti Vi / 17 Aug 2010 / untuk XL-mania
' memperbaiki tabel sbg tabel database
' berdasarkan tabel database, dibuat rekap
' dgn asumsi tabel = pasti 5 kolom
'----------------------------------------
Dim dTbl As Range, Rekap As Range
Dim r As Long, n As Long, i As Long
Dim DafKdCab, DafNmCab
Dim KdCab As String, NmCab As String
'menentukan letak & dimensi tabel database & tabel rekap
Set dTbl = Tbl.Offset(0, Tbl.Columns.Count + 1)
Set Rekap = dTbl.Offset(0, dTbl.Columns.Count + 1)
'sementara baru dibuat judul kolomnya dulu
Tbl(-1, 1).Resize(1, Tbl.Columns.Count).Copy dTbl(0, 1)
Tbl(-1, 1).Resize(1, Tbl.Columns.Count).Copy Rekap(0, 1)
Rekap(1, 4).EntireColumn.Delete
'mengisi tabel database
For r = 1 To Tbl.Rows.Count
If Tbl(r, 1) = "" Then
KdCab = Tbl(r, 2)
NmCab = Tbl(r, 3)
ElseIf Not Tbl(r, 1) = "Sub Total" Then
n = n + 1
dTbl(n, 1) = Tbl(r, 1)
dTbl(n, 2) = KdCab
dTbl(n, 3) = NmCab
dTbl(n, 4) = Tbl(r, 4)
dTbl(n, 5) = Tbl(r, 5)
End If
Next r
' meng extract UniqValue Kode & NamaCabang (untuk kriteria rekap)
Set dTbl = dTbl.CurrentRegion.Offset(1, 0)
Set dTbl = dTbl.Resize(dTbl.Rows.Count - 1, dTbl.Columns.Count)
dTbl.Name = "dTabel"
DafKdCab = LOUV(dTbl.Resize(dTbl.Rows.Count, 1).Offset(0, 1))
DafNmCab = LOUV(dTbl.Resize(dTbl.Rows.Count, 1).Offset(0, 2))
' mengisi data tabel rekap
' Kolom totalPenjualan sengaja belum diisi
' ( isilah dengan formula berbasis fungsi SUMIF saja )
For i = 1 To UBound(DafKdCab)
Rekap(i, 1) = i
Rekap(i, 2) = DafKdCab(i)
Rekap(i, 3) = DafNmCab(i)
Rekap(i, 4) = "pakai SUMIF dong.."
Next i
' merapihkan tabel-tabel
dTbl.CurrentRegion.Columns.AutoFit
Rekap.CurrentRegion.Columns.AutoFit
End Sub
2.
makro langsung membuat tabal rekap
tidak perlu kalkulasi semacam SUMIF karena
data subtotal sudah tersedia
Private Sub Rekappp(Tbl As Range)
' siti Vi / 17 Aug 2010 / untuk XL-mania
' langsung membuat tabel rekap
'----------------------------------------
Dim Rekap As Range, r As Long, n As Long
Dim KdCab As String, NmCab As String
' --menentukan letak & dimensi tabel rekap
Set Rekap = Tbl.Offset(0, Tbl.Columns.Count + 2)
' --sementara baru dibuat judul kolomnya dulu
Tbl(-1, 1).Resize(1, Tbl.Columns.Count).Copy Rekap(0, 1)
Rekap(1, 4).EntireColumn.Delete
' --mengisi tabel Rekap
For r = 1 To Tbl.Rows.Count
If Not Tbl(r, 2) = "" Then
KdCab = Tbl(r, 2)
NmCab = Tbl(r, 3)
End If
If Tbl(r, 1) = "Sub Total" Then
n = n + 1
Rekap(n, 1) = n
Rekap(n, 2) = KdCab
Rekap(n, 3) = NmCab
Rekap(n, 4) = Tbl(r, 5)
End If
Next r
' --merapihkan tabel-tabel
Rekap.CurrentRegion.Columns.AutoFit
End Sub
> Dear Haddy Permadi,
> Membutuhkan kolom bantu untuk menormalisasi tabel.
> Setelah menjadi tabel normal, bisa di-summary dengan pivot table
>
> Regards.
> Kid.
>
> 2010/8/16 haddy permadi <aa_haddy@yahoo.com>
>> Dear rekans XL Mania
>> saya sedang belajar XL otodidak nih. Dan, senang sekali menemukan milist ini
>> saya ada masalah
>> saya harus merekap data yg sumbernya diambil dari web
>> saya copy data tersebut dan saya paste kan sebagai file XL yg hasil ilustrasinya
>> (file asli besar sekali) saya lampirkan
>> data sebenarnya sebagai berikut :
>> cabang dan sub cabang 550
>> produk 42
>> jadi jumalh baris nya biasanya 20.000-an baris output
>>
>> data itu ingin saya olah yg hasilnya saya sertakan di file yg sama dengan
>> ilustrasi data mentah
>>
>> mohon petunjuk para ML Mania expert yg lebih berpengalaman untuk membuat file
>> seperti yg saya inginkan
>>
>> terima kasih
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
Nenhum comentário:
Postar um comentário