يُمثّل الجبر الخطي العمود الفقري للحوسبة الرياضية الحديثة، حيث تتجاوز تطبيقاته حدود المعادلات النظرية المجردة لتشكل الأساس الخوارزمي لتحليل البيانات الضخمة، ونماذج التعلم الآلي، والمحاكاة الاقتصادية، والهندسة المتقدمة. وفي إطار هذا العلم، تبرز عملية ضرب المصفوفات كواحدة من أقوى العمليات التحويلية وأكثرها استخداماً في معالجة المتغيرات المتعددة وتكثيف العلاقات الرياضية المعقدة في صيغ تركيبية رشيقة وقابلة للتنفيذ الآلي السريع.
ومع التحول الرقمي المتسارع نحو الحوسبة السحابية وبيئات العمل التشاركية، تطورت جداول بيانات جوجل (Google Sheets) من مجرد أداة لتنظيم الجداول المالية البسيطة إلى منصة متكاملة ومرنة للحوسبة الرقمية والتحليل الإحصائي المتقدم. وتعتبر دالة ضرب المصفوفات MMULT المحرك البرمجي الأساسي الذي يتيح للمحللين والباحثين ومهندسي البيانات إجراء عمليات ضرب المصفوفات الفائقة مباشرة داخل متصفح الويب، دون الحاجة إلى كتابة خوارزميات معقدة أو استدعاء مكتبات برمجية خارجية، مع الاستفادة الكاملة من بنية السحابة التعاونية والتحديث اللحظي للبيانات.
يقدم هذا الدليل المرجعي الشامل تفكيكاً تقنياً وأكاديمياً متعمقاً لآلية ضرب المصفوفات في جداول بيانات جوجل. سنستعرض فيه الأسس النظرية للجبر الخطي التي تحكم هذه العملية، والتركيب النحوي الصارم للدوال المتخصصة، والخطوات الإجرائية الدقيقة لتنفيذ العمليات على مصفوفات بأبعاد ورتب مختلفة، وصولاً إلى حل الأخطاء المعقدة، وبناء النماذج الإحصائية والشرطية المتقدمة. يُعد هذا المرجع دليلاً شاملاً مصمماً للارتقاء بمهارات الباحثين والمحللين والمستخدمين المتقدمين نحو الاحتراف التام في معالجة النظم الرياضية المعقدة.
1. الأسس النظرية للجبر الخطي وأهمية ضرب المصفوفات في جداول بيانات جوجل
1.1 المفهوم الرياضي لعملية ضرب المصفوفات وتطبيقاتها العلمية
تُعرّف عملية ضرب المصفوفات في الجبر الخطي بأنها عملية ثنائية تُركّب من خلالها مصفوفتان لتوليد مصفوفة ثالثة تمثل التأثير التراكمي للتحويلات الخطية المتتالية. ولا تعتمد هذه العملية على الضرب البسيط للعناصر المتقابلة كما قد يتبادر إلى الذهن عند التعامل مع جداول البيانات، بل تقوم في جوهرها على حساب “الجداء النقطي” (Dot Product) أو الضرب القياسي بين متجهات الصفوف في المصفوفة الأولى ومتجهات الأعمدة في المصفوفة الثانية. ويُعبّر عن كل عنصر ناتج في الموضع (i, j) بالمجموع التراكمي لحواصل ضرب عناصر الصف i من المصفوفة الأولى في العناصر المقابلة لها في العمود j من المصفوفة الثانية، وفق العلاقة الرياضية الدقيقة: C_ij = ∑ (A_ik × B_kj) عبر جميع قيم k المتاحة.
من الضروري هنا التمييز الحاسم بين الضرب المصفوفي والضرب العنصري التناظري (Element-wise Multiplication أو ما يُعرف بجداء هادامارد Hadamard Product). في الحوسبة الرقمية، يقتصر جداء هادامارد على ضرب العناصر الواقعة في نفس المواقع الإحداثية داخل مصفوفتين متطابقتي الأبعاد تماماً، وهو ما يماثل استخدام علامة الضرب التقليدية النجمة (*) بين نطاقين في جداول البيانات. أما ضرب المصفوفات الجبري، فيغير البنية المكانية للأبعاد، ويدمج الأوزان والمؤشرات الرياضية المتعددة، مما يمنحه ثقلاً خاصاً في تمثيل البيانات متعددة الأبعاد داخل بيئات الحوسبة الرقمية المرنة، حيث تتحول صفوف البيانات إلى متجهات ذات دلالات هندسية تصف نقاطاً أو قوى أو احتمالات في فضاءات متعددة الأبعاد.
تتعدد التطبيقات العلمية والإحصائية المعتمدة على جبر المصفوفات، بدءاً من حل نظم المعادلات الخطية المتزامنة، وحساب سلاسل ماركوف في الاحتمالات، مروراً بتحليل التباين وتحديد المسارات في الاقتصاد القياسي، وصولاً إلى تدريب خوارزميات الشبكات العصبية الاصطناعية التي تعتمد كل طبقة من طبقاتها على ضرب مصفوفات الأوزان في متجهات المدخلات ثم إضافة متجه الانحياز. إن فهم هذا البعد النظري يُعد متطلباً سابقاً لا غنى عنه قبل صياغة النماذج الرياضية داخل جداول البيانات، لتجنب المعالجات الخاطئة وفهم الدلالة الإحصائية الدقيقة لكل رقم يظهر في مصفوفة النتائج.
1.2 دور جداول بيانات جوجل كأداة حوسبة سحابية لمعالجة البيانات الرياضية
شهدت المعالجة المصفوفية السحابية نقلة نوعية مع تطور محركات الحساب التابعة لجداول بيانات جوجل، حيث تحولت المنصة من وسيط لتدوين الحسابات اليدوية إلى بيئة حوسبة موزعة قادرة على تنفيذ العمليات الجبرية المعقدة في أجزاء من الثانية. تكمن القوة الجوهرية لهذه المنصة في إتاحة الحساب الفوري التشاركي؛ إذ يمكن لفرق العمل الأكاديمية أو المالية تحليل مجموعات بيانات ضخمة والعمل على نموذج مصفوفي موحد في نفس اللحظة، مع الحفاظ على تزامن كامل للنتائج وتدقيق تلقائي لكافة التعديلات عبر سجل النسخ التاريخية المتطور.
عند مقارنة بيئة العمل السحابية بالبرمجيات المكتبية التقليدية، نجد أن جداول جوجل تعتمد على معايير صارمة في دقة الحساب الهندسي وفق معايير النقطة العائمة (IEEE 754 Floating-Point Standard)، مما يضمن تقليص أخطاء التقريب التراكمية في الحسابات التكرارية المعقدة. وعلاوة على الدقة، توفر الجداول إمكانية فريدة للربط الديناميكي؛ حيث يمكن تغذية مصفوفات المدخلات مباشرة من استمارات الويب، أو قواعد البيانات الخارجية عبر واجهات برمجة التطبيقات (APIs)، لتمر هذه البيانات تلقائياً عبر معادلات ضرب المصفوفات، ثم تنعكس النتائج فوراً على لوحات التحكم التفاعلية والرسوم البيانية المتقدمة، دون أي تدخل يدوي متكرر.
هذا التكامل السلس بين الدوال الرياضية المتقدمة ونماذج البيانات الحية يمنح جداول بيانات جوجل ميزة تنافسية كبرى للمؤسسات التي تسعى إلى بناء أدوات اتخاذ قرار خفيفة الوزن وفعالة. فلم يعد من الضروري تصدير البيانات إلى بيئات برمجية معزولة مثل Python أو MATLAB لإجراء عملية تحويل خطي سريعة أو حساب مصفوفة أوزان وترجيحات؛ بل يمكن دمج تلك الخوارزميات مباشرة داخل ورقة العمل، مما يسهل مشاركة النتائج مع متخذي القرار غير التقنيين بأسلوب مرئي مفهوم وموثوق.
1.3 شروط التوافق البعدي بين المصفوفات المتفاعلة
تخضع عملية ضرب المصفوفات لقاعدة جبرية صارمة لا تقبل الاستثناء تُعرف بـ “شرط التوافق البعدي” (Dimensional Compatibility). تنص هذه القاعدة الحاكمة على أنه لكي تكتمل عملية الضرب بين مصفوفتين A وB، يجب أن يكون عدد أعمدة المصفوفة الأولى مساوياً تماماً لعدد صفوف المصفوفة الثانية. إذا كانت المصفوفة الأولى A ذات أبعاد (m × k)؛ أي تحتوي على m من الصفوف وk من الأعمدة، فإنه يتحتم أن تكون المصفوفة الثانية B ذات أبعاد (k × n)؛ أي تمتلك بالضرورة k من الصفوف وn من الأعمدة. ويُمثل البعد المشترك k حلقة الوصل الرياضية التي تتيح إتمام عمليات الجداء النقطي بين عناصر المتجهات المتقابلة بالتساوي.
أما أبعاد المصفوفة الناتجة، والتي نرمز لها بالرمز C، فتتحدد بصورة رياضية قطعية استناداً إلى الأبعاد الخارجية للمصفوفتين المتفاعلتين؛ حيث ترث المصفوفة الناتجة عدد صفوفها من المصفوفة الأولى A، وترث عدد أعمدتها من المصفوفة الثانية B، لتكون أبعادها النهائية هي (m × n). على سبيل المثال، إذا قمنا بضرب مصفوفة أبعادها (4 × 2) في مصفوفة أخرى أبعادها (2 × 5)، فإن العملية تتطابق رياضياً لأن البعد المشترك الداخلي هو 2، وستكون النتيجة الحتمية مصفوفة جديدة كلياً بأبعاد (4 × 5) تحتوي على 20 عنصراً مستقلاً ناتجاً عن عمليات الجمع والضرب المتداخلة.
يترتب على الإخلال بهذا الشرط الرياضي انهيار فوري للعملية الحسابية؛ فإذا كان عدد أعمدة المصفوفة الأولى يختلف ولو بعنصر واحد عن عدد صفوف المصفوفة الثانية، تصبح العملية غير معرفة رياضياً (Undefined)، وتتوقف جداول بيانات جوجل عن الحساب مصحوبة برسائل خطأ بنيوية صريحة. لذلك، تقتضي الممارسة الهندسية الفضلى إجراء فحص مسبق دقيق لأبعاد النطاقات المحددة، وضبط تصميم الجداول وتنظيم المتغيرات في صورة صفوف وأعمدة متناسقة، مما يمنع الأخطاء البرمجية قبل ظهورها ويضمن استقرار النماذج التحليلية المعتمدة على هذه الحسابات.
2. التركيب النحوي والمعايير التشغيلية لدالة MMULT
2.1 الصيغة العامة للدالة وتوصيف المعاملات
تُعد دالة MMULT، المشتقة من المصطلح الإنجليزي (Matrix Multiplication)، الدالة المعيارية المخصصة لتنفيذ ضرب المصفوفات داخل جداول بيانات جوجل. وتتخذ الدالة صيغة نحوية قياسية موجزة تتكون من معاملين إجباريين لا يمكن الاستغناء عن أحدهما، وتُكتب على النحو الآتي:
=MMULT(matrix1, matrix2)
يقبل المعامل الأول matrix1 إما نطاقاً جغرافياً مستمراً من الخلايا (مثل A1:B10) يمثل المصفوفة الأولى، أو مصفوفة صريحة مصفوفة بأقواس معقوفة. وبالمثل، يستقبل المعامل الثاني matrix2 نطاقاً أو مصفوفة ثانية تحقق بالضرورة شرط التوافق البعدي مع المعامل الأول. تشترط الدالة أن تكون جميع القيم المدرجة ضمن النطاقين قيماً عددية صريحة؛ وتشمل الأعداد الصحيحة، والأرقام العشرية، والأرقام السالبة، والقيم الصفرية. وتتعامل الدالة مع القيمة الصفرية بدقة تامة دون التأثير على سير العمليات، حيث تُضرب الأصفار طبقاً للقواعد الرياضية المعتادة لتسهم بصفر في الجمع التراكمي للجداء النقطي.
من الفروق الدقيقة التي يجب مراعاتها أن دالة MMULT لا تقبل النصوص أو القيم المنطقية غير المعالجة كمدخلات مباشرة داخل النطاقات المحددة؛ فوجود أي خلية تحتوي على نص أبجدي أو رمز أو فراغ ناتج عن معادلة نصية سيؤدي إلى فشل المعالجة بالكامل. كما تتيح الدالة للمستخدمين دمج نطاقات متغيرة أو مصفوفات ثابتة مشتقة من دوال أخرى، بشرط أن يكون المخرج النهائي لكل معامل هو بنية ثنائية الأبعاد تتطابق فيها عناصر الأعمدة والصفوف مع المعايير الحسابية المعتمدة للجبر الخطي.
2.2 آلية التمدد التلقائي لمصفوفة النتائج (Dynamic Array Spilling)
تعتمد جداول بيانات جوجل محركاً مصفوفياً حديثاً يدعم ميزة “التمدد التلقائي للمصفوفات” (Dynamic Array Spilling)، وهو سلوك متطور يلغي الحاجة إلى الطريقة التقليدية التي كانت تقتضي تحديد النطاق المستهدف بالكامل مسبقاً والضغط على مجموعات مفاتيح معقدة. فعند إدخال دالة MMULT في خلية واحدة محددة، وهي الخلية التي تمثل الزاوية العلوية اليمنى (أو اليسرى حسب اتجاه الصفحة) لمصفوفة النتائج، يقوم المحرك تلقائياً بحساب أبعاد المصفوفة الناتجة وملء كافة الخلايا المجاورة رأسياً وأفقياً بالنتائج المحسوبة دون الحاجة لسحب مقبض التعبئة التلقائية إطلاقاً.
تُسمى الخلية الأولى التي كُتبت بها المعادلة بـ “الخلية الحاضنة” أو الجذرية (Origin Cell)، وهي الخلية الوحيدة التي تظهر فيها الصيغة البرمجية كاملة في شريط المعادلات، وتكون قابلة للتعديل والتحرير المباشر. أما الخلايا التابعة المحيطة التي امتدت إليها النتائج، فتظهر أرقامها كقيم محسوبة برمجياً مشتقة من الخلية الأصلية؛ وإذا نقر المستخدم على أي خلية فرعية منها، فسيلاحظ أن شريط المعادلات يعرض الصيغة بلون رمادي معتم غير قابل للتعديل الفردي، مما يشير إلى أن تعديل أي قيمة يتطلب حصراً العودة إلى الخلية الجذرية وتعديل الدالة أو تغيير بيانات المصفوفات المصدرية.
تفرض هذه الآلية شرطاً تنظيمياً صارماً في ورقة العمل؛ وهو توفر مساحة جغرافية شاغرة تماماً تمتد على حجم المصفوفة المتوقعة. فإذا صادف المحرك الحسابي أثناء محاولة التمدد والتوسع أي خلية تحتوي على نص أو رقم أو مسافة فارغة أو معادلة أخرى، فإنه يتوقف فوراً عن الانسكاب ويطلق خطأ مرجعياً صريحاً، حمايةً لبيانات المستخدم من التداخل أو الكتابة الفوقية غير المقصودة.
2.3 الضوابط الدلالية لإدخال المصفوفات في صيغ مباشرة
توفر جداول بيانات جوجل إمكانية توليد مصفوفات مضمنة ومكتوبة مباشرة داخل شريط الصيغ باستخدام الأقواس المعقوفة { } (Curly Braces)، دون الحاجة إلى تخصيص خلايا مستقلة لها في ورقة العمل. تتيح هذه الخاصية للمستخدمين إنشاء مصفوفات أوزان ثابتة، أو متجهات تحويل لحظية، وتمريرها مباشرة كمعاملات داخل دالة MMULT، مما يضفي رشاقة هندسية على النماذج الرياضية ويوفر المساحة التخزينية على شاشة العرض.
يخضع تدوين المصفوفات المباشرة لضوابط دلالية صارمة تعتمد على الفواصل لتحديد التوجه البعدي للعناصر؛ حيث تُستخدم الفاصلة العادية , (أو الفاصلة العكسية حسب إعدادات اللغة والإقليم في حساب جوجل) للفصل بين الأعمدة في نفس الصف؛ مما يعني الانتقال أفقياً من خلية إلى مجاورتها. بينما تُستخدم الفاصلة المنقوطة ; للفصل بين الصفوف؛ مما يعني الانتقال رأسياً إلى صف جديد أدنى. على سبيل المثال، التعبير المباشر {1, 2; 3, 4} يُنشئ مصفوفة ثنائية الأبعاد (2 × 2) تتكون من الصف الأول المحتوي على القيمتين 1 و2، يليه الصف الثاني المحتوي على القيمتين 3 و4.
تتطلب المصفوفات المدمجة مراعاة بالغة للاتساق البعدي؛ فيجب أن يحتوي كل صف على نفس عدد الأعمدة دون زيادة أو نقصان، وإلا اعتُبر التعبير خاطئاً تركيبياً من قِبل معالج الصيغ. وتُعد أفضل ممارسات الترميز في الصيغ المباشرة هي تنظيم المصفوفات المدمجة بحيث تقتصر على المتجهات المعيارية الثابتة (مثل متجهات الآحاد أو الأصفار، أو مصفوفات الوحدة)، وترك البيانات المتغيرة والمتحولة داخل نطاقات الخلايا المرجعية لتسهيل التدقيق والمراجعة من قبل المستخدمين الآخرين.
3. إعداد وهيكلة البيانات المدخلة في ورقة العمل
3.1 تنظيم نطاقات الخلايا وضبط النطاقات الرقمية المستمرة
تبدأ كفاءة الحوسبة الرياضية في جداول البيانات من التخطيط الطوبوغرافي السليم لورقة العمل. تقتضي القواعد التصميمية المتقدمة عزل جداول المدخلات تماماً عن النطاقات المخصصة لعرض مصفوفات المخرجات؛ إذ إن وضع المخرجات في مسار تمدد المدخلات، أو العكس، يُولد تضارباً مكانياً قد يؤدي إلى أخطاء الانسكاب أو الحلقات الدائرية المرجعية. يُنصح دائماً بتخصيص كتل مستقلة مفصولة بأعمدة أو صفوف فارغة واضحة تفصل بين مصفوفة البيانات الأساسية، ومصفوفة الأوزان أو التحويلات، والنطاق المستهدف لاحتضان الناتج النهائي للدالة.
يجب التأكد من أن النطاقات الرقمية المشتركة في العملية تمثل كتلاً مستمرة (Contiguous Ranges) تخلو من أي صفوف أو أعمدة مدمجة (Merged Cells)؛ لأن دمج الخلايا يُحدث تشويهاً قاتلاً في البنية الإحداثية، حيث تُنسب القيمة في الخلية المدمجة إلى الزاوية العلوية اليمنى فقط وتُعامل بقية الخلايا المدمجة على أنها خلايا فارغة ذات قيمة صفرية أو غير معرفة، مما يفسد نتائج الجداء النقطي الرياضي. كما يجب التأكد من توحيد التنسيق الرقمي لكافة الخلايا، وتحديد عدد المنازل العشرية بوضوح لتجنب الفروق البصرية التي قد توحي بعدم دقة الحسابات، على الرغم من أن المحرك الحسابي يحتفظ بالدقة الرياضية الكاملة في الذاكرة بصرف النظر عن التنسيق الظاهري.
يُفضل استخدام التنسيق الشرطي والحدود الواضحة لإبراز أبعاد المصفوفات التشغيلية على الشاشة؛ كأن يتم تلوين مصفوفة المدخلات الأولى بلون أزرق خفيف مع حدود واضحة، والمصفوفة الثانية بلون أخضر خفيف، بينما يُترك نطاق الإخراج بلون رمادي محايد، مما يوفر رؤية بصرية ممتازة تمنع أي التباس لدى مراجعي النماذج الحسابية المعقدة في المؤسسات البحثية والمالية.
3.2 معالجة وتطهير البيانات قبل الحساب
تُمثل مرحلة تنظيف وتطهير البيانات المتطلب الوقائي الأهم لضمان استقرار دالة MMULT؛ فالأرقام في جداول البيانات قد تتنكر أحياناً في هيئة نصوص نتيجة التصدير غير المتقن من أنظمة تخطيط الموارد (ERP) أو الملفات النصية المفصولة بفواصل (CSV). يُشار إلى أن أي رقم مسجل كنص، حتى وإن كان يبدو ظاهرياً كرقم مجرد، سيؤدي عند إدراجه داخل مصفوفة إلى تعليق العملية وظهور خطأ في القيمة، نظراً لعدم قدرة محرك الجبر الخطي على ضرب الحقول النصية.
للكشف عن هذه الخلايا وتطهيرها، يمكن استخدام الدالة المعيارية ISNUMBER لفحص كافة عناصر النطاق آلياً، والتأكد من أنها ترجع القيمة المنطقية TRUE لجميع المواضع. وفي حال اكتشاف حقول نصية أو مسافات غير مرئية نتجت عن نسخ البيانات، يُنصح بتمرير النطاق عبر دالة VALUE أو استخدام دالة البحث والاستبدال لتجريد الخلايا من الفراغات والرموز الغريبة. كما يجب معالجة القيم المفقودة؛ إذ تختلف طريقة التعامل معها باختلاف طبيعة النموذج الإحصائي؛ ففي بعض النماذج يتم استبدال الفراغات بالقيمة الصفرية لتعكس غياب التأثير، بينما في نماذج أخرى يُلجأ إلى تقنيات التعويض باستخدام المتوسط الحسابي أو الوسيط لتفادي انحياز النتائج.
تُعد أدوات التحقق من صحة البيانات (Data Validation) وسيلة دفاعية فعالة لحماية النطاقات المصفوفية؛ حيث يمكن تقييد خلايا المدخلات لتقتصر حصرياً على الأرقام الحقيقية ضمن مجالات منطقية محددة، ومنع المستخدمين من كتابة الأحرف أو النصوص بالخطأ. هذا الإجراء الوقائي يضمن دوام صلاحية النموذج الرياضي ويعصمه من الانهيار المفاجئ عند تحديث البيانات بشكل متكرر أو مشاركة الملف مع أطراف متعددة.
3.3 توظيف النطاقات المسماة (Named Ranges) لتحسين إدارة العمليات
تُمثل ميزة “النطاقات المسماة” (Named Ranges) في جداول بيانات جوجل ركيزة أساسية من ركائز النمذجة الاحترافية؛ إذ تتيح تحويل الإحداثيات الجغرافية الصامتة والجامدة (مثل A2:D50) إلى تسميات برمجية ذات دلالات وظيفية واضحة (مثل مصفوفة_البيانات أو أوزان_المعايير). يساهم هذا التحويل في رفع مقروئية الصيغ الحسابية بشكل جذري، ويقلل من الأخطاء البشرية الشائعة الناتجة عن اختيار نطاقات غير صحيحة أو نسيان حدود المصفوفة أثناء الكتابة اليدوية.
لإنشاء نطاق مسمى، يقوم المستخدم بتحديد مصفوفة المدخلات والانتقال إلى القائمة العلوية واختيار البيانات > النطاقات المسماة، ثم تعيين اسم فريد يخلو من المسافات والرموز الخاصة، ويبدأ بحرف أبجدي أو شرطة سفلية. بمجرد تسمية النطاقات، يتحول تركيب دالة MMULT من صيغة معقدة يصعب تتبعها بصرياً إلى معادلة مقروءة وذات معنى رياضي بديهي؛ على سبيل المثال: =MMULT(مصفوفة_الدرجات, متجه_الأوزان). يوضح هذا السطر بوضوح الغرض التحليلي للعملية لكل من يفتح ورقة العمل دون الحاجة لتتبع إحداثيات الخلايا ومطابقتها يدوياً.
علاوة على ذلك، توفر النطاقات المسماة ميزة بالغة الأهمية عند توسيع وتحديث البيانات؛ فإذا طرأ تغيير على أبعاد مصفوفة المدخلات نتيجة إضافة متغيرات أو عينات جديدة، يمكن للمحلل تعديل حدود النطاق المسمى من مدير النطاقات مرة واحدة فقط، لتنعكس الترقية تلقائياً في كافة المعادلات المصفوفية المرتبطة به عبر مختلف أوراق العمل المضمنة في الملف، مما يقضي تماماً على الحاجة إلى تعقب الصيغ وإعادة كتابتها يدوياً في كل خلية.
4. ضرب مصفوفة (2×2) في مصفوفة (2×2): التطبيق الأساسي والحساب اليدوي المقارن
4.1 التفكيك النظري لضرب مصفوفة مربعة ثنائية الرتبة
تُعد المصفوفة المربعة ثنائية الرتبة (2×2) النموذج التعليمي والتطبيقي المثالي لفهم الميكانيكا الحسابية الدقيقة الكامنة خلف خوارزمية ضرب المصفوفات. فلنفترض وجود مصفوفتين؛ الأولى A والثانية B، وكلتاهما تتكون من صفين وعمودين، ولنعبر عن عناصرهما بالرموز الجبرية الآتية:
A = [ [a11, a12], [a21, a22] ]
B = [ [b11, b12], [b21, b22] ]
وفقاً لقواعد الجداء النقطي للجبر الخطي، فإن المصفوفة الناتجة C، وهي حتماً مصفوفة مربعة من الرتبة (2×2)، تتألف من أربعة عناصر مستقلة يتم حساب كل منها على النحو التالي:
- العنصر C11 (الصف الأول، العمود الأول): ينتج عن ضرب عناصر الصف الأول من A في عناصر العمود الأول من B وجمعهما:
(a11 × b11) + (a12 × b21). - العنصر C12 (الصف الأول، العمود الثاني): ينتج عن ضرب عناصر الصف الأول من A في عناصر العمود الثاني من B وجمعهما:
(a11 × b12) + (a12 × b22). - العنصر C21 (الصف الثاني، العمود الأول): ينتج عن ضرب عناصر الصف الثاني من A في عناصر العمود الأول من B وجمعهما:
(a21 × b11) + (a22 × b21). - العنصر C22 (الصف الثاني، العمود الثاني): ينتج عن ضرب عناصر الصف الثاني من A في عناصر العمود الثاني من B وجمعهما:
(a21 × b12) + (a22 × b22).
لتجسيد ذلك بمثال رقمي ملموس: إذا كانت A = [ [2, 3], [1, 4] ] وكانت B = [ [5, 6], [7, 8] ]، فإن الحساب اليدوي التفصيلي يكون كالآتي:
العنصر الأول: (2×5) + (3×7) = 10 + 21 = 31.
العنصر الثاني: (2×6) + (3×8) = 12 + 24 = 36.
العنصر الثالث: (1×5) + (4×7) = 5 + 28 = 33.
العنصر الرابع: (1×6) + (4×8) = 6 + 32 = 38.
وبالتالي، فإن المصفوفة الناتجة النهائية هي C = [ [31, 36], [33, 38] ]. هذا التفصيل اليدوي يوضح بدقة كيف تتراكم نواتج الضرب لتوليد كل رقم منفرد في النتيجة النهائية.
4.2 التطبيق الإجرائي داخل جداول بيانات جوجل
لتطبيق هذا النموذج الرقمي بصورة عملية داخل ورقة عمل جداول جوجل، نتبع خطوات إجرائية محددة تضمن التنفيذ الدقيق للدالة ومراقبة آلية التمدد التلقائي لمصفوفة المخرجات:
أولاً، نقوم بإدخال عناصر المصفوفة الأولى A في النطاق الجغرافي A2:B3؛ بحيث تحتوي الخلية A2 على القيمة 2، والخلية B2 على القيمة 3، والخلية A3 على القيمة 1، والخلية B3 على القيمة 4. ثانياً، نقوم بتهيئة المصفوفة الثانية B في النطاق D2:E3 بترك عمود فاصل لتنظيم الرؤية؛ بحيث تضم D2 القيمة 5، وE2 القيمة 6، وD3 القيمة 7، وE3 القيمة 8.

ثالثاً، ننتقل إلى الخلية المستهدفة التي ستستقبل المخرجات، ولتكن الخلية G2، ونكتب الصيغة الرياضية التالية بدقة تامة: =MMULT(A2:B3, D2:E3)، ثم نضغط على مفتاح الإدخال (Enter). في الجزء من الثانية التالي للضغط، يلاحظ المستخدم سلوك المحرك البرمجي؛ حيث تظهر القيمة 31 مباشرة في الخلية G2، وتنسكب القيمة 36 تلقائياً في الخلية H2، بينما تسجل الخلية G3 القيمة 33، وتستقر القيمة 38 في الخلية H3، مشكلة كتلة متكاملة في النطاق G2:H3.

يتيح هذا التنفيذ الفوري مطابقة الأرقام المحسوبة سحابياً مع النتيجة اليدوية المشتقة مسبقاً، مما يؤكد خلو النموذج من أي أخطاء مفاهيمية أو إجرائية. وفي حال رغب المستخدم في تعديل أي مدخل من مدخلات المصفوفات الأصلية، كالخلية A2 مثلاً بتغيير قيمتها من 2 إلى 10، فستقوم جداول بيانات جوجل بإعادة حساب عناصر النطاق G2:H3 بشكل فوري وديناميكي دون أي حاجة لإعادة صياغة الدالة أو تحديثها يدوياً.
4.3 تحليل الخصائص الجبرية لمصفوفة الناتج (2×2)
يكشف التطبيق المباشر لضرب المصفوفات الثنائية المربعة في جداول بيانات جوجل عن مجموعة من الخصائص الجبرية البنيوية التي تميز الجبر الخطي عن الحساب الابتدائي. أولى هذه الخصائص وأخطرها هي “خاصية عدم الإبدال” (Non-Commutativity)؛ ففي حين أن ضرب الأرقام القياسية يتمتع بخاصية إبدالية مطلقة (حيث 3 × 5 = 5 × 3)، فإن ضرب المصفوفات لا يخضع لهذه القاعدة إطلاقاً. ويمكن إثبات ذلك عملياً في ورقة العمل بكتابة الصيغة المعكوسة =MMULT(D2:E3, A2:B3) في نطاق جديد، لنلاحظ فوراً أن النتائج تختلف كلياً عن المصفوفة الأولى؛ مما يبرهن جبرياً أن A × B ≠ B × A كقاعدة عامة.
الخاصية الرياضية الثانية تتعلق بمحدد المصفوفة (Matrix Determinant) وعلاقته بالضرب؛ فوفق النظرية الجبرية الراسخة، فإن محدد حاصل ضرب مصفوفتين يساوي حاصل ضرب محدد كل مصفوفة على حدة: det(A × B) = det(A) × det(B). ويمكن للمحلل التحقق من ذلك في جداول بيانات جوجل باستخدام دالة MDETERM؛ بحساب MDETERM(A2:B3) ومضروبه في MDETERM(D2:E3) ومطابقته بقيمة MDETERM(G2:H3)، ليتطابق الناتج تماماً مما يعزز الثقة في دقة الخوارزمية البرمجية المنفذة.
كما تبرز دراسة تأثير “مصفوفة الوحدة” (Identity Matrix) ثنائية الرتبة {1, 0; 0, 1} كعنصر محايد في عملية الضرب؛ إذ إن ضرب أي مصفوفة مربعة في مصفوفة الوحدة، سواء من اليمين أو من اليسار، ينتج عنه ذات المصفوفة الأصلية دون أي تغيير في قيمها. يتيح اختبار هذه الخصائص الجبرية في بيئة الجداول السحابية وسيلة تعليمية وتطبيقية لا غنى عنها لبناء نماذج محاكاة متطورة وفهم سلوك المتغيرات المتشابكة قبل تعميمها على نظم بيانات أكبر وأكثر تعقيداً.
5. ضرب مصفوفة (2×2) في مصفوفة (2×3): توسيع الأبعاد المستطيلة
5.1 التحقق المسبق من التوافق البعدي وتحديد رتبة الناتج
عند الانتقال من النظم المربعة المتناظرة إلى النظم المستطيلة غير المتناظرة، يصبح التحقق المسبق من التوافق البعدي خطوة تأسيسية حاسمة لمنع حدوث أخطاء حسابية غير متوقعة. في هذه الحالة الدراسية، نتعامل مع عملية ضرب مصفوفة مربعة ثنائية الرتبة A بأبعاد (2 × 2) في مصفوفة مستطيلة B بأبعاد (2 × 3). وبإسقاط القاعدة الحاكمة: نجد أن عدد أعمدة المصفوفة الأولى (وهو 2) يتطابق تماماً مع عدد صفوف المصفوفة الثانية (وهو 2)، وبالتالي فإن العملية متوافقة جبرياً وقابلة للتنفيذ السلس.
أما رتبة المصفوفة الناتجة C، فتتحدد بالصفوف المتبقية من الأولى والأعمدة المتبقية من الثانية، لتكون حتماً مصفوفة مستطيلة من الرتبة (2 × 3). يترتب على هذا التحديد أن المحرك الحسابي سيقوم بإجراء 6 عمليات جداء نقطي متمايزة لملء ست خلايا في النتيجة النهائية موزعة على صفين وثلاثة أعمدة. تتضمن هذه العمليات تراكم حواصل ضرب كل صف من صفي المصفوفة الأولى في كل عمود من الأعمدة الثلاثة للمصفوفة الثانية بصورة منتظمة ومتوازية.

يتطلب هذا التوسع البعدي من المحلل التحقق من جغرافية ورقة العمل قبل تنفيذ الدالة؛ فالمصفوفة الناتجة تحتاج إلى مساحة مستطيلة أفقية ممتدة (صفان وثلاثة أعمدة شاغرة). إن غياب الانتباه إلى طبيعة امتداد المصفوفة الناتجة، واعتقاد المستخدم أنها ستنتج قالباً مربعاً كما في الحالة السابقة، قد يؤدي إلى سوء تخطيط موضع الجداول المجاورة أو التسبب في تداخل البيانات، مما يعزز أهمية استنتاج أبعاد الناتج ذهنياً وهندسياً قبل كتابة الصيغة في الخلية المخصصة.
5.2 الخطوات التطبيقية لكتابة الصيغة في ورقة العمل
لتنفيذ ضرب مصفوفة (2×2) في مصفوفة (2×3) عملياً، نبدأ بتهيئة البيانات العددية في ورقة العمل بتنسيق منظم يبرز الفروق الهندسية بين النطاقين. فلنضع المصفوفة المربعة الأولى A في النطاق A2:B3 بالقيم الآتية: A2=1, B2=2, A3=3, B3=4. ثم نخصص النطاق المستطيل المجاور D2:F3 للمصفوفة الثانية B بالقيم: D2=5, E2=6, F2=7، والصف الثاني: D3=8, E3=9, F3=10.

ننتقل بعد ذلك إلى الخلية المستهدفة لبدء انسكاب النتائج، ولتكن الخلية H2. نكتب الصيغة الرياضية الآتية:
=MMULT(A2:B3, D2:F3)
بمجرد الضغط على مفتاح الإدخال، تتمدد مصفوفة النتائج في النطاق المستطيل H2:J3 بدقة حسابية متناهية. ويمكننا تتبع تفكيك النتائج الحسابية الظاهرة كما يلي:
- الخلية H2 (الصف 1، العمود 1): (1×5) + (2×8) = 5 + 16 = 21.
- الخلية I2 (الصف 1، العمود 2): (1×6) + (2×9) = 6 + 18 = 24.
- الخلية J2 (الصف 1، العمود 3): (1×7) + (2×10) = 7 + 20 = 27.
- الخلية H3 (الصف 2، العمود 1): (3×5) + (4×8) = 15 + 32 = 47.
- الخلية I3 (الصف 2، العمود 2): (3×6) + (4×9) = 18 + 36 = 54.
- الخلية J3 (الصف 2، العمود 3): (3×7) + (4×10) = 21 + 40 = 61.
تُظهر هذه النتائج استجابة محرك جداول بيانات جوجل الفائقة في تنفيذ العمليات الست دفعة واحدة، مع ملء النطاق المستطيل بالكامل والحفاظ على استقرار الروابط الحسابية للمدخلات.
5.3 التطبيقات العملية للمصفوفات المستطيلة الناتجة
يحمل ضرب المصفوفات المربعة في المصفوفات المستطيلة أهمية بالغة في النمذجة الاقتصادية والتحليل الإحصائي التطبيقي؛ حيث يُستخدم هذا الترتيب عادة لتمثيل عمليات “التحويل الخطي المتزامن” على عدة متجهات في آن واحد. ففي سيناريو عملي من قطاع الأعمال، يمكن للمصفوفة الأولى (2×2) أن تمثل مصفوفة معاملات تحويلية للأرباح والتكاليف تحت ظروف تضخمية معينة، بينما تمثل أعمدة المصفوفة الثانية الثلاثة (2×3) بيانات الأداء لثلاثة خطوط إنتاج مختلفة أو ثلاثة فروع تجارية على مدار فترتين زمنيتين محددتين.
بإجراء عملية ضرب واحدة عبر دالة MMULT، نحصل في الناتج على مصفوفة مستطيلة (2×3) تُعطي التقديرات المعدلة لجميع الفروع التجارية الثلاثة متزامنة، مما يغني المحلل المالي عن بناء معادلات منفصلة لكل فرع على حدة ويضمن تناسق تطبيق سيناريو التحويل عبر كافة الوحدات التشغيلية. كما تُستخدم هذه البنية المستطيلة بكثافة في معالجة الصور الرقمية والرسومات ثلاثية الأبعاد؛ حيث تُستخدم المصفوفة المربعة كمصفوفة تدوير أو قياس (Rotation or Scaling Matrix) لتدوير إحداثيات عدة نقاط مكانية ممثلة في أعمدة المصفوفة المستطيلة دفعة واحدة في خطوة حسابية رشيقة.
علاوة على ذلك، تُعد هذه المخرجات المستطيلة مدخلات أساسية لتغذية الرسوم البيانية التفاعلية؛ حيث يمكن لكل عمود من الأعمدة الثلاثة المستحدثة أن يُمثل سلسلة بيانية مستقلة داخل لوحات التحكم (Dashboards). يسهل هذا العرض البصري المقارنة الفورية بين المؤشرات المتعددة، مما يرفع من جودة وكفاءة عملية اتخاذ القرار المدفوعة بالبيانات المترابطة رأسياً وأفقياً.
6. ضرب مصفوفة (3×3) في مصفوفة (3×2): معالجة النظم ثلاثية الرتبة
6.1 الحسابات الجبرية المعقدة للنظم ثلاثية الأبعاد
يمثل التعامل مع النظم ثلاثية الرتبة قفزة في التعقيد الحسابي اليدوي؛ حيث تتضاعف العمليات الجبرية التراكمية، مما يبرز الأهمية القصوى للأتمتة السحابية عبر جداول بيانات جوجل. عند دراسة عملية ضرب مصفوفة ثلاثية مربعة A بأبعاد (3 × 3) في مصفوفة مستطيلة B بأبعاد (3 × 2)، نجد أن شرط التوافق البعدي متحقق تماماً لوجود 3 أعمدة في الأولى تقابلها 3 صفوف في الثانية. أما المصفوفة الناتجة C، فستكون بالضرورة ذات رتبة مستطيلة أبعادها (3 × 2)؛ أي تتألف من ثلاثة صفوف وعمودين، مما يستلزم حساب 6 عناصر مركبة، لكن كل عنصر منها يتطلب هذه المرة جمع ثلاثة حواصل ضرب ثنائية بدلاً من حاصلين كما في الحالات السابقة.

تتجلى الصياغة الرياضية لعناصر الناتج في تراكم عمليات الجداء النقطي الثلاثي؛ فالعنصر C11 يتطلب حساب: (a11×b11) + (a12×b21) + (a13×b31). وتتكرر هذه العملية التراكمية التساعية عبر الصفوف الثلاثة والعمودين. تكتسب هذه الرتبة أهمية خاصة في العلوم الهندسية والفيزيائية؛ لكونها تمثل الإحداثيات الديكارتية الفراغية ثلاثية الأبعاد (X, Y, Z). فالمصفوفة (3×3) تعمل كمشغّل للتحولات الفراغية (Spatial Transformation Operator) مثل التدوير حول المحاور المكانية أو الانعكاس، بينما تمثل المصفوفة (3×2) متجهين موقعيين في الفضاء ثلاثي الأبعاد.
إن محاولة إجراء هذه الحسابات يدوياً عند تكرار النماذج أو التعامل مع بيانات حقيقية متعددة الأرقام العشرية تكون عرضة لأخطاء السهو والتشتت الذهني، بالإضافة إلى استهلاكها وقتاً طويلاً. هنا تتجلى قوة دالة MMULT التي تختزل تلك العمليات المعقدة في جزء من الثانية وبدقة متناهية، مما يتيح للمحللين والمهندسين التركيز على تفسير النتائج واستنباط الأنماط الرياضية بدلاً من الغرق في التفاصيل الحسابية المضنية.
6.2 التنفيذ التقني للصيغة ومراقبة دقة الحساب
لتطبيق هذا النظام ثلاثي الأبعاد بصورة إجرائية، نقوم بتجهيز النطاقات العددية داخل ورقة العمل بدقة هندسية عالية لتفادي أي خطأ إحداثي. ندخل المصفوفة الأولى (3×3) في النطاق A2:C4، وندخل المصفوفة الثانية (3×2) في النطاق E2:F4، مع ترك العمود D فارغاً كفاصل بصري. لنفترض أن قيم المصفوفة الأولى هي الصفوف: [1, 2, 3]، ثم [0, 1, 4]، ثم [5, 6, 0]. وقيم المصفوفة الثانية هي الصفوف: [2, 1]، ثم [3, 4]، ثم [1, 2].

نختار الخلية المستهدفة H2 لتكون الزاوية العليا لمصفوفة المخرجات، وندخل الصيغة المعيارية الآتية:
=MMULT(A2:C4, E2:F4)

فور اعتماد الصيغة بالضغط على مفتاح الإدخال، يستجيب محرك الحساب السحابي فوراً بملء النطاق H2:I4 بالمخرجات المحسوبة، حيث تتوزع النتائج عبر الخلايا الست كالتالي:
- الخلية H2: (1×2) + (2×3) + (3×1) = 2 + 6 + 3 = 11.
- الخلية I2: (1×1) + (2×4) + (3×2) = 1 + 8 + 6 = 15.
- الخلية H3: (0×2) + (1×3) + (4×1) = 0 + 3 + 4 = 7.
- الخلية I3: (0×1) + (1×4) + (4×2) = 0 + 4 + 8 = 12.
- الخلية H4: (5×2) + (6×3) + (0×1) = 10 + 18 + 0 = 28.
- الخلية I4: (5×1) + (6×4) + (0×2) = 5 + 24 + 0 = 29.
تؤكد مطابقة هذه الأرقام مع الحساب الرياضي الدقة العالية لمحرك جداول جوجل؛ حيث يتعامل مع الأرقام ذات الفواصل العشرية الطويلة بنفس الكفاءة، ويحافظ على القيم الصحيحة دون أدنى انحراف ناتج عن تقريب المعالجات الرقمية، مما يجعله منصة يمكن الاعتماد عليها في التدقيق الهندسي والإحصائي المتقدم.
6.3 إدارة التوسعات الهيكلية والبيانات المتغيرة
في بيئات الأعمال الحقيقية والبحوث التجريبية، نادراً ما تظل البيانات ثابتة؛ حيث تخضع مصفوفات المدخلات للتحديث الدوري المستمر، سواء بتدفق قراءات جديدة من حساسات رقمية، أو استيراد بيانات استبيانات دورية، أو تعديل افتراضات التسعير والتكاليف. يبرز هنا التفوق التقني لجداول بيانات جوجل، حيث ترتبط مصفوفة النتائج ديناميكياً بخلايا المدخلات؛ وبمجرد أن يُغير المستخدم قيمة خلية واحدة داخل النطاق A2:C4 أو E2:F4، يعيد المحرك الحسابي في الخادم السحابي حساب النطاق بالكامل في زمن استجابة شبه لحظي، مع إرسال التحديثات لجميع المستخدمين المشاركين في الورقة.
عند الرغبة في تعميم هذه العملية وتكرارها على نطاقات متعددة دون كسر المراجع الحسابية، تتجلى الأهمية البالغة لاستخدام مراجع الخلايا المطلقة المسبوقة بعلامة الدولار (مثل $A$2:$C$4). فإذا كان لدينا عدة سيناريوهات للمصفوفة الثانية موزعة في أعمدة تالية، فإن تثبيت نطاق المصفوفة الأولى يضمن سحب الصيغة أو نسخها دون انزياح المؤشر المرجعي عن المصفوفة الأساسية الحاكمة للنموذج الرياضي.
كما يُنصح في النماذج الكبيرة بتوثيق الحدود البنائية للمصفوفات في صفوف مخصصة للبيانات الوصفية (Metadata) تقع أعلى الجداول. يتضمن ذلك كتابة أبعاد كل مصفوفة ونوعها بوضوح؛ لتنبيه أي متعاون مستقبلي بالقيود الرياضية الحاكمة للنظام قبل محاولة حذف صف أو إدراج عمود إضافي قد يُخل بشرط التوافق البعدي ويؤدي إلى انهيار العمليات التحليلية المتتالية في ورقة العمل.
7. تكامل دالة MMULT مع الدوال المصفوفية المتقدمة
7.1 الدمج مع دالة TRANSPOSE لتحقيق التوافق البعدي
في العديد من الحالات العملية لتحليل البيانات، يواجه المحلل مصفوفات تحتوي على بيانات سليمة تماماً من حيث المضمون، لكنها غير متوافقة بعدياً لإجراء عملية الضرب نتيجة ترتيب تسجيل المتغيرات في ورقة العمل؛ كأن تكون المصفوفتان كلتاهما بأبعاد (N × K). في هذه الحالة، يتطابق عدد الأعمدة في الأولى مع عدد الأعمدة في الثانية بدلاً من أن يتطابق مع عدد الصفوف، مما يمنع تمرير النطاقين مباشرة إلى دالة MMULT. هنا يبرز الدور الجوهري للدمج التكاملي مع دالة تدوير المصفوفات TRANSPOSE التي تقوم بقلب محاور المصفوفة؛ محولة صفوفها إلى أعمدة وأعمدتها إلى صفوف.
بدلاً من إنشاء جدول وسيط يستنزف مساحة إضافية في ورقة العمل لتدوير البيانات ثم ضربها، تتيح جداول بيانات جوجل دمج الدالتين في خطوة واحدة رشيقة ومعادلة مدمجة، كما في الصيغة الآتية:
=MMULT(TRANSPOSE(A2:A10), B2:B10)
في هذا المثال النموذجي، لدينا متجهان رأسيان من الأعمدة، أبعاد كل منهما (9 × 1). لا يمكن ضربهما مباشرة وفق قواعد الجبر الخطي؛ لكن استخدام الدالة TRANSPOSE(A2:A10) يحول المتجه الأول في الذاكرة الحسابية اللحظية إلى متجه صفي أفقي بأبعاد (1 × 9)، مما يجعله متوافقاً تماماً للضرب في المتجه الثاني (9 × 1)، لينتج عن ذلك عدد قياسي وحيد (Scalar) بأبعاد (1 × 1) يمثل مجموع حاصل الضرب النقطي للمتغيرين.

تُعد هذه التقنية المدمجة ذات أهمية بالغة في التحليل الإحصائي، وتحديداً عند حساب مصفوفات التباين والتباين المشترك (Variance-Covariance Matrices)، حيث يتم ضرب مصفوفة الانحرافات المتمركزة في مقلوبها MMULT(TRANSPOSE(X), X)، وهي الخطوة المركزية في استخراج العلاقات البينية للمتغيرات المعقدة في خوارزميات تعلم الآلة ونماذج التحليل المالي عالي التردد.
7.2 استخدام دالة ARRAYFORMULA لدعم العمليات المركبة
يتطلب الفهم المتقدم لمحرك جداول بيانات جوجل التمييز الدقيق بين نوعين من الدوال: الدوال المصفوفية الأصيلة التي تدعم العمليات متعددة الأبعاد ذاتياً دون مساعدة خارجية (وعلى رأسها دالة MMULT ودالة TRANSPOSE ودالة QUERY)، والدوال القياسية المصممة للتعامل مع الخلايا المفردة والتي تحتاج صراحة إلى إحاطتها بدالة ARRAYFORMULA كي تكتسب القدرة على المعالجة الشاملة للنطاقات والخلايا الممتدة.
تبرز الحاجة الحيوية لاستدعاء دالة ARRAYFORMULA عند الرغبة في إجراء عمليات تحويلية أولية أو معالجات حسابية وتصفية شرطية على عناصر المصفوفات المدخلة قبل تمريرها إلى دالة ضرب المصفوفات MMULT. على سبيل المثال، إذا أردنا ضرب مصفوفتين لكن بعد خصم نسبة ضريبية محددة من عناصر المصفوفة الأولى وقصر القيم السالبة فيها على الصفر، فإننا لا نستطيع استخدام دوال المقارنة الشرطية البسيطة داخل MMULT مباشرة؛ بل نقوم بصياغة معادلة تركيبية متكاملة تأخذ الشكل التالي:
=MMULT(ARRAYFORMULA(IF(A2:C10>0, A2:C10*0.85, 0)), D2:F4)
تقوم دالة ARRAYFORMULA في هذا السياق بتوسيع دالة IF الحسابية لتعمل على كل عنصر في النطاق A2:C10 بالتوازي، مع معالجة الشروط الحسابية وتعديل الأرقام في الذاكرة اللحظية دون إنشاء أعمدة مساعدة، ثم تُسلم المصفوفة المعالجة الناتجة إلى دالة MMULT لتنفيذ عملية الضرب الجبري مع المصفوفة الثانية. هذا التناغم يمنح المحلل قوة برمجية مكافئة للأكواد الاحترافية، ويجنب ورقة العمل التضخم بالجداول الوسيطة التي تبطئ الأداء وتشتت الانتباه.
7.3 دمج دالة MMULT مع الدوال التجميعية والتلخيصية
لا تتوقف القوة التحليلية لدالة MMULT عند حدود استخراج المصفوفات الممتدة؛ بل تمتد لتكون محركاً أولياً لتغذية الدوال التجميعية الكلاسيكية، مثل SUM وAVERAGE وINDEX وQUERY، لاستخراج مؤشرات مركبة ورؤى تركيبية فورية. ومن أبرز الاستخدامات الاحترافية في هذا المضمار هو توليد متجهات الجمع الصفية أو العمودية، حيث يمكن استبدال عشرات معادلات الجمع التراكمي في صفوف وقواعد بيانات ضخمة بمعادلة مصفوفية واحدة تضرب جدول البيانات في متجه عمودي من الآحاد {1; 1; 1; ...}، لتنتج عموداً متكاملاً يحتوي على المجاميع الفردية لكل صف بضغطة زر واحدة ودون سحب للمعادلات.
علاوة على ذلك، يمكن تطويق نتائج دالة MMULT بدالة الفهرسة INDEX لاستخلاص قيمة محددة بدقة متناهية من المصفوفة الناتجة دون الحاجة إلى طباعة باقي عناصر المصفوفة على ورقة العمل؛ كأن نكتب: =INDEX(MMULT(المصفوفة1, المصفوفة2), 2, 3)، حيث تقوم هذه الصيغة بحساب الضرب المصفوفي داخلياً، لكنها لا تُرجع في الخلية سوى العنصر الواقع في الصف الثاني والعمود الثالث من المصفوفة الناتجة، مما يوفر المساحة ويمنع تشتيت المستخدمين.
كما يمكن توظيف دالة QUERY الفائقة لتطبيق عمليات التصفية المنطقية وفرز النتائج مباشرة على المصفوفة المتولدة من دالة MMULT؛ مما يتيح استخراج الصفوف التي تتجاوز فيها نواتج الجداء النقطي حداً معيناً وترتيبها تنازلياً. هذا التكامل يفتح آفاقاً جديدة لبناء نماذج ذكاء أعمال (BI) متقدمة داخل جداول بيانات جوجل، تنافس النظم المخصصة باهظة التكلفة، وتوفر للمؤسسات مرونة فائقة في استخلاص التقارير المركبة بصورة آلية وموثوقة.
8. تشخيص واستكشاف الأخطاء الشائعة وحلولها التقنية
8.1 معالجة خطأ القيمة الشهير #VALUE! المرتبط بالأبعاد والأنواع
يُعد خطأ القيمة #VALUE! الخطأ الأكثر تكراراً وشيوعاً عند التعامل مع دالة MMULT في جداول بيانات جوجل. يشير هذا الخطأ إلى وجود خلل بنيوي يمنع إتمام العملية الرياضية، وينحصر سببه الجذري في حالتين رئيسيتين: الحالة الأولى، وهي الأكثر انتشاراً، تتمثل في عدم التوافق البعدي؛ أي أن عدد أعمدة المصفوفة الأولى لا يتطابق مطلقاً مع عدد صفوف المصفوفة الثانية. والحالة الثانية تتمثل في عدم تجانس نوع البيانات، كأن تحتوي إحدى خلايا النطاقين على نص أبجدي، أو مسافة فارغة ناتجة عن الضغط على شريط المسافات، أو رمز غير عددي.
للتشخيص المنهجي لهذا الخطأ، يجب أولاً تمرير مؤشر الفأرة فوق الخلية التي يظهر بها الخطأ لقراءة الرسالة التوضيحية التفصيلية التي يوفرها محرك جداول جوجل؛ والتي غالباً ما تنص صراحة على: “عدد أعمدة المصفوفة الأولى يجب أن يتطابق مع عدد صفوف المصفوفة الثانية”، أو تفيد بأن “الدالة MMULT تتوقع قيماً عددية ولكن القيمة المعطاة هي نص”. وإذا كان السبب بعدياً، يتم استدعاء دالتي COLUMNS وROWS لفحص النطاقات آلياً بمقارنة COLUMNS(النطاق1) مع ROWS(النطاق2) للتأكد من تطابقهما التام وتعديل مراجع الخلايا وفق ذلك.
أما إذا كان الخلل ناتجاً عن وجود نصوص خفية داخل مصفوفات يُفترض أنها عددية، فيتم تطبيق فحص برمجي عبر دالة التحقق ARRAYFORMULA(ISNUMBER(النطاق))؛ حيث ستكشف الخلايا التي تظهر فيها النتيجة FALSE عن موضع البيانات التالفة بدقة متناهية، مما يتيح للمحلل تطهيرها فوراً، أو استخدام دالة تحويل قسري كدالة N() أو إضافة صفر عددي +0 لإجبار الجداول على معاملة الأرقام المخزنة كنصوص كقيم رقمية صريحة متوافقة مع متطلبات خوارزمية الجبر الخطي.
8.2 حل مشكلة خطأ الانسكاب واعتراض الخلايا #REF!
يرتبط خطأ المرجع #REF! في سياق دالة MMULT بآلية “التمدد التلقائي للمصفوفات” (Spill Mechanism). يظهر هذا الخطأ بشكل حصري عندما تحاول الدالة طباعة وتوسيع مصفوفة النتائج في الخلايا المجاورة للخلية الحاضنة، فتصطدم بوجود خلية مشغولة مسبقاً بمحتوى نصي، أو رقمي، أو معادلة أخرى، أو حتى مسافة خالية عابرة، مما يعترض مسار التمدد ويمنع إكمال العرض حمايةً لتلك البيانات من الحذف أو الاستبدال التلقائي.

يتميز محرك جداول جوجل بتفاعلية استكشاف هذا الخطأ؛ فبمجرد وضع المؤشر على الخلية الحاضنة التي تحمل الخطأ، تظهر نافذة تلميح منبثقة تحمل رسالة واضحة: “تعذر توسيع النتيجة لأنها ستؤدي إلى الكتابة فوق البيانات في الخلية [X]”؛ حيث تحدد الرسالة الإحداثي الجغرافي الدقيق للخلية الأولى المعترضة لمسار الانسكاب. يتيح هذا التحديد اللحظي للمستخدم التوجه مباشرة إلى الخلية المذكورة وحذف محتواها المعترض.
لحل هذه المعضلة وضمان عدم تكرارها، يُتبع مساران تقنيان: المسار الأول يتمثل في التفريغ الجغرافي للنطاق المستهدف بالكامل عبر مسح الخلايا الواقعة ضمن أبعاد المصفوفة المتوقعة (صفوفاً وأعمدة). أما المسار الثاني، في حال كانت المساحة المحيطة بالخلية مكتظة بجداول حيوية أخرى يصعب نقلها، فيتمثل في نقل دالة MMULT برمتها إلى ورقة عمل جديدة أو إلى زاوية خالية في أسفل الصفحة الحالية، مما يوفر متسعاً حراً لانبساط النتائج دون عوائق مكانية.
8.3 معالجة أخطاء المراجع والقيم المفقودة (#N/A و #NAME?)
تنتمي أخطاء المراجع التسموية وقيم الفقدان إلى فئة الأخطاء البنائية التي تشير إلى خلل في تهيئة البيئة البرمجية للمعادلة. يُشير خطأ #NAME? إلى أن محرك جداول بيانات جوجل لم يتمكن من التعرف على اسم الدالة المستدعاة أو أحد النطاقات المسماة المستخدمة داخلها. وينجم هذا الخطأ غالباً عن خطأ مطبعي في كتابة اسم الدالة (مثل كتابة MMUTL بدلاً من MMULT)، أو استخدام نطاق مسمى تم حذفه مسبقاً أو كتابة اسمه بصورة غير مطابقة لحالته الأصلية، ويتطلب حله تصحيح التهجئة النحوية للمصطلحات البرمجية بصورة فورية.
أما خطأ #N/A، فيظهر عندما تتضمن النطاقات المصفوفية المدخلة قيماً مفقودة ناتجة عن دوال بحثية مثل VLOOKUP أو MATCH فشلت في العثور على تطابقات مرجعية. وتكمن خطورة هذا الخطأ في قابليته للعدوى التراكمية السريعة؛ فوجود خلية واحدة فقط تحمل الخطأ #N/A داخل مصفوفة ضخمة سيؤدي عبر عمليات الجداء النقطي إلى تلويث كافة عناصر مصفوفة المخرجات وتحويلها جميعاً إلى أخطاء #N/A، نظراً لأن أي عملية ضرب أو جمع تتضمن قيمة غير متوفرة تُنتج حتماً قيمة غير متوفرة.
لتطويق هذه الحالات وضمان استمرارية النماذج الرياضية، تبرز الممارسة الاحترافية المتمثلة في تغليف النطاقات بدالة IFERROR أو دالة IFNA؛ حيث يتم استبدال القيم غير المتاحة بأصفار عددية كعناصر محايدة للجمع عبر صيغ مدمجة مثل:
=MMULT(ARRAYFORMULA(IFNA(A2:C10, 0)), D2:F4)
تضمن هذه الصياغة الوقائية تحييد أثر القيم المفقودة تلقائياً، وتمنع تصاعد الأخطاء البنائية، مما يحافظ على ثبات النموذج التشغيلي ودقة النتائج النهائية وموثوقيتها عند معالجة كميات هائلة من البيانات المتغيرة.
9. التطبيقات الإحصائية والتحليلية المتقدمة لضرب المصفوفات
9.1 تطبيق MMULT في حساب معاملات الانحدار الخطي المتعدد
يُمثل الانحدار الخطي المتعدد (Multiple Linear Regression) حجر الزاوية في القياس الاقتصادي والإحصاء التطبيقي، حيث يهدف إلى تقدير قيم متغير تابع (Y) بناءً على سلوك مجموعة من المتغيرات المستقلة المفسرة (X). في النظرية المصفوفية لطريقة المربعات الصغرى العادية (Ordinary Least Squares – OLS)، تُحل معادلة الانحدار وتُستخرج مصفوفة المعاملات البيتا (β) عبر الصيغة الرياضية المصفوفية الشهيرة والمعيارية: β = (XᵀX)⁻¹ XᵀY، حيث تمثل Xᵀ منقول مصفوفة المتغيرات، و(XᵀX)⁻¹ مقلوب حاصل ضرب المنقول في المصفوفة ذاتها.
تتيح جداول بيانات جوجل تنفيذ هذا الحل الرياضي الكامل في معادلة سحابية مدمجة فائقة الرشاقة، دون الحاجة إلى تشغيل برمجيات إحصائية ثقيلة. يتحقق ذلك من خلال دمج دالة MMULT مع دالة مقلوب المصفوفة MINVERSE ودالة التدوير TRANSPOSE في خلية واحدة كما يلي:
=MMULT(MINVERSE(MMULT(TRANSPOSE(X), X)), MMULT(TRANSPOSE(X), Y))
في هذه الصيغة التركيبية، تتولى دالة MMULT الداخلية ضرب منقول المصفوفة X في المصفوفة X، ثم تحسب دالة MINVERSE المقلوب الرياضي لتلك المصفوفة المربعة المتولدة، لتقوم بعد ذلك دالة MMULT الخارجية بضرب المقلوب في حاصل ضرب منقول X في متجه القيم التابعة Y. وتُسفر هذه العملية في جزء من الثانية عن استخراج متجه معاملات الانحدار الشامل، بما في ذلك الحد الثابت (Intercept) وميول المتغيرات المتعددة، وبدقة رقمية تضاهي مخرجات دالة LINEST التحليلية المدمجة في جداول جوجل وحزم البرمجة الإحصائية المتقدمة.
علاوة على ذلك، يتيح هذا التمثيل المصفوفي حساب القيم التنبؤية المتوقعة (Ŷ) دفعة واحدة عن طريق ضرب مصفوفة المتغيرات المستقلة في متجه المعاملات المستخرج حديثاً =MMULT(X, Beta)، وحساب متجه البواقي وأخطاء التقدير بمجرد طرح القيم التنبؤية من القيم الفعلية، مما يمنح الباحثين أداة سريعة ومرنة لتقييم النماذج التنبؤية واختبار فرضياتها الجوهرية مباشرة من متصفح الإنترنت.
9.2 إنشاء مصفوفات التغاير والارتباط للبيانات متعددة المتغيرات
تعتبر مصفوفة التباين والتباين المشترك (Variance-Covariance Matrix) ومصفوفة ارتباط بيرسون (Pearson Correlation Matrix) من أهم الأدوات التشخيصية في تحليل البيانات متعددة المتغيرات، وإدارة المحافظ المالية، وتحليل المكونات الرئيسية (PCA). تُظهر هذه المصفوفات المتناظرة طبيعة وقوة واتجاه العلاقات الخطية التبادلية بين كل زوج من المتغيرات المدروسة في البحث، وتعتمد خوارزمية بنائها اعتماداً كلياً على الجداء النقطي لجبر المصفوفات.
لإنشاء هذه المصفوفة في جداول بيانات جوجل باستخدام دالة MMULT، تبدأ الخطوة التمهيدية الأولى بتوسيط البيانات الأصلية (Data Centering)؛ وذلك بطرح المتوسط الحسابي لكل متغير من قيمه الفردية لإنتاج مصفوفة انحرافات ذات متوسط صفري، ونرمز لها بالرمز Xc. بعد ذلك، يتم حساب مصفوفة التغاير من خلال ضرب مقلوب مصفوفة الانحرافات في المصفوفة ذاتها، ثم قسمة الناتج التراكمي على درجات الحرية (N – 1)، حيث يمثل N حجم العينة، وفق الصيغة المصفوفية الآتية:
=ARRAYFORMULA(MMULT(TRANSPOSE(Xc), Xc) / (COUNT(A2:A) - 1))
ينتج عن هذه المعادلة مصفوفة مربعة متناظرة الأبعاد تمثل عناصر قطرها الرئيسي تباينات المتغيرات الفردية، بينما تمثل العناصر الواقعة خارج القطر قيم التباين المشترك بين كل متغيرين متقاطعين. ولتحويل هذه القيم إلى مصفوفة ارتباط معيارية تتراوح قيم عناصرها بدقة بين -1 و +1، يمكن قسمة كل عنصر تغاير على حاصل ضرب الانحرافين المعياريين للمتغيرين المتقابلين باستخدام ضرب مصفوفي قياسي إضافي، مما يولد خارطة رقمية متكاملة للعلاقات الإحصائية البينية، توفر على المحلل الجهد المضني لبناء معادلات ارتباط ثنائية منفصلة لكل زوج من أزواج المتغيرات المتشابكة.
9.3 استخدام المصفوفات في نمذجة البيانات السلوكية واستجابات المقاييس
في العلوم السلوكية، وبحوث التسويق، والتقييم النفسي والتربوي، تُجمع البيانات عادة عبر استبانات تتضمن مقاييس ليكرت (Likert Scales) المتعددة، حيث يجيب مئات أو آلاف المستجيبين على حزم من الأسئلة والفقرات التي تقيس أبعاداً سلوكية أو مهارية متعددة. ويكمن التحدي الإحصائي التقليدي في ضرورة حساب الدرجات الكلية الموزونة لكل مستجيب، وتطبيق أوزان نسبية متباينة على الفقرات استناداً إلى أهميتها أو صعوبتها أو تشبعها العاملي المستخرج من نماذج التحليل العاملي التوكيدي.
بدلاً من إرهاق ورقة العمل بآلاف المعادلات الحسابية المكررة في كل سطر من أسطر المفحوصين، تتيح دالة MMULT حل هذه المعضلة الحسابية في خطوة تشغيلية واحدة فائقة السرعة؛ وذلك من خلال تنظيم استجابات المستجيبين الخام في مصفوفة ضخمة R بأبعاد (N × K)، حيث يمثل N عدد المفحوصين وK عدد الفقرات، وتنظيم أوزان الفقرات للأبعاد السلوكية المختلفة في مصفوفة أوزان مستطيلة W بأبعاد (K × M)، حيث يمثل M عدد الأبعاد المستهدفة بالقياس. وبكتابة الصيغة:
=MMULT(R, W)
تنسكب في ورقة العمل فوراً مصفوفة نهائية أنيقة بأبعاد (N × M) تحتوي على الدرجات التراكمية الموزونة لجميع المفحوصين عبر كافة الأبعاد المعيارية دون أي تكرار يدوي للصيغ. علاوة على ذلك، يسهل هذا التمثيل التحليلي السريع استخراج مؤشرات الاتساق الداخلي للمقاييس، مثل معامل ألفا كرونباخ أو معاملات الثبات المركب، من خلال استخلاص تباينات البنود والمجاميع الكلية مباشرة من المصفوفة المحسوبة، مما يختزل زمن المعالجة الإحصائية من ساعات عمل يدوية إلى ثوانٍ معدودة داخل جداول بيانات جوجل.
10. التقنيات المنطقية والشرطية المتقدمة باستخدام دالة MMULT
10.1 بناء بدائل فائقة السرعة لدوال الجمع الشرطي المتعدد (SUMIFS البديلة)
على الرغم من الانتشار الواسع لدالة SUMIFS في جداول البيانات لتجميع الأرقام استناداً إلى معايير مشروطة، إلا أنها تعاني من هبوط حاد في الكفاءة الحسابية وتراجع ملحوظ في سرعة استجابة ورقة العمل عند تطبيقها على قواعد بيانات ضخمة تمتد لعشرات الآلاف من الصفوف وتتضمن شروطاً أفقية ورأسية متقاطعة. يرجع هذا البطء إلى أن محرك الجداول يقوم بفحص الشروط سطراً بسطر وبشكل تكراري مجهد للذاكرة، وهنا تبرز دالة MMULT كبديل جبري فائق السرعة يعتمد على المنطق البولياني المصفوفي (Boolean Matrix Logic).
تعتمد هذه التقنية المتقدمة على توليد مصفوفة منطقية ثنائية تتألف حصراً من الأصفار والآحاد؛ حيث تُجرى اختبارات المقارنة الشرطية باستخدام دالة ARRAYFORMULA، وتُضرب النتائج المنطقية (TRUE/FALSE) في القيمة العددية 1 لتحويلها إلى آحاد (تحقق الشرط) وأصفار (عدم تحقق الشرط). فإذا أردنا جمع قيم المبيعات في النطاق C2:C1000 استناداً إلى تحقق ثلاثة شروط متزامنة في الأعمدة A وB وتاريخ المعاملة، نقوم ببناء مصفوفة الشروط وضربها جبرياً عبر MMULT في متجه الآحاد لتوليد مصفوفة الترشيح، ثم ضربها في متجه القيم المالية، وفق بنية تركيبية متطورة:
=MMULT(ARRAYFORMULA((A2:A1000="فرع الرياض") * (B2:B1000="إلكترونيات") * (C2:C1000)), {1})
تتفوق هذه المقاربة المصفوفية على دوال الجمع الكلاسيكية لكونها تعالج البيانات دفعة واحدة في خطوة حسابية متوازية داخل خوادم جوجل، متجاوزة عنق الزجاجة الناتج عن التكرار الصفي. كما تتيح للمحلل تطبيق شروط منطقية شديدة التعقيد تجمع بين المعاملات المنطقية (AND) و(OR) في معادلة واحدة رشيقة يصعب أو يستحيل تنفيذها بدالة SUMIFS التقليدية دون إنشاء أعمدة مساعدة معقدة تشوه التنسيق العام لورقة العمل.
10.2 إجراء عمليات الجمع التراكمي وتوليد السلاسل الزمنية
يُمثل الجمع التراكمي (Running Total أو Cumulative Sum) أحد المتطلبات الإحصائية والمالية الدورية في تحليل السلاسل الزمنية، ومتابعة نمو التدفقات النقدية، ورصد وتيرة الإنجاز التراكمي للمشاريع. وتتمثل الطريقة التقليدية السائدة في كتابة معادلة جمع نسبي في الخلية الأولى ثم سحبها رأسياً على طول العمود، وهي طريقة هشة برمجياً وتكون عرضة للتلف الفوري عند حذف أي صف وسيط أو إعادة ترتيب البيانات وفرزها.
يمكن التغلب على هذا القصور بصورة جذرية عبر الجبر الخطي؛ وذلك بتوظيف دالة MMULT وضرب متجه القيم المالية أو العددية في “مصفوفة مثلثة سفلية” (Lower Triangular Matrix) تتكون جميع عناصر قطرها الرئيسي وما تحته من آحاد، بينما تكون كافة عناصرها الواقعة فوق القطر الرئيسي أصفاراً. عند ضرب هذه المصفوفة المثلثة في متجه بيانات عمودي، ينتج رياضياً الجمع التراكمي الدقيق لكل صف بصورة آلية ومستقلة تماماً. ويمكن توليد هذه المصفوفة المثلثة بصورة ديناميكية مدمجة داخل الصيغة دون حجز خلايا في الورقة، كما توضحه المعادلة المتقدمة الآتية:
=MMULT(ARRAYFORMULA(N(ROW(A2:A20) >= TRANSPOSE(ROW(A2:A20)))), A2:A20)
في هذه المعادلة المبتكرة، يقوم التعبير ROW(A2:A20) >= TRANSPOSE(ROW(A2:A20)) بمقارنة أرقام الصفوف رأسياً وأفقياً لتوليد شبكة منطقية مربعة من قيم TRUE وFALSE، ثم تقوم الدالة N() بتحويلها إلى مصفوفة رقمية مثلثة من الآحاد والأصفار. بعد ذلك، تضرب دالة MMULT هذه المصفوفة في النطاق الرقمي A2:A20، لتنسكب متسلسلة المجاميع التراكمية في الخلية المستهدفة كاملة في خطوة واحدة، ودون الحاجة لسحب أي معادلات، مع حصانة تامة ضد أخطاء حذف الصفوف أو الفرز المتغير.
10.3 أنظمة ترجيح وتقييم القرارات متعددة المعايير (MCDA)
تُعد منهجيات تحليل القرارات متعددة المعايير (Multi-Criteria Decision Analysis – MCDA)، مثل أسلوب التحليل الهرمي (AHP) ونماذج التقييم الترجيحي البسيط، من أهم الأدوات الإدارية والاستراتيجية لاختيار البدائل المثلى في ظل وجود معايير متضاربة وأوزان نسبية متباينة للأهمية. تتطلب هذه النماذج تنظيم درجات تقييم البدائل المتنافسة في مصفوفة قرار أساسية، وضربها في أوزان المعايير المعتمدة لاستخراج الدرجة التفضيلية الإجمالية لكل بديل.
باستخدام دالة MMULT، يتحول هذا النظام التقييمي المعقد إلى عملية حسابية متكاملة وفورية. لنفترض أن لدينا 5 مشاريع استثمارية بديلة يتم تقييمها بناءً على 4 معايير (العائد المالي، المخاطرة، الأثر البيئي، الجدوى الزمنية) مسجلة في مصفوفة القرار B2:E6 بأبعاد (5 × 4)، بينما وُضعت الأوزان النسبية لهذه المعايير الأربعة في متجه عمودي G2:G5 بأبعاد (4 × 1). يتم استخراج التقييم الإجمالي المرجح لجميع المشاريع في الخلية I2 عبر كتابة الصيغة البسيطة:
=MMULT(B2:E6, G2:G5)
تنسكب الدرجات النهائية المرجحة للمشاريع الخمسة فوراً في النطاق I2:I6. وتكمن الميزة الاستراتيجية الكبرى لهذه المقاربة المصفوفية في تيسير إجراء “تحليل الحساسية” (Sensitivity Analysis)؛ إذ يمكن لصانع القرار تعديل وزن أي معيار من المعايير في النطاق G2:G5، ليعيد محرك الجداول ترتيب درجات البدائل التنافسية لحظياً.
ويمكن تتويج هذا النموذج بدمج نتائج MMULT مع دالة الترتيب القياسية RANK؛ مثل =ARRAYFORMULA(RANK(MMULT(B2:E6, G2:G5), MMULT(B2:E6, G2:G5)))، لتوليد ترتيب البدائل الاستثمارية تلقائياً من المركز الأول إلى الأخير، مما يمنح الإدارة العليا أداة رقمية تفاعلية وقوية لاتخاذ القرارات الإستراتيجية بكفاءة وموثوقية بالغة.
11. أفضل الممارسات لتحسين الأداء وتوثيق النماذج المصفوفية
11.1 استراتيجيات تقليل استهلاك الذاكرة وتسريع الحسابات السحابية
على الرغم من القوة الحسابية التي تتمتع بها السحابة الإلكترونية لجداول بيانات جوجل، إلا أن العمليات المصفوفية المعقدة، وبخاصة دالة MMULT، تستهلك قدراً كبيراً من الذاكرة اللحظية المخصصة لورقة العمل نظراً لأن التعقيد الزمني لخوارزمية ضرب المصفوفات القياسية يقترب من O(N³). لذلك، تقتضي الحكمة الهندسية اتباع استراتيجيات صارمة لترشيد استهلاك الموارد السحابية ومنع حدوث بطء في التحديث أو تجميد لورقة العمل.
أولى هذه الممارسات وأكثرها أهمية هي تجنب استخدام النطاقات اللانهائية المفتوحة (مثل A:A أو B2:B) داخل دالة MMULT. فعند الإشارة إلى عمود مفتوح بالكامل، يُجبر المحرك الحسابي على تخصيص مصفوفة افتراضية تمتد إلى الحد الأقصى للصفوف في الورقة (والذي قد يصل إلى 50,000 صف أو أكثر)، مما يؤدي إلى محاولة ضرب مصفوفات عملاقة تحتوي ملايين الخلايا الفارغة، وهو ما يتسبب في انهيار الحساب أو ظهور رسائل تفيد بتجاوز حدود الذاكرة المتاحة. بدلاً من ذلك، يجب حصر النطاقات بدقة متناهية على الخلايا المشغولة فعلياً (مثل A2:A150).
كما يُنصح بشدة بتقليل الاعتماد على الدوال المتقلبة (Volatile Functions) كدوال NOW() وTODAY() وRAND() وOFFSET() داخل مصفوفات المدخلات؛ لأن هذه الدوال تجبر محرك الجداول على إعادة حساب مصفوفة الضرب بالكامل مع كل نقرة فأس أو تعديل عابر في أي خلية أخرى في ورقة العمل. ويُفضل استبدال دوال الإزاحة بدالة INDEX المستقرة التي لا تفرض إعادة حساب متكررة، مما يحافظ على استقرار استجابة المنصة وسرعتها الفائقة.
11.2 التوثيق المعماري للنطاقات وحماية الصيغ الرياضية
تتسم النماذج الرياضية المبنية على ضرب المصفوفات بدرجة عالية من الحساسية البنائية؛ حيث إن أي تغيير غير مقصود في أبعاد المدخلات أو الكتابة فوق خلية في مسار الانسكاب يؤدي إلى تعطل النموذج بالكامل. ولتفادي هذه المخاطر في بيئات العمل التشاركية، يجب تبني منهجية توثيق معماري وحماية صارمة للصيغ والنطاقات التشغيلية.
تتمثل الخطوة التوثيقية الأولى في إدراج تعليقات برمجية وملاحظات إيضاحية (Notes and Comments) ملاصقة للخلية الجذرية الحاضنة لدالة MMULT. يجب أن يوضح التوثيق بوضوح الغرض الجبري للعملية، وأبعاد المصفوفات المشتركة، والنطاق الجغرافي المتوقع لتمدد مصفوفة المخرجات. كما يُنصح باتباع نظام ترميز لوني معتمد دولياً؛ كأن تُخصص خلفيات رمادية خفيفة أو زرقاء داكنة ذات نص محمي للخلايا التي تحتوي على معادلات مصفوفية، لتمييزها بصرياً عن خلايا المدخلات اليدوية المفتوحة للمستخدمين.
علاوة على ذلك، يجب تفعيل ميزة “حماية النطاقات وأوراق العمل” (Protected Sheets and Ranges) المدمجة في جداول جوجل؛ حيث يتم قفل الخلايا الحاضنة لدوال MMULT وخلايا التمدد التابعة لها ومنع تعديلها إلا من قبل مدراء النموذج المعتمدين. هذا الإجراء يمنع المستخدمين غير المتخصصين من الكتابة في مسارات الانسكاب دون قصد أو تخريب بنية الصيغ الرياضية، مما يضمن استقرار النظم التحليلية وديمومة عملها في المؤسسات دون انقطاع.
11.3 إدارة التحديثات المستمرة ومرونة النماذج الرياضية
تتطلب استدامة النماذج الحسابية مرونة هيكلية تتيح استيعاب التوسعات المستمرة في البيانات دون الحاجة للتدخل اليدوي المتكرر لتعديل إحداثيات المعادلات المصفوفية. ولتحقيق هذه المرونة، يمكن دمج دالة MMULT مع دوال المراجع الديناميكية لإنشاء “نطاقات مطاطية” تتسع وتضيق تلقائياً تبعاً لحجم البيانات المتدفقة إلى ورقة العمل.
يمكن تحقيق ذلك ببراعة من خلال توظيف دالة INDEX ودالة COUNTA لتحديد نهاية النطاق الفعلي بدقة، كأن نكتب مرجع المصفوفة الأولى بالشكل التالي: A2:INDEX(A2:A, COUNTA(A2:A)). تضمن هذه الصيغة أن النطاق الممرر إلى دالة الضرب يمتد بالضبط حتى آخر صف مأهول بالبيانات، ويتوسع فور إضافة أي مدخلات جديدة في أسفل الجدول، مع الحفاظ الدائم على التوافق البعدي وتجنب احتساب الخلايا الفارغة كمدخلات مشوهة للعمليات الحسابية.
كما يُستحسن بناء خلايا مراقبة وتدقيق آلي (Automated Audit Cells) في مكان بارز من ورقة العمل؛ حيث تحتوي هذه الخلايا على معادلات منطقية بسيطة تقارن أبعاد المصفوفات وتفحص صحة التوافق الرياضي بشكل استباقي؛ مثل:
=IF(COLUMNS(المصفوفة1)=ROWS(المصفوفة2), "النظام متوافق بعدياً", "تحذير: خلل في الأبعاد!")
توفر هذه المؤشرات التنبيهية خط دفاع مبكر يتيح لمدير النموذج رصد أي خلل يطرأ على تدفق البيانات ومعالجته فوراً قبل اعتماده في التقارير والقرارات الاستراتيجية.
12. مقارنة شاملة بين جداول بيانات جوجل وبيئات الحوسبة الأخرى
12.1 مقارنة دالة MMULT بين جداول جوجل وبرنامج Microsoft Excel
تشترك دالة MMULT في الاسم والوظيفة الرياضية الأساسية بين جداول بيانات جوجل وبرنامج مايكروسوفت إكسيل (Microsoft Excel)، إلا أن هناك فروقاً تشغيلية وتاريخية هامة في محرك المعالجة تؤثر على تجربة الاستخدام ومستوى التوافق البرمجي بين المنصتين.
تاريخياً، تميزت جداول بيانات جوجل بتبني محرك المصفوفات الديناميكية منذ مراحلها الأولى؛ حيث كانت الدالة قادرة دوماً على التمدد التلقائي في الخلايا دون إجراءات إضافية، بينما كان مستخدمو الإصدارات التقليدية من برنامج إكسيل (ما قبل تحديث إكسيل 365 ومحرك Dynamic Arrays في 2019) ملزمين بتحديد نطاق المخرجات بالكامل مسبقاً، وكتابة الدالة، ثم الضغط الإلزامي على الاختصار الثلاثي المعقد Ctrl + Shift + Enter لحفظها كصيغة مصفوفية كلاسيكية محاطة بأقواس معقوفة افتراضية (CSE Formula). وعلى الرغم من أن إكسيل الحديث تبنى ميزة التمدد التلقائي المماثلة لجداول جوجل، إلا أن فتح ملفات الجداول السحابية وتصديرها إلى إصدارات إكسيل القديمة لا يزال يولد مشاكل توافقية قد تعطل امتداد المصفوفات ما لم تُحدث تلك البرمجيات.
من حيث الأداء الحسابي وسعة البيانات، يتفوق إكسيل المكتبي عند التعامل مع المصفوفات الضخمة جداً التي تتجاوز مئات الآلاف من العناصر بفضل اعتماده المباشر على كامل المعالج المادي والذاكرة العشوائية للجهاز المحلي، بينما تخضع جداول جوجل لحدود تشغيل سحابية محددة للحفاظ على استقرار الخوادم المشتركة. ومع ذلك، تتفوق جداول بيانات جوجل تفوقاً كاسحاً في مجالات العمل التشاركي اللحظي، والتكامل السلس مع واجهات الويب، وحفظ النسخ الاحتياطية السحابية بصورة تلقائية تقضي على مخاطر فقدان البيانات الحسابية المعقدة.
12.2 حدود جداول البيانات مقارنة بلغات البرمجة المتخصصة (Python/NumPy)
على الرغم من الإمكانيات الكبيرة التي توفرها دالة MMULT، إلا أن جداول البيانات تظل في النهاية أدوات مخصصة للتحليل المكتبي ونمذجة الأعمال، مما يفرض حدوداً تقنية واضحة عند مقارنتها ببيئات البرمجة العلمية المتخصصة مثل لغة بايثون ومكتبتها الرياضية الرائدة NumPy أو لغة R أو بيئة MATLAB.
تتمثل الفجوة الأولى في الكفاءة الحسابية والقدرة على التوسع؛ فمكتبة NumPy كُتبت بلغة C المحسنة ومبنية على مكتبات الجبر الخطي المعيارية عالية الأداء مثل BLAS وLAPACK، وتستفيد من المعالجة المتوازية متعددة الأنوية (Multi-threading) واستدعاء معالجات الرسوميات (GPUs) لتسريع العمليات الحسابية، مما يتيح لها ضرب مصفوفات تتألف من ملايين الصفوف والأعمدة في أجزاء من الثانية، وهو ما يستحيل تنفيذه داخل جداول بيانات جوجل التي تفرض قيوداً على عدد الخلايا الإجمالي في المصنف لا يتجاوز 10 ملايين خلية، مع بطء ملحوظ في الحساب عند الاقتراب من تلك السقوف العليا.
الفجوة الثانية تتعلق بـ الرتب البعدية المتقدمة؛ فجداول البيانات مقيدة بطبيعتها الشبكية في فضاء ثنائي الأبعاد (صفوف وأعمدة)، مما يجعلها عاجزة عن تمثيل ومعالجة المصفوفات متعددة الأبعاد الفائقة أو ما يُعرف بالموترات (Tensors) ذات الأبعاد الثلاثية والرباعية وما فوق، والتي تُعد الأساس المطلق لنماذج الذكاء الاصطناعي الحديث ومعالجة الصور واللغات الطبيعية. لذلك، يجب على المحلل إدراك نقطة التحول؛ حيث تُعد جداول جوجل الأداة المثلى لبناء النماذج التوضيحية السريعة والتقارير المالية التفاعلية، ولكن بمجرد تضخم البيانات لمستويات التدفق الضخم (Big Data) أو الحاجة لبناء شبكات تعلم عميق، يصبح الانتقال إلى بيئات البرمجة الخالصة خياراً هندسياً حتمياً لا بديل عنه.
12.3 التكامل الهجين عبر Google Apps Script والواجهات البرمجية
لردم الفجوة بين سهولة الواجهة المرئية لجداول بيانات جوجل ومتطلبات المعالجة البرمجية المعقدة، توفر جوجل منصتها البرمجية السحابية المدمجة Google Apps Script المبنية على لغة جافا سكريبت الحديثة. تتيح هذه البيئة الهجينة للمطورين كتابة دوال مخصصة (Custom Functions)، وأتمتة العمليات الحسابية العميقة، وربط جداول البيانات بخوارزميات خارجية متطورة تنفذ العمليات الحسابية الكبرى ثم تعيد ضخ النتائج جاهزة في ورقة العمل.
يمكن للمحلل، على سبيل المثال، كتابة برنامج نصي يقوم بفحص المصفوفات الضخمة وتطهيرها برمجياً قبل استدعاء دالة MMULT، أو تنفيذ عمليات جبرية لا تدعمها جداول البيانات افتراضياً؛ مثل تحليل القيم الذاتية والمتجهات الذاتية (Eigenvalues and Eigenvectors)، أو تفكيك المصفوفات بطريقة القيمة المفردة (Singular Value Decomposition – SVD). يتميز هذا النهج بنقل العبء الحسابي المجهد إلى معالجات برمجية مخصصة، مع الحفاظ على ورقة عمل الجداول كواجهة إدخال وعرض مرئية وتفاعلية ومريحة للمستخدم العادي.
علاوة على ذلك، يمكن توظيف Apps Script لأتمتة دورات تحديث النماذج المصفوفية؛ كأن يقوم البرنامج باستدعاء بيانات المبيعات عبر واجهة برمجة تطبيقات خارجية (API) في تمام منتصف الليل، وتحديث مصفوفات المدخلات، وتشغيل معادلات الضرب والترجيح آلياً، ثم إرسال تقرير مصور لنتائج المصفوفات الإحصائية النهائية عبر البريد الإلكتروني إلى متخذي القرار. هذا التكامل الهجين يحقق التوازن الاستراتيجي الأمثل بين بساطة الاستخدام المكتبي وقوة الأتمتة البرمجية السحابية المتقدمة، مما يحول جداول جوجل إلى نظام تشغيلي متكامل للأعمال والحوسبة التحليلية المتقدمة.
خاتمة
تُعد دالة ضرب المصفوفات MMULT في جداول بيانات جوجل تجسيداً عملياً لقوة الجبر الخطي وكفاءة المعالجة السحابية الحديثة. فمن خلال الفهم العميق لأسس التوافق البعدي والتركيب النحوي الدقيق للدالة، يتحول المستخدم من مرحلة إجراء العمليات الحسابية التكرارية البسيطة إلى مرحلة النمذجة الرياضية المتقدمة القادرة على معالجة النظم متعددة الأبعاد وحل المسائل الإحصائية المعقدة برشاقة فائقة داخل منصة عمل تشاركية حية.
لقد استعرضنا عبر هذا الدليل الشامل مساراً متكاملاً يبدأ من الأسس النظرية للجداء النقطي، مروراً بالتطبيقات التفصيلية لمصفوفات ثنائية وثلاثية الرتبة والمستطيلة، وصولاً إلى حلول الأخطاء التقنية المعقدة، وبناء البدائل الجبرية السريعة لدوال الجمع الشرطي، وتقدير نماذج الانحدار الخطي المتعدد. إن الالتزام بأفضل الممارسات الهندسية في توثيق النطاقات وتجنب المراجع اللانهائية وحماية الصيغ الرياضية يضمن للمحللين بناء نماذج مرنة ومستقرة، تواكب متطلبات اتخاذ القرار المدفوع بالبيانات، وتستفيد بأقصى درجة من القدرات السحابية المتطورة لجداول بيانات جوجل.
المراجع
- Google. (2024). MMULT function: Multiplies two matrices. Google Docs Editors Help. https://support.google.com/docs/answer/3094292?hl=ar
- Strang, G. (2016). Introduction to Linear Algebra (5th ed.). Wellesley-Cambridge Press.
- Lay, D. C., Lay, S. R., & McDonald, J. J. (2020). Linear Algebra and Its Applications (6th ed.). Pearson.
- Walkenbach, J. (2015). Excel 2016 Formulas. John Wiley & Sons.
- Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … & Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357-362. https://doi.org/10.1038/s41586-020-2649-2
- Anton, H., & Rorres, C. (2014). Elementary Linear Algebra: Applications Version (11th ed.). Wiley.
- Greene, W. H. (2018). Econometric Analysis (8th ed.). Pearson.