Excel'deki pivot tablolar, verilerin daha kolay anlaşılmasını ve kavranmasını sağlamada çok önemlidir. Pivot tablo, verileri anlamlı yapılara sıkıştırabilir ve sıkıştırabilir. MS Excel kullanıcıları, bunları veri endüstrisinde yaygın olarak benimsemiştir.
Pivot tablolarınızı Excel'de otomatikleştirebileceğinizi ve tek bir tıklamayla oluşturabileceğinizi biliyor muydunuz? MS Excel, VBA ile iyi bir şekilde bütünleşir ve tekrarlayan görevleri otomatikleştirmek için mükemmel bir araç haline gelmiştir.
MS Excel VBA'da bir pivot tabloyu bir makroyla nasıl otomatikleştirebileceğiniz aşağıda açıklanmıştır.
Alıştırma Veri Kümesi Kullanın
Bir kukla indirebilir ve kullanabilirsiniz Tableau'dan veri kümesi Bu kılavuzdaki VBA komut dosyasını takip etmek için. VBA kodu, birkaç temel ince ayar ile diğer herhangi bir veri kümesiyle çalışacaktır. Başlamadan önce, sahip olduğunuzdan emin olun. Excel çalışma kitabınızdaki etkinleştirilmiş makrolar.
Pivot tabloda kullanabileceğiniz birkaç temel sütun vardır. Tablonun nüanslarını ve nihai yapısını anlamak için şunları yapabilirsiniz:
manuel olarak temel bir pivot tablo oluşturun aşağıdaki unsurlarla:- Filtrele: Bölge
- Satırlar: Alt Kategori
- Sütunlar: Durum
- Değerler: Satış
Son pivot aşağıdaki gibi görünmelidir:
Ancak, manuel olarak hazırlamak yerine VBA'nın otomatik olarak yapmasına izin verebilirsiniz.
Excel'de Pivot Tabloları Otomatik Olarak Oluşturma
Pivot tablolarınızı VBA ile otomatikleştirmek için yeni bir Excel dosyası açın ve sayfaları aşağıdaki gibi yeniden adlandırın:
- İlk sayfa: Makro
- İkinci sayfa: Veri
bu Makro sayfa makro komut dosyasını içerirken, Veri sayfa verilerinizi içerir. Makro sayfasında, istediğiniz herhangi bir şekli ekleyebilir ve makroyu ona atayabilirsiniz. Şekle sağ tıklayın ve Makro Ata'ya tıklayın.
Aşağıdaki iletişim kutusunda, makronuzun adına tıklayın ve Tamam'a tıklayın. Bu adım, makroyu şekle atar.
1. Excel VBA Kodlama Düzenleyicisini açın
Basmak Alt + F11 kod düzenleyicisini açmak için Kod düzenleyiciye girdikten sonra, dosya adına sağ tıklayın ve ardından Sokmak Ve Modül. Çalıştırmadan önce bir modül içindeki tüm VBA kodunu yazacağınızı hatırlamanız önemlidir.
Kodun amacına uygun bir modül adı kullanmak iyi bir uygulamadır. Bu bir demo olduğu için modül adını şu şekilde tanımlayabilirsiniz:
alt pivot_demo()
Modül adı ile biter Aboneliği Sonlandır, bu bir modülün bitiş komutudur:
Son Alt
2. Değişkenleri Bildir
Modül içinde, komut dosyasında kullanacağınız bazı kullanıcı tanımlı değerleri depolamak için değişkenler bildirerek başlayın. kullanabilirsiniz loş aşağıdaki gibi değişkenleri bildirmek için ifade:
Sayfayı Soluklaştır Gibi Çalışma Sayfası, DSheet Gibi Çalışma kağıdı
PvtCache'i Karart Gibi Özet Önbellek
Dim PvtTable Gibi Pivot tablo
Sönük Pvt Aralığı Gibi Menzil
Last_Row'u karart Gibi Uzun, Last_Col Gibi Uzun
Kısık sht1 gibi varyant
Bu değişkenleri aşağıdakiler için kullanacaksınız:
- Sayfa: VBA'nın bir pivot oluşturacağı hedef sayfa.
- D Sayfası: Veri sayfası.
- PvtÖnbellek: Bir pivot önbelleği pivotu tutar.
- PvtTable: Pivot tablo nesnesi.
- Pvt Aralığı: Pivot için bir veri aralığı.
- Last_Row ve Last_Col: Veri sayfasındaki (DSheet) son doldurulan satır ve sütun.
- Sht1: Bu değişken bir değişkendir.
3. Uyarıları ve Mesajları Bastır
Gereksiz hatalar, uyarılar ve mesajlar VBA kodlarınızı yavaşlatır. Bu tür mesajları bastırarak süreci önemli ölçüde hızlandırabilirsiniz.
Aşağıdaki kodu kullanın:
Açık Hata Devam Et
İle Başvuru
.DisplayAlerts = YANLIŞ
.Ekran Güncelleme = YANLIŞ
Sonİle
Nerede:
- Hata Devam Ettiğinde Sonraki: Bu yan tümce, tüm çalışma zamanı hatalarını bastırır.
- Başvuru: Uygulama, MS Excel'i ifade eder.
- Ekran Uyarıları: DisplayAlerts özelliği, uyarıların gösterilip gösterilmeyeceğini tanımlar.
- Ekran Güncelleme: Bu özellik, değişikliklerin gerçek zamanlı olarak mı yoksa yalnızca kodun çalışması bittiğinde mi güncelleneceğini tanımlar.
Bu kod çalıştığında, aksi takdirde Excel'in göstereceği tüm uyarıları, uyarıları ve mesajları bastırır. Değerlerini olarak ayarlayarak DisplayAlerts ve ScreenUpdating parametrelerini kapatabilirsiniz. YANLIŞ.
Kodun sonuna doğru, değeri olarak ayarlayarak tekrar açabilirsiniz. Doğru.
4. Mevcut Pivot Sayfalarını Silin
Yeni bir pivot tablo oluşturmak için iki seçeneğiniz vardır. Öncelikle, mevcut pivot sayfasını silin ve pivotu saklamak için yeni bir sayfa oluşturmak üzere VBA'yı kullanın. Alternatif olarak, pivotu tutmak için mevcut bir çalışma sayfasını kullanabilirsiniz.
Bu kılavuzda, pivot tabloyu saklamak için yeni bir pivot sayfa oluşturalım.
bu her biri için döngü, çalışma kitabındaki her sayfada dolaşır ve sayfa adını sht1 değişken. Sayfa adını tutmak için herhangi bir değişken adını (sht1) kullanabilirsiniz. Döngü, geçerli çalışma kitabındaki her sayfada dolaşır ve belirli bir ada (Eksen).
Sayfa adı eşleştiğinde, sayfayı siler ve bir sonraki sayfaya geçer. Kod tüm sayfaları kontrol ettikten sonra döngüden çıkar ve kodun yeni bir sayfa ekleyen bir sonraki bölümüne geçer. Eksen.
Bunu şu şekilde yapabilirsiniz:
İçinHer birisht1İçindeaktif çalışma kitabı.Çalışma sayfaları
sht1.Name = ise "Eksen" Daha sonra
sht1.Silmek
SonEğer
sonraki sht1
Çalışma sayfaları. Eklemek. isim = "Eksen"
5. Veri Kaynağını ve Pivot Sayfalarını Tanımlayın
Pivot ve Veri sayfalarının referanslarını saklamak için değişkenler oluşturmak çok önemlidir. Bunlar, kodun geri kalanında başvurabileceğiniz kısayollar olarak çalışır.
PSheet'i Ayarla = Çalışma Sayfaları("Eksen")
DSheet'i Ayarla = Çalışma Sayfaları("Veri")
6. Son Kullanılan Satır ve Sütunu Tanımlayın
Kodun bu kısmı, verilerdeki son doldurulan satır ve sütunu boyutlandırdığı için dinamik olarak çalışır.
Last_Row = DSheet. Hücreler (Satırlar. Count, 1).End (xlUp).Row
Last_Col = DSheet. Hücreler (1, Sütunlar. Count).End (xlToLeft).Column
Ayarlamak PvtRange = DSheet. hücreler(1, 1).Yeniden boyutlandır (Last_Row, Last_Col)
Nerede:
- Last_Row: Son doldurulan satır numarasını saklamak için değişken, yani 9995
- Last_Col: Son doldurulan sütun numarasını saklamak için değişken, yani 21
- Pvt Aralığı: PvtRange, pivot için tüm veri aralığını referans alır
7. Pivot Önbellek ve Pivot Tablo Oluşturma
Bir pivot önbellek, pivot tabloyu tutar; bu nedenle, bir pivot tablo oluşturmadan önce bir önbellek oluşturmanız gerekir. Pivot sayfası içinde pivot önbelleği yapmak için VBA'nın sözdizimi referanslarını kullanmalısınız.
Pivot önbelleğe başvurarak, bir pivot tablo oluşturmanız gerekir. Pivot tablonun bir parçası olarak, pivot tablonun sayfasını, hücre referansını ve adını tanımlayabilirsiniz.
PvtCache = ActiveWorkbook'u ayarlayın. PivotÖnbellekler. Oluştur (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSeet. Hücreler (2, 2), TabloAdı:="MUODemoTable")
PvtTable'ı = PvtCache olarak ayarlayın. CreatePivotTable (TableDestination:=PSeet. Hücreler (1, 1), TabloAdı:="MUODemoTable")
Nerede:
- Aktif Çalışma Kitabı: Veri ve Pivot sayfasına sahip olduğunuz geçerli çalışma kitabı.
- PivotÖnbellekler. Yaratmak: Bir pivot önbellek oluşturmak için varsayılan sözdizimi.
- Kaynak tipi: Çalışma kitabının içinde verilere sahip olduğunuz için, onu şu şekilde tanımlayabilirsiniz: xlVeritabanı. Diğer bazı seçenekler şunları içerir: xlKonsolidasyon, xlHarici, veya xlPivotTable.
- KaynakVeri: Önceki pivot aralığına kaynak veri olarak başvurabilirsiniz.
- Özet Tablo Oluştur: Pivot tablo oluşturmak için varsayılan komut.
- TabloHedefi: Pivotu oluşturmak istediğiniz sayfa ve hücre referanslarını belirtmeniz gerekir.
- Tablo ismi: Bir pivot tablo adı belirtin.
- Özet Tablo Oluştur: Pivot önbellek içinde pivot tablo oluşturmak için varsayılan komut.
8. Satır, Sütun, Filtre ve Değer Ekleme
Pivot tablo hazır olduğundan, filtreler, satırlar, sütunlar ve toplama değerleri içindeki parametreleri eklemeye başlamanız gerekir. VBA'yı kullanabilirsiniz pivot alanları ayrıntıları bildirmeye başlamak için komut.
Filtre Değerleri Eklemek İçin:
ActiveSheet ile. Özet Tablolar("MUODemoTable").Özet Alanlar("Bölge")
.Oryantasyon = xlPageField
Sonİle
Satır Değerleri Eklemek İçin:
ActiveSheet ile. Özet Tablolar("MUODemoTable").Özet Alanlar("Alt Kategori")
.Oryantasyon = xlRowField
Sonİle
Sütun Değerleri Eklemek İçin:
ActiveSheet ile. Özet Tablolar("MUODemoTable").Özet Alanlar("Durum")
.Oryantasyon = xlColumnField
Sonİle
Toplama Değerleri Eklemek İçin:
ActiveSheet ile. Özet Tablolar("MUODemoTable").Özet Alanlar("Satış")
.Yönlendirme = xlDataField
.İşlev = xlToplam
Sonİle
Etkin sayfaya (Özet sayfa), ardından pivot tablo adına ve değişken adına başvurmanız gerektiğini unutmayın. Filtre(ler), satır(lar) ve sütun(lar) eklemeniz gerektiğinde, aşağıdakileri içeren çeşitli sözdizimi arasında geçiş yapabilirsiniz:
- xlPageField: Filtre eklemek için.
- xlRowField: Satır eklemek için.
- xlRowField: Sütun eklemek için.
Son olarak, kullanabilirsiniz xlDataField değer toplamalarını hesaplamak için komut. xlSum, xlAverage, xlCount, xlMax, xlMin ve xlProduct gibi diğer toplama işlevlerini kullanabilirsiniz.
9. Otomatik Pivotlar Oluşturmak için Excel VBA Kodunu Çalıştırma
Son olarak, tüm program hazır olduğunda, tuşuna basarak çalıştırabilirsiniz. F5 veya oynamak düğme. Çalışma kitabınızdaki Pivot sayfasına geri döndüğünüzde, incelemeniz için yeni bir pivot tablonun hazır olduğunu göreceksiniz.
Kod komutunun nasıl satır satır yürütüldüğünü adım adım görmek isterseniz, kod düzenleyiciye gidebilir ve tuşuna basabilirsiniz. F8 birkaç defa. Bu şekilde, her bir kod satırının nasıl çalıştığını ve VBA'nın pivotlarınızı nasıl otomatik olarak oluşturduğunu görebilirsiniz.
Pivot Tabloları Otomatik Olarak Kodlamayı Öğrenmek
Pivotlar yalnızca MS Excel ile sınırlı değildir. Python gibi programlama dilleri, yalnızca birkaç satır kodla optimize edilmiş pivotlar oluşturmanıza olanak tanır.
Veri optimizasyonu bundan daha kolay olamaz. Komutlarınızı Python'da etkili bir şekilde seçip seçebilir ve benzer bir Excel benzeri pivot yapısını kolaylıkla gerçekleştirebilirsiniz.