TOP

الجداول غير المحورية (Unpivot)

وصف

تعد الجداول المحورية (pivot table) أداة قوية في تحليل البيانات. ومع ذلك، في بعض الأحيان تحتاج إلى إلغاء محورية (unpivot) البيانات المحورية (المعروفة أيضًا باسم "تسوية" أو إلغاء محورية البيانات) لوضعها في تنسيق جدول عادي بحيث تكون جميع القيم المتشابهة في نفس العمود. يعد ذلك ضروريًا، على سبيل المثال، لإنشاء مخطط أو تقرير جديد أو معدل.

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


صياغة المشكلة

تخيل أننا بحاجة إلى تحويل بعض مجموعات البيانات من جدول محوري إلى جدول مسطح (Unpivot):

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

VBA رمز الإجراء UnPivotTable

افتح المحرر Visual Basic (الخدمة - الماكرو - المحرر Visual Basic)، أدخل الوحدة الجديدة (Inser - Module) وانسخ نص هذا الماكرو هناك:

Sub UnPivotTable()
  'moonexcel.com.ua  
  Dim InVal    As Variant
  Dim OutVal() As Variant
  Dim j, k, i  As Long
  Dim NewSheet
  
  i = 1
  InVal = Selection.Formula
  ReDim OutVal(1 To Selection.Count, 1 To 3)
  
  For j = 2 To UBound(InVal, 1)
    For k = 2 To UBound(InVal, 2)
      If InVal(j, k) <> "" Then
        OutVal(i, 1) = InVal(j, 1)
        OutVal(i, 2) = InVal(1, k)
        OutVal(i, 3) = InVal(j, k)
        i = i + 1
      End If
    Next k
  Next j
  
  Set NewSheet = Worksheets.Add
  NewSheet.Range("A1").Resize(UBound(OutVal, 1), 3).Value = OutVal
End Sub 

بعد ذلك، يمكنك إغلاق محرر VBA، والعودة إلى Excel، وتحديد الجدول المصدر (بالكامل، مع الرأس والعمود الأول مع البلدان) وتشغيل الماكرو الخاص بنا من خلال القائمة الخدمة - ماكرو - وحدات الماكرو (Tools - Macro - Macros) (ألت+F8) .

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

مقالات ذات صلة: