تعد الجداول المحورية في Excel محورية في تسهيل فهم البيانات وفهمها. يمكن للجدول المحوري أن يكثف البيانات ويجمعها في هياكل ذات معنى. اعتمدها مستخدمو MS Excel على نطاق واسع في صناعة البيانات.

هل تعلم أنه يمكنك أتمتة الجداول المحورية في Excel وإنشاؤها بنقرة واحدة؟ يتكامل MS Excel جيدًا مع VBA وأصبح أداة ممتازة لأتمتة المهام المتكررة.

إليك كيفية أتمتة جدول محوري باستخدام ماكرو في MS Excel VBA.

استخدم مجموعة بيانات الممارسة

يمكنك تحميل واستخدام دمية مجموعة البيانات من Tableau لاتباع برنامج VBA النصي في هذا الدليل. سيعمل رمز VBA مع أي مجموعة بيانات أخرى ، مع بعض التعديلات الأساسية. قبل البدء ، تأكد من أن لديك تمكين وحدات الماكرو داخل مصنف Excel الخاص بك.

هناك عدد قليل من الأعمدة الأساسية التي يمكنك استخدامها داخل الجدول المحوري. لفهم الفروق الدقيقة للجدول والهيكل النهائي ، يمكنك ذلك إنشاء جدول محوري أساسي يدويًا بالعناصر التالية:

  • منقي: منطقة
  • الصفوف: تصنيف فرعي
  • الأعمدة: ولاية
  • قيم: مبيعات

يجب أن يبدو المحور النهائي على النحو التالي:

ومع ذلك ، يمكنك السماح لـ VBA بالقيام بذلك تلقائيًا بدلاً من إعداده يدويًا.

instagram viewer

كيفية إنشاء جداول محورية في Excel تلقائيًا

لأتمتة الجداول المحورية باستخدام VBA ، افتح ملف Excel جديدًا ، وأعد تسمية الأوراق على النحو التالي:

  • الورقة الأولى: دقيق
  • الورقة الثانية: بيانات

ال دقيق تحتوي الورقة على البرنامج النصي للماكرو ، بينما يحتوي ملف بيانات تحتوي الورقة على بياناتك. في ورقة الماكرو ، يمكنك إدراج أي شكل من اختيارك وتعيين الماكرو إليه. انقر بزر الماوس الأيمن فوق الشكل ، وانقر فوق تعيين ماكرو.

في مربع الحوار التالي ، انقر فوق اسم الماكرو الخاص بك وانقر فوق موافق. تقوم هذه الخطوة بتعيين الماكرو للشكل.

1. افتح محرر ترميز Excel VBA

يضعط Alt + F11 لفتح محرر التعليمات البرمجية. بمجرد دخولك إلى محرر الكود ، انقر بزر الماوس الأيمن فوق اسم الملف ، متبوعًا بـ إدراج و وحدة. من المهم أن تتذكر أنك ستكتب كل تعليمات VBA البرمجية داخل وحدة نمطية قبل تنفيذها.

من الممارسات الجيدة استخدام اسم وحدة يتناسب مع الغرض من الكود. نظرًا لأن هذا عرض توضيحي ، يمكنك تحديد اسم الوحدة على النحو التالي:

pivot_demo فرعي ()

ينتهي اسم الوحدة بـ End Sub، وهو أمر النهاية للوحدة:

نهاية الفرعية

2. إعلان المتغيرات

داخل الوحدة ، ابدأ بإعلان المتغيرات لتخزين بعض القيم المعرفة من قبل المستخدم التي ستستخدمها في البرنامج النصي. يمكنك استخدام ال خافت بيان للإعلان عن المتغيرات ، على النحو التالي:

خافت PSheet مثل ورقة عمل ، DSheet مثل ورقة عمل
خافت PvtCache مثل PivotCache
خافت PvtTable مثل جدول محوري
خافت PvtRange مثل يتراوح
خافت Last_Row مثل طويل ، Last_Col مثل طويل
خافت sht1 مثل متغير

ستستخدم هذه المتغيرات لما يلي:

  • ورقة PS: الورقة الوجهة ، حيث سينشئ VBA محورًا.
  • DSheet: ورقة البيانات.
  • PvtCache: تحتوي ذاكرة التخزين المؤقت المحورية على المحور.
  • PvtTable: كائن الجدول المحوري.
  • PvtRange: نطاق بيانات للمحور.
  • Last_Row و Last_Col: آخر صف وعمود تم ملؤه داخل ورقة البيانات (DSheet).
  • Sht1: هذا المتغير هو متغير.

3. قم بإلغاء التحذيرات والرسائل

تؤدي الأخطاء والتحذيرات والرسائل غير الضرورية إلى إبطاء رموز VBA. من خلال قمع مثل هذه الرسائل ، يمكنك تسريع العملية إلى حد كبير.

استخدم الكود التالي:

على خطأ استئناف بعد ذلك

مع طلب
.DisplayAlerts = خطأ شنيع
.ScreenUpdating = خطأ شنيع
نهايةمع

أين:

  • خطأ في الصفحة، إذهب للتالي: يمنع هذا البند أية أخطاء في وقت التشغيل.
  • طلب: يشير التطبيق إلى MS Excel.
  • عرض التنبيهات: تحدد الخاصية DisplayAlerts ما إذا كان سيتم إظهار التنبيهات أم لا.
  • تحديث الشاشة: تحدد هذه الخاصية ما إذا كان سيتم تحديث التغييرات في الوقت الفعلي أو بمجرد انتهاء تشغيل الكود.

عند تشغيل هذا الرمز ، فإنه يمنع أي تنبيهات وتحذيرات ورسائل قد يعرضها Excel بخلاف ذلك. يمكنك إيقاف تشغيل معلمات DisplayAlerts و ScreenUpdating من خلال تعيين قيمها على خطأ شنيع.

قرب نهاية الكود ، يمكنك تشغيلها مرة أخرى عن طريق تعيين القيمة كـ حقيقي.

4. احذف أي أوراق محورية موجودة

لإنشاء جدول محوري جديد ، لديك خياران. أولاً ، احذف الورقة المحورية الحالية واستخدم VBA لإنشاء ورقة جديدة لتخزين المحور. بدلاً من ذلك ، يمكنك استخدام ورقة عمل موجودة للاحتفاظ بالمحور.

في هذا الدليل ، دعنا ننشئ ورقة محورية جديدة لتخزين الجدول المحوري.

ال لكل دورات حلقة عبر كل ورقة داخل المصنف وتخزين اسم الورقة داخل sht1 عامل. يمكنك استخدام أي اسم متغير (sht1) للاحتفاظ باسم الورقة. تتنقل الحلقة عبر كل ورقة داخل المصنف الحالي ، وتبحث عن ورقة تحمل الاسم المحدد (المحور).

عندما يتطابق اسم الورقة ، فإنه يحذف الورقة وينتقل إلى الورقة التالية. بمجرد أن يتحقق الكود من جميع الأوراق ، فإنه يخرج من الحلقة وينتقل إلى الجزء التالي من الكود ، والذي يضيف ورقة جديدة ، المحور.

إليك كيف يمكنك القيام بذلك:

لكلsht1فيActiveWorkbook.أوراق عمل
إذا كان sht1.Name = "المحور" ثم
sht1.يمسح
نهايةلو
التالي sht1

أوراق عمل. يضيف. الاسم = "المحور"

5. تحديد مصدر البيانات والأوراق المحورية

من الضروري إنشاء متغيرات لتخزين المراجع الخاصة بأوراق البيانات والمحور. تعمل هذه كاختصارات ، والتي يمكنك الرجوع إليها في بقية التعليمات البرمجية.

تعيين ورقة PS = أوراق العمل ("المحور")
تعيين DSheet = أوراق العمل ("بيانات")

6. حدد آخر صف وعمود مستخدمين

يعمل هذا الجزء من الكود ديناميكيًا ، حيث إنه يحجم آخر صف وعمود مملوءين داخل البيانات.

Last_Row = DSheet. الخلايا (صفوف. العد ، 1) ، النهاية (xlUp) ، الصف
Last_Col = DSheet. خلايا (1 ، أعمدة. العد). End (xlToLeft)
تعيين PvtRange = DSheet. خلايا (1, 1) .Resize (Last_Row، Last_Col).

أين:

  • الصف الأخير: متغير لتخزين آخر رقم صف مأهول ، أي 9995
  • Last_Col: متغير لتخزين آخر رقم عمود مأهول ، أي 21
  • PvtRange: يشير PvtRange إلى نطاق البيانات بالكامل للمحور

7. إنشاء Pivot Cache وجدول Pivot

تحتوي ذاكرة التخزين المؤقت المحورية على الجدول المحوري ؛ لذلك ، تحتاج إلى إنشاء ذاكرة تخزين مؤقت قبل إنشاء جدول محوري. يجب عليك استخدام مراجع بناء الجملة الخاصة بـ VBA لإنشاء ذاكرة التخزين المؤقت المحورية داخل الورقة المحورية.

بالرجوع إلى ذاكرة التخزين المؤقت المحورية ، تحتاج إلى إنشاء جدول محوري. كجزء من الجدول المحوري ، يمكنك تحديد الورقة ومرجع الخلية واسم الجدول المحوري.

تعيين PvtCache = ActiveWorkbook. PivotCaches. إنشاء (نوع المصدر: = xlDatabase ، SourceData: = PvtRange) .CreatePivotTable (TableDestination: = PSheet. الخلايا (2 ، 2) ، TableName: ="MUODemoTable")
تعيين PvtTable = PvtCache. CreatePivotTable (TableDestination: = PSheet. الخلايا (1 ، 1) ، اسم الجدول: ="MUODemoTable")

أين:

  • ActiveWorkbook: المصنف الحالي حيث لديك ورقة البيانات والمحورية.
  • PivotCaches. يخلق: بناء الجملة الافتراضي لإنشاء ذاكرة تخزين مؤقت محورية.
  • نوع المصدر: نظرًا لأن لديك البيانات داخل المصنف ، يمكنك تعريفها على أنها xl قاعدة بيانات. تتضمن بعض الخيارات الأخرى xl توحيد, xl خارجي، أو xlPivotTable.
  • مصدر معلومات: يمكنك الإشارة إلى النطاق المحوري السابق على أنه بيانات المصدر.
  • CreatePivotTable: أمر افتراضي لإنشاء الجدول المحوري.
  • الجدول تحتاج إلى تحديد مراجع الورقة والخلية حيث تريد إنشاء المحور.
  • اسم الطاولة: حدد اسم جدول محوري.
  • CreatePivotTable: أمر افتراضي لإنشاء جدول محوري داخل ذاكرة التخزين المؤقت المحورية.

8. قم بإدراج صفوف وأعمدة وعوامل تصفية وقيم

نظرًا لأن الجدول المحوري جاهز ، فأنت بحاجة إلى البدء في إضافة المعلمات داخل عوامل التصفية والصفوف والأعمدة وقيم التجميع. يمكنك استخدام VBA pivotfields الأمر لبدء إعلان التفاصيل.

لإضافة قيم التصفية:

مع ActiveSheet. الجداول المحورية("MUODemoTable") .PivotFields ("منطقة")
. الاتجاه = xlPageField
نهايةمع

لإضافة قيم الصف:

مع ActiveSheet. الجداول المحورية("MUODemoTable") .PivotFields ("تصنيف فرعي")
. الاتجاه = xlRowField
نهايةمع

لإضافة قيم العمود:

مع ActiveSheet. الجداول المحورية("MUODemoTable") .PivotFields ("ولاية")
. الاتجاه = xlColumnField
نهايةمع

لإضافة قيم التجميع:

مع ActiveSheet. الجداول المحورية("MUODemoTable") .PivotFields ("مبيعات")
الاتجاه = xlDataField
.وظيفة = xlSum
نهايةمع

من الضروري ملاحظة أنه يجب عليك الرجوع إلى ورقة النشاط (الورقة المحورية) ، متبوعة باسم الجدول المحوري واسم المتغير. عندما تحتاج إلى إضافة عامل التصفية (الفلاتر) والصف (الصفوف) والأعمدة (الأعمدة) ، يمكنك التبديل بين الصيغ المختلفة ، والتي تتضمن ما يلي:

  • xlPageField: لإضافة المرشحات.
  • xlRowField: لإضافة صفوف.
  • xlRowField: لإضافة أعمدة.

أخيرًا ، يمكنك استخدام ملف xlDataField أمر لحساب تجميعات القيمة. يمكنك استخدام وظائف تجميعية أخرى مثل xlSum و xlAverage و xlCount و xlMax و xlMin و xlProduct.

9. تشغيل كود Excel VBA لإنشاء محاور تلقائية

أخيرًا ، عندما يصبح البرنامج بأكمله جاهزًا ، يمكنك تشغيله بالضغط F5 أو النقر فوق يلعب زر. عندما تعود إلى الورقة المحورية في المصنف الخاص بك ، سترى أن الجدول المحوري الجديد جاهز للمراجعة.

إذا كنت تريد أن ترى تنفيذًا خطوة بخطوة لكيفية تشغيل أمر الكود سطراً بسطر ، فيمكنك الانتقال إلى محرر الكود والضغط على F8 عدة مرات. بهذه الطريقة ، يمكنك معرفة كيفية عمل كل سطر من التعليمات البرمجية وكيف يقوم VBA بإنشاء محاور تلقائيًا.

تعلم كيفية برمجة الجداول المحورية تلقائيًا

لا تقتصر النقاط المحورية على MS Excel فقط. تتيح لك لغات البرمجة مثل Python إنشاء محاور محسنة ببضعة سطور من التعليمات البرمجية.

لا يمكن أن يكون تحسين البيانات أسهل من هذا. يمكنك انتقاء واختيار أوامرك بفعالية في Python وإنجاز بنية محورية مشابهة لـ Excel بسهولة.