# جدول محوري

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

## التاريخ

في كتابهم تحليل بيانات الجدول المحوري أشار بيل جيلين ومايكل ألكسندر إلى بيتو سالاس باعتباره "أب الجداول المحورية". أثناء عمله على فكرة لبرنامج جديد أصبح في النهاية Lotus Improv، لاحظ سالاس أن جداول البيانات تحتوي على أنماط من البيانات. أداة يمكن أن تساعد المستخدم في التعرف على هذه الأنماط ستساعد في بناء نماذج بيانات متقدمة بسرعة. مع برنامج إيمبروف، يمكن للمستخدمين تعريف وتخزين مجموعات من الفئات، ثم تغيير العروض من خلال سحب أسماء الفئات باستخدام الماوس. وكانت هذه الوظيفة الأساسية هي التي وضعت النموذج للجداول المحورية.
أصدرت لوتس سوفتوير $^{[لغاتأخرى]}$‏ برنامج إيمبروف في عام 1991 على منصة نكست. وبعد بضعة أشهر من إصدار إيمبروف، قامت Brio Technology بنشر تنفيذ مستقل لنظام ماكintosh، أطلقت عليه اسم DataPivot (مع التقنية التي تم الحصول على براءة اختراع لها في عام 1999). قامت بورلاند بشراء تقنية DataPivot في عام 1992 ودمجتها في تطبيق جداول البيانات الخاص بها كواترو برو.
في عام 1993، ظهر إصدار إيمبروف لمنصة مايكروسوفت ويندوز. وفي أوائل عام 1994، قدمت مايكروسوفت إكسل 5 ميزة جديدة تُسمى "الجدول المحوري" إلى السوق. ثم قامت مايكروسوفت بتحسين هذه الميزة في الإصدارات اللاحقة من إكسل:
* إكسل 97 تضمن معالج الجداول المحورية الجديد والمحسن، إضافة القدرة على إنشاء حقول محسوبة، وكائنات ذاكرة تخزين مؤقت للجداول المحورية التي تسمح للمطورين بكتابة ماكروهات فيجوال بيسك للتطبيقات (VBA) لإنشاء وتعديل الجداول المحورية.
* إكسل 2000 قدم "المخططات المحورية" لتمثيل بيانات الجداول المحورية بيانيًا.
في عام 2007، جعلت شركة أوراكل مشغلات PIVOT وUNPIVOT متاحة في قاعدة بيانات أوراكل 11g.

## الآلية

بالنسبة لإدخال البيانات وتخزينها بشكل تقليدي، تظهر البيانات عادة في جداول "مسطحة"، مما يعني أنها تتكون من أعمدة وصفوف فقط، كما في الجزء التالي من جدول بيانات عينة يعرض بيانات عن أنواع القمصان:
| | A | B | C | D | E | F | G |
| 1 | المنطقة | الجنس | النوع | تاريخ الشحن | الوحدات | السعر | التكلفة |
| 2 | الشرق | صبي | تي شيرت | 2005-01-31 | 12 | 11.04 | 10.42 |
| 3 | الشرق | صبي | غولف | 2005-01-31 | 12 | 13.00 | 12.60 |
| 4 | الشرق | صبي | فاينسي | 2005-01-31 | 12 | 11.96 | 11.74 |
| 5 | الشرق | فتاة | تي شيرت | 2005-01-31 | 10 | 11.27 | 10.56 |
| 6 | الشرق | فتاة | غولف | 2005-01-31 | 10 | 12.12 | 11.95 |
| 7 | الشرق | فتاة | فاينسي | 2005-01-31 | 10 | 13.74 | 13.33 |
| 8 | الغرب | صبي | تي شيرت | 2005-01-31 | 11 | 11.44 | 10.94 |
| 9 | الغرب | صبي | غولف | 2005-01-31 | 11 | 12.63 | 11.73 |
| 10 | الغرب | صبي | فاينسي | 2005-01-31 | 11 | 12.06 | 11.51 |
| 11 | الغرب | فتاة | تي شيرت | 2005-01-31 | 15 | 13.42 | 13.29 |
| 12 | الغرب | فتاة | غولف | 2005-01-31 | 15 | 11.48 | 10.67 |
على الرغم من أن الجداول مثل هذه يمكن أن تحتوي على العديد من العناصر البيانية، فإنه قد يكون من الصعب الحصول على ملخصات مفيدة منها. تساعد الجداول المحورية في تلخيص البيانات بسرعة وإبراز المعلومات المطلوبة. يمكن استخدام الجداول المحورية في نطاق واسع جدًا من الحالات وفقًا للموقف. السؤال الأول الذي يجب طرحه هو: "ما الذي أبحث عنه؟" في المثال هنا، دعنا نسأل: "كم عدد الـوحدات التي قمنا ببيعها في كل منطقة لكل تاريخ شحن؟":
| مجموع الوحدات | تاريخ الشحن ▼ |
| المنطقة ▼ | 2005-01-31 | 2005-02-28 | 2005-03-31 | 2005-04-30 | 2005-05-31 | 2005-06-30 |
| الشرق | 66 | 80 | 102 | 116 | 127 | 125 |
| الشمال | 96 | 117 | 138 | 151 | 154 | 156 |
| الجنوب | 123 | 141 | 157 | 178 | 191 | 202 |
| الغرب | 78 | 97 | 117 | 136 | 150 | 157 |
| (فراغ) | | | | | | |
| المجموع الكلي | 363 | 435 | 514 | 581 | 622 | 640 |
عادةً ما تتألف الجداول المحورية من حقول الصفوف والأعمدة والبيانات (أو الحقائق). في هذا المثال، يمثل العمود تاريخ الشحن، ويمثل الصف المنطقة، والبيانات التي نرغب في عرضها هي مجموع الوحدات. توفر هذه الحقول إمكانية تنفيذ عدة أنواع من الدوال التجميعية، مثل: الجمع، المتوسط، الانحراف المعياري، العدّ، وغيرها. في هذا السياق، يتم عرض العدد الإجمالي للوحدات المشحونة باستخدام تجميع الجمع.

## التنفيذ

باستخدام المثال أعلاه، يقوم البرنامج بالعثور على جميع القيم الفريدة لـالمنطقة. في هذه الحالة، القيم هي: الشمال، الجنوب، الشرق، الغرب. وبالمثل، سيتم العثور على جميع القيم الفريدة لـتاريخ الشحن. بناءً على نوع التجميع، وهو الجمع في هذه الحالة، سيقوم البرنامج بتلخيص البيانات، أي كميات الوحدات، وعرضها في مخطط متعدد الأبعاد. في المثال أعلاه، تُظهر القيمة الأولى "66"، والتي تم الحصول عليها من خلال تحديد جميع السجلات التي كانت فيها المنطقة هي الشرق وتاريخ الشحن هو 2005-01-31، ثم جمع الوحدات في تلك المجموعة من السجلات (أي الخلايا E2 إلى E7) للحصول على النتيجة النهائية.
لا تُنشأ الجداول المحورية تلقائيًا. على سبيل المثال، في برنامج Microsoft Excel، يجب أولاً تحديد جميع البيانات في الجدول الأصلي، ثم الذهاب إلى علامة التبويب "إدراج" واختيار "Pivot Table" (أو "Pivot Chart"). بعد ذلك، يتم منح المستخدم الخيار إما بإدراج الجدول المحوري في ورقة موجودة أو إنشاء ورقة جديدة لاحتوائه. يتم تقديم قائمة حقول الجدول المحوري للمستخدم، والتي تتضمن جميع عناوين الأعمدة الموجودة في البيانات. على سبيل المثال، إذا كان الجدول يمثل بيانات مبيعات شركة، فقد يتضمن تاريخ البيع، اسم مندوب المبيعات، العنصر المباع، لون العنصر، عدد الوحدات المباعة، سعر الوحدة الواحدة، والسعر الإجمالي. هذا يجعل البيانات أكثر سهولة في الوصول والاستخدام.
| تاريخ البيع | مندوب المبيعات | العنصر المباع | لون العنصر | عدد الوحدات المباعة | سعر الوحدة | السعر الإجمالي |
| 2013-10-01 | جونز | دفتر ملاحظات | أسود | 8 | 25000 | 200000 |
| 2013-10-02 | برينس | حاسوب محمول | أحمر | 4 | 35000 | 140000 |
| 2013-10-03 | جورج | فأرة | أحمر | 6 | 850 | 5100 |
| 2013-10-04 | لاري | دفتر ملاحظات | أبيض | 10 | 27000 | 270000 |
| 2013-10-05 | جونز | فأرة | أسود | 4 | 700 | 2800 |
ستكون الحقول التي سيتم إنشاؤها مرئية في الجانب الأيمن من ورقة العمل. بشكل افتراضي، يظهر تصميم تخطيط الجدول المحوري أسفل هذه القائمة.
تعتبر حقول الجدول المحوري اللبنات الأساسية للجداول المحورية. يمكن سحب كل حقل من القائمة إلى هذا التخطيط، الذي يتضمن أربع خيارات:
* الفلاتر (Filters)
* الأعمدة (Columns)
* الصفوف (Rows)
* القيم (Values)
تتعلق بعض استخدامات الجداول المحورية بتحليل الاستبيانات التي تتضمن استجابات اختيارية، إلا أن بعض تطبيقات الجداول المحورية لا تسمح بهذه الاستخدامات. فعلى سبيل المثال، لا يمكن لتطبيق LibreOffice Calc منذ عام 2012 معالجة الخلايا الفارغة.

### الفلاتر

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

### الأعمدة

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

### الصفوف

تُستخدم تسميات الصفوف لتطبيق فلتر على صف أو أكثر ليظهر في الجدول المحوري. على سبيل المثال، إذا تم سحب حقل "مندوب المبيعات" إلى هذه المنطقة، فسيتم إنشاء جدول آخر يحتوي على قيم العمود "مندوب المبيعات"، أي، سيكون هناك عدد من الصفوف يساوي عدد "مندوبي المبيعات". كما سيكون هناك صف إضافي بعنوان "الإجمالي الكلي". في المثال أعلاه، ستُنتج هذه التعليمات خمسة صفوف في الجدول — صف لكل مندوب مبيعات، وصف للإجمالي الكلي. سيكون هناك فلتر فوق البيانات — تسميات الصفوف — يمكن من خلاله تحديد أو إلغاء تحديد مندوب مبيعات معين في الجدول المحوري.
لن يحتوي هذا الجدول على أي قيم رقمية إذا لم يتم اختيار أي حقل رقمي، ولكن بمجرد اختيار الحقل، سيتم تحديث القيم تلقائيًا في صف "الإجمالي الكلي".

### القيم

عادةً ما تأخذ هذه المنطقة حقلاً يحتوي على قيم رقمية يمكن استخدامها لإجراء أنواع مختلفة من الحسابات. ومع ذلك، فإن استخدام القيم النصية لن يكون خاطئًا أيضًا؛ حيث إنه بدلاً من عرض المجموع، سيعرض العدد. لذلك، في المثال أعلاه، إذا تم سحب حقل "الوحدات المباعة" إلى هذه المنطقة مع تسمية الصف "مندوب المبيعات"، فستقوم التعليمات بإضافة عمود جديد بعنوان "مجموع الوحدات المباعة"، والذي يحتوي على القيم المرتبطة بكل مندوب مبيعات.
| تسميات الصفوف | مجموع الوحدات المباعة |
| جونز | 12 |
| برنس | 4 |
| جورج | 6 |
| لاري | 10 |
| الإجمالي الكلي | 32 |

## دعم التطبيقات

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

### جداول البيانات

* تدعم مايكروسوفت إكسل الجداول المحورية، والتي يمكن تصورها عبر الرسوم البيانية المحورية.
* تدعم Apache POI إنشاء الجداول المحورية.
* يدعم كل من ليبر أوفيس Calc وOpenoffice Calc الجداول المحورية. قبل الإصدار 3.4، كانت تُعرف هذه الميزة باسم "DataPilot".
* يدعم كاليغرا شيت الجداول المحورية.
* يدعم جداول بيانات جوجل الجداول المحورية بشكل أصلي.
* أضاف Numbers، الخاص بشركة أبل، دعم الجداول المحورية في الإصدار 11.2.

### دعم قواعد البيانات

* يدعم بوستجري إس كيو إل، وهو نظام إدارة قواعد بيانات كائنية-علاقية، إنشاء الجداول المحورية باستخدام الوحدة "tablefunc".
* يدعم ماريا دي بي، وهو فرع من MySQL، الجداول المحورية باستخدام محرك تخزين CONNECT.
* يدعم مايكروسوفت أكسس الاستعلامات المحورية تحت اسم "الاستعلام الجدولي".
* يدعم مايكروسوفت إس كيو إل سيرفر الجداول المحورية ابتداءً من إصدار SQL Server 2016 باستخدام الكلمات المفتاحية FROM...PIVOT.
* يدعم قاعدة بيانات أوراكل العملية المحورية PIVOT.
* بعض قواعد البيانات الشهيرة التي لا تدعم الجداول المحورية مباشرةً، مثل إس كيو لايت، يمكنها عادةً محاكاة وظيفة الجداول المحورية باستخدام الدوال المدمجة، أو SQL الديناميكي، أو الاستعلامات الفرعية. المشكلة في مثل هذه الحالات هي أن عدد الأعمدة الناتجة يجب أن يكون معروفًا عند بدء تنفيذ الاستعلام؛ ولكن في حالة الجداول المحورية، لا يكون هذا ممكنًا لأن عدد الأعمدة يعتمد على البيانات نفسها. لذلك، يجب ترميز الأسماء يدويًا أو إنشاء الاستعلام ديناميكيًا قبل كل استخدام استنادًا إلى البيانات.

### التطبيقات عبر الويب

* يدعم إطار العمل ZK، المخصص لتطبيقات Ajax، تضمين الجداول المحورية في التطبيقات عبر الإنترنت.

### لغات البرمجة والمكتبات

تتضمن لغات البرمجة والمكتبات المخصصة للتعامل مع البيانات الجدولية وظائف تسهل إنشاء الجداول المحورية ومعالجتها.
* تحتوي أداة تحليل البيانات في لغة بايثون المعروفة باسم pandas على وظيفة pivot_table وطريقة xs المفيدة للحصول على أقسام معينة من الجداول المحورية.
* توفر لغة البرمجة آر حزمة Tidyverse الشاملة، والتي تحتوي على مجموعة من الأدوات التي تقدم وظائف الجداول المحورية، بالإضافة إلى حزمة pivottabler.

### المعالجة التحليلية عبر الإنترنت

تتضمن الجداول المحورية في برنامج Excel ميزة الاستعلام المباشر من خادم المعالجة التحليلية عبر الإنترنت (OLAP) لاسترداد البيانات بدلاً من الحصول عليها من جدول بيانات Excel. في هذا التكوين، يكون الجدول المحوري بمثابة عميل بسيط لخادم OLAP. لا يقتصر PivotTable في Excel على الاتصال بخدمة تحليل البيانات الخاصة بـ Microsoft فقط، بل يدعم أيضًا الاتصال بأي خادم متوافق مع معيار XMLA الخاص بـ OLAP.