Tabel pivot di Excel sangat penting dalam membuat data lebih mudah dipahami dan dipahami. Tabel pivot dapat memadatkan dan mengolah data menjadi struktur yang bermakna. Pengguna MS Excel telah mengadopsinya secara luas dalam industri data.

Tahukah Anda bahwa Anda dapat mengotomatiskan tabel pivot di Excel dan membuatnya dengan sekali klik? MS Excel terintegrasi dengan baik dengan VBA dan telah menjadi alat yang sangat baik untuk mengotomatisasi tugas yang berulang.

Inilah cara Anda mengotomatiskan tabel pivot dengan makro di MS Excel VBA.

Gunakan Kumpulan Data Latihan

Anda dapat mengunduh dan menggunakan dummy kumpulan data dari Tableau untuk mengikuti skrip VBA dalam panduan ini. Kode VBA akan berfungsi dengan kumpulan data lainnya, dengan beberapa penyesuaian dasar. Sebelum memulai, pastikan Anda memilikinya makro yang diaktifkan dalam buku kerja Excel Anda.

Ada beberapa kolom penting yang dapat Anda gunakan di dalam tabel pivot. Untuk memahami nuansa tabel dan struktur akhir, Anda bisa buat tabel pivot dasar secara manual dengan unsur-unsur berikut:

instagram viewer
  • Saring: Wilayah
  • Baris: Sub-Kategori
  • Kolom: Negara
  • Nilai: Penjualan

Pivot akhir akan terlihat seperti berikut:

Namun, Anda dapat membiarkan VBA melakukannya secara otomatis alih-alih menyiapkannya secara manual.

Cara Otomatis Membuat Tabel Pivot di Excel

Untuk mengotomatiskan tabel pivot Anda dengan VBA, buka file Excel baru, dan ganti nama sheet sebagai berikut:

  • Lembar pertama: Makro
  • Lembar kedua: Data

Itu Makro sheet berisi skrip makro, sedangkan Data sheet berisi data Anda. Pada lembar makro, Anda dapat menyisipkan bentuk pilihan Anda dan menetapkan makro ke dalamnya. Klik kanan pada bentuk, dan klik Tetapkan Makro.

Di kotak dialog berikut, klik nama makro Anda dan klik Ok. Langkah ini menetapkan makro ke bentuk.

1. Buka Editor Pengkodean VBA Excel

Tekan Alt + F11 untuk membuka editor kode. Setelah Anda berada di editor kode, klik kanan nama file, diikuti dengan Menyisipkan Dan Modul. Penting untuk diingat bahwa Anda akan menulis semua kode VBA di dalam modul sebelum menjalankannya.

Merupakan praktik yang baik untuk menggunakan nama modul yang sesuai dengan tujuan kode. Karena ini adalah demo, Anda dapat menentukan nama modul sebagai berikut:

sub pivot_demo()

Nama modul diakhiri dengan Akhir Sub, yang merupakan perintah akhir dari sebuah modul:

Akhir Sub

2. Deklarasikan Variabel

Di dalam modul, mulailah dengan mendeklarasikan variabel untuk menyimpan beberapa nilai yang ditentukan pengguna yang akan Anda gunakan dalam skrip. Anda dapat menggunakan Redup pernyataan untuk mendeklarasikan variabel, sebagai berikut:

Psheet redup Sebagai Lembar kerja, DSheet Sebagai Lembar kerja
Redupkan PvtCache Sebagai PivotCache
Dim PvtTable Sebagai Tabel pivot
Redupkan PvtRange Sebagai Jangkauan
Redupkan Last_Row Sebagai Panjang, Kol_Terakhir Sebagai Panjang
Redupkan sht1 sebagai Varian

Anda akan menggunakan variabel ini untuk hal berikut:

  • Lembar P: Lembar tujuan, tempat VBA akan membuat pivot.
  • Lembar D: Lembar data.
  • PvtCache: Cache pivot menyimpan pivot.
  • Tabel Pvt: Objek tabel pivot.
  • Jangkauan Jarak Jauh: Rentang data untuk pivot.
  • Last_Row dan Last_Col: Baris dan kolom yang terakhir diisi dalam lembar data (DSheet).
  • Sht1: Variabel ini adalah varian.

3. Menekan Peringatan dan Pesan

Kesalahan, peringatan, dan pesan yang tidak perlu memperlambat kode VBA Anda. Dengan menekan pesan semacam itu, Anda dapat mempercepat prosesnya secara signifikan.

Gunakan kode berikut:

Pada Kesalahan Lanjutkan Selanjutnya

Dengan Aplikasi
.DisplayAlerts = PALSU
.Pembaruan Layar = PALSU
AkhirDengan

Di mana:

  • Pada Kesalahan Lanjutkan Berikutnya: Klausul ini menekan kesalahan run-time.
  • Aplikasi: Aplikasi mengacu pada MS Excel.
  • Peringatan Tampilan: Properti DisplayAlerts menentukan apakah peringatan akan ditampilkan.
  • Pembaruan Layar: Properti ini menentukan apakah akan memperbarui perubahan secara real time atau hanya setelah kode selesai berjalan.

Saat kode ini dijalankan, kode ini akan menekan peringatan, peringatan, dan pesan apa pun yang akan ditampilkan Excel jika tidak. Anda dapat menonaktifkan parameter DisplayAlerts dan ScreenUpdating dengan menyetel nilainya ke PALSU.

Menjelang akhir kode, Anda dapat mengaktifkannya kembali dengan menyetel nilainya sebagai BENAR.

4. Hapus Semua Lembar Pivot yang Ada

Untuk membuat tabel pivot baru, Anda memiliki dua opsi. Pertama, hapus lembar pivot yang ada dan gunakan VBA untuk membuat lembar baru untuk menyimpan pivot. Alternatifnya, Anda bisa menggunakan lembar kerja yang ada untuk menahan pivot.

Dalam panduan ini, mari buat lembar pivot baru untuk menyimpan tabel pivot.

Itu untuk setiap siklus loop melalui setiap lembar dalam buku kerja dan menyimpan nama lembar dalam sht1 variabel. Anda dapat menggunakan nama variabel apa pun (sht1) untuk menyimpan nama sheet. Lingkaran menelusuri setiap lembar dalam buku kerja saat ini, mencari satu dengan nama tertentu (Poros).

Saat nama sheet cocok, sheet akan dihapus dan dipindahkan ke sheet berikutnya. Setelah kode memeriksa semua sheet, kode keluar dari loop dan berpindah ke bagian selanjutnya dari kode, yang menambahkan sheet baru, Poros.

Inilah cara Anda melakukannya:

UntukSetiapsht1Di dalamActiveWorkbook.Lembar kerja
Jika sht1.Nama = "Poros" Kemudian
sht1.Menghapus
AkhirJika
Sht1 berikutnya

Lembar kerja. Menambahkan. Nama = "Poros"

5. Tentukan Sumber Data dan Lembar Pivot

Penting untuk membuat variabel untuk menyimpan referensi Pivot dan Lembar data. Ini berfungsi sebagai pintasan, yang dapat Anda rujuk di seluruh kode lainnya.

Atur PSheet = Lembar Kerja("Poros")
Atur DSheet = Lembar Kerja("Data")

6. Identifikasi Baris dan Kolom yang Terakhir Digunakan

Bagian kode ini bekerja secara dinamis, karena mengukur baris dan kolom yang terakhir diisi dalam data.

Last_Row = DSheet. Sel (Baris. Hitung, 1).End (xlUp).Row
Last_Col = DSheet. Sel (1, Kolom. Hitung).Akhir (xlToLeft).Kolom
Mengatur PvtRange = DSheet. Sel(1, 1).Ubah ukuran (Last_Row, Last_Col)

Di mana:

  • Baris terakhir: Variabel untuk menyimpan nomor baris terakhir, yaitu 9995
  • Kol_Terakhir: Variabel untuk menyimpan nomor kolom terakhir, yaitu 21
  • Jangkauan Jarak Jauh: PvtRange mereferensikan seluruh rentang data untuk pivot

7. Buat Cache Pivot dan Tabel Pivot

Cache pivot menyimpan tabel pivot; oleh karena itu, Anda perlu membuat cache sebelum membuat tabel pivot. Anda harus menggunakan referensi sintaks VBA untuk membuat cache pivot di dalam lembar Pivot.

Dengan mereferensikan cache pivot, Anda perlu membuat tabel pivot. Sebagai bagian dari tabel pivot, Anda dapat menentukan sheet, referensi sel, dan nama tabel pivot.

Setel PvtCache = Buku Kerja Aktif. PivotCaches. Buat (SourceType:=xlDatabase, SourceData:=PvtRange).BuatPivotTable (TableDestination:=PSheet. Sel (2, 2), NamaTabel:="MUODemoTable")
Atur PvtTable = PvtCache. BuatPivotTable (TableDestination:=PSheet. Sel (1, 1), NamaTabel:="MUODemoTable")

Di mana:

  • Buku Kerja Aktif: Buku kerja saat ini tempat Anda memiliki lembar Data dan Pivot.
  • PivotCaches. Membuat: Sintaks default untuk membuat cache pivot.
  • Jenis Sumber: Karena Anda memiliki data di dalam buku kerja, Anda dapat mendefinisikannya sebagai xlDatabase. Beberapa opsi lain termasuk xlConsolidation, xlExternal, atau xlPivotTable.
  • Sumber data: Anda dapat mereferensikan rentang pivot sebelumnya sebagai data sumber.
  • BuatPivotTable: Perintah default untuk membuat tabel pivot.
  • TabelTujuan: Anda perlu menentukan referensi lembar dan sel tempat Anda ingin membuat pivot.
  • Nama Tabel: Tentukan nama tabel pivot.
  • BuatPivotTable: Perintah default untuk membuat tabel pivot di dalam cache pivot.

8. Sisipkan Baris, Kolom, Filter, dan Nilai

Karena tabel pivot sudah siap, Anda harus mulai menambahkan parameter di dalam filter, baris, kolom, dan nilai agregasi. Anda dapat menggunakan VBA pivotfields perintah untuk mulai mendeklarasikan detail.

Untuk Menambahkan Nilai Filter:

Dengan Lembar Aktif. Tabel pivot("MUODemoTable").Bidang Pivot("Wilayah")
.Orientasi = xlPageField
AkhirDengan

Untuk Menambahkan Nilai Baris:

Dengan Lembar Aktif. Tabel pivot("MUODemoTable").Bidang Pivot("Sub-Kategori")
.Orientasi = xlRowField
AkhirDengan

Untuk Menambahkan Nilai Kolom:

Dengan Lembar Aktif. Tabel pivot("MUODemoTable").Bidang Pivot("Negara")
.Orientasi = xlColumnField
AkhirDengan

Untuk Menambahkan Nilai Agregasi:

Dengan Lembar Aktif. Tabel pivot("MUODemoTable").Bidang Pivot("Penjualan")
.Orientasi = xlDataField
.Fungsi = xlSum
AkhirDengan

Penting untuk diperhatikan bahwa Anda harus mereferensikan lembar aktif (lembar Pivot), diikuti dengan nama tabel pivot dan nama variabel. Saat Anda perlu menambahkan filter, baris, dan kolom, Anda dapat beralih di antara berbagai sintaks, yang meliputi berikut ini:

  • xlPageField: Untuk menambahkan filter.
  • xlRowField: Untuk menambahkan baris.
  • xlRowField: Untuk menambahkan kolom.

Akhirnya, Anda dapat menggunakan xlDataField perintah untuk menghitung agregasi nilai. Anda dapat menggunakan fungsi agregat lainnya seperti xlSum, xlAverage, xlCount, xlMax, xlMin, dan xlProduct.

9. Menjalankan Kode VBA Excel untuk Membuat Pivot Otomatis

Terakhir, setelah seluruh program siap, Anda dapat menjalankannya dengan menekan F5 atau mengklik bermain tombol. Saat Anda kembali ke lembar Pivot di buku kerja Anda, Anda akan melihat bahwa tabel pivot baru siap untuk Anda tinjau.

Jika Anda ingin melihat eksekusi langkah demi langkah tentang bagaimana perintah kode dijalankan baris demi baris, Anda dapat menavigasi ke editor kode dan menekan F8 beberapa kali. Dengan cara ini, Anda dapat melihat cara kerja setiap baris kode dan cara VBA membuat pivot Anda secara otomatis.

Belajar Membuat Kode Tabel Pivot Secara Otomatis

Pivot tidak terbatas pada MS Excel saja. Bahasa pemrograman seperti Python memungkinkan Anda membuat pivot yang dioptimalkan hanya dengan beberapa baris kode.

Optimalisasi data tidak bisa lebih mudah dari ini. Anda dapat secara efektif mengambil dan memilih perintah Anda dengan Python dan menyelesaikan struktur pivot mirip Excel dengan mudah.