إكسل: حساب متوسط الأرقام المفصولة بفواصل

دليل أكاديمي شامل يشرح كيفية حساب المتوسط الحسابي للأرقام المفصولة بفواصل داخل خلية واحدة في برنامج إكسل باستخدام الصيغ الرياضية والمصفوفات المتقدمة.

Mohammed looti أكاديمي وباحث متخصص في علم النفس
تاريخ النشر
تمت المراجعة العلمية · د. مروة عبد العظيم · 23 أكتوبر، 2026
مراجعة وتدقيق علمي معتمد تاريخ التدقيق: 23 أكتوبر، 2026
د. مروة عبد العظيم دكتوراه في علم النفس
عضو هيئة التدريس • جامعة كربلاء
معايير التدقيق والاعتماد السريري

يخضع هذا المحتوى لمعايير ضبط الجودة والتدقيق العلمي والأكاديمي الصارمة في شبكة علم النفس العربي، لضمان صحة المعلومات ودقتها السريرية ومطابقتها لأحدث الأدلة والبراهين الصادرة عن الجمعيات النفسية والطبية المعتمدة (APA / WHO).

تمثل معالجة البيانات النصية التي تخفي في طياتها قيماً كمية واحدة من أكثر التحديات التقنية شيوعاً وإرباكاً في بيئات جداول البيانات المتقدمة، لا سيما برنامج مايكروسوفت إكسل (Microsoft Excel). فعلى الرغم من أن الجداول الإلكترونية صُممت في الأصل للتعامل مع البيانات المهيكلة التي تخضع لقواعد الاتساق الرياضي، فإن الواقع التطبيقي لجمع البيانات واستخراجها من الأنظمة البرمجية المختلفة غالباً ما يفرض واقعاً مغايراً؛ حيث تتكدس الأرقام داخل خلية فردية واحدة في صورة سلسلة نصية مفصولة بفواصل، مثل درجات استجابات مقاييس علم النفس أو مخرجات الاستبيانات أو سجلات المعاملات الزمنية المجمعة.

يقف المحلل الإحصائي أو المهندس التقني أمام معضلة حقيقية عندما يُطلب منه استخراج المؤشرات الإحصائية المركزية، وعلى رأسها الوسط الحسابي، من هذه الخلايا المركبة دون تفكيك الهيكل العام للمصنف. وتعود جذور التحليل الرياضي للمتوسط الحسابي كمقدر أمثل لتقليل الخطأ القياسي في القياسات التجريبية إلى الإسهامات التأسيسية التي وضعها توماس سيمبسون (Thomas Simpson) عام 1755 وكارل فريدريش جاوس (Carl Friedrich Gauss) عام 1809، وهي الأسس ذاتها التي تعتمد عليها خوارزميات الحوسبة الحديثة، إلا أن عجز الدوال التقليدية عن اختراق الغلاف النصي للخلية يعيق هذا الاستدلال الرياضي الرصين ما لم تُسخَّر حلول حسابية وتحويلية متقدمة.

يتناول هذا المرجع الأكاديمي الشامل التشريح الهندسي والمنطقي الدقيق لمعالجة وتفكيك السلاسل النصية الرقمية داخل إكسل وحساب متوسطها الحسابي بدقة متناهية؛ بدءاً من تفكيك المعادلة المصفوفية الكلاسيكية المعقدة التي تعتمد على تضافر دوال مثل SUBSTITUTE و REPT و MID و ROW و INDIRECT، وصولاً إلى أحدث الدوال الديناميكية في بيئة Microsoft 365 مثل TEXTSPLIT، مع معالجة شاملة لبدائل التشغيل الآلي عبر Power Query ولغة VBA، وضوابط كفاءة الذاكرة وتصميم الجداول النظيفة.

1. مقدمة عامة حول بنية البيانات النصية والمشاكل الحسابية في إكسل

1.1 التمييز الرياضي والبرمجي بين النصوص والقيم الرقمية

يستند محرك المعالجة الرياضية في برمجية إكسل إلى نظام صارم لتمييز الأنواع البيانية (Data Typing)، حيث تصنف المدخلات في مستويين رئيسيين: القيم الكمية (Numeric Values) والسلاسل المحرفية (String Literals). بمجرد إدراج أي محرف غير رقمي داخل الخلية—سواء كان مسافة بيضاء أو حرفاً أبجدياً أو فاصلة ترقيم عادية—يقوم محرك إكسل فوراً وبصورة تلقائية بإعادة توصيف المحتوى بأكمله وتحويله من الصيغة الرقمية القابلة للمعالجة الرياضية إلى سلسلة نصية صلبة، تُحاذى افتراضياً إلى الجهة اليسرى (أو اليمنى وفق واجهة اللغة)، وتُعامل في الذاكرة كسلسلة من الرموز المشفرة بنظام ترميز موحد دون أي دلالة كمية ذاتية.

يترتب على هذا التحول القسري فقدان تام وفوري للخصائص الجبرية لتلك القيم؛ فالرقم “5” عندما يتواجد منفرداً في الخلية يمثل كمية جبرية تقبل الجمع والضرب والاستدلال الموضعي، لكنه حين يُدرج ضمن السلسلة “5, 10, 15” يتحول إلى مجرد بايت أو رمز رمزي بحت (Glyph) يفتقر إلى البعد الرياضي، حيث يتعامل معه مصنف العمل كوحدة نصية متكاملة غير قابلة للتجزئة التلقائية. يؤدي هذا السلوك التخزيني إلى شلل شبه كامل في العمليات الإحصائية الآلية المتسلسلة؛ إذ تعجز آليات الجدولة الذاتية عن استدعاء الخواص الإحصائية لهذه الأرقام المحتجزة، مما يُربك نماذج التغذية الحسابية اللاحقة ويهدد تكامل البنية التحليلية للمشروع برمته.

1.2 أسباب ظهور خطأ التقسيم على صفر (#DIV/0!) عند استخدام دالة AVERAGE المباشرة

عندما يوجه المستخدم دالة المتوسط الحسابي القياسية دالة AVERAGE نحو خلية مفردة تحتوي على أرقام مفصولة بفواصل، مثل الخلية المشتملة على النص “2,4,6”، فإن النتيجة الحتمية التي يقذف بها محرك الحساب هي رمز الخطأ الشهير #DIV/0!. لا ينبع هذا الخطأ من خلل في المنطق الرياضي للقسمة لدى المستخدم، بل يعود إلى الخوارزمية الداخلية الصارمة التي بُنيت عليها دالة AVERAGE؛ حيث صُممت هذه الدالة لتقوم بمسح النطاق المستهدف وتصفية المدخلات عبر استبعاد النصوص والقيم المنطقية والخلايا الفارغة استبعاداً كلياً، والتركيز الحصري على الأرقام الحقيقية المخزنة بتنسيق عددي خالص.

في الحالة محل الدراسة، تفشل دالة AVERAGE في العثور على أي رقم حقيقي داخل الخلية؛ لأن الخلية برمتها تم تصنيفها مسبقاً كنص واحد متصل. ومن الناحية الهندسية لعمل الدالة، يُعرّف المتوسط الحسابي بأنه حاصل قسمة مجموع القيم على عددها الحسابي الكلي. وحيث إن الدالة تجد أن عدد العناصر الرقمية الصالحة يساوي تماماً الصفر (n = 0)، فإنها تحاول داخلياً تنفيذ عملية قسمة غير معرفة رياضياً (0 مقسوماً على 0)، مما يُطلق استثناء التقسيم على صفر البرمجي. يوضح هذا القصور أن الدوال الإحصائية الجاهزة لا تمتلك ذكاءً اصطلاحياً لتشريح النصوص تلقائياً واستخلاص الأرقام منها، بل تستلزم وسائط تحويلية مصفوفية مسبقة تعيد تأهيل النصوص وتفكيكها إلى مصفوفات رقمية مستقلة قبل التمرير النهائي لمؤشر الحساب.

1.3 سياقات ورود البيانات المجمعة في خلية واحدة وتحديات معالجتها

تفرض البيئات التطبيقية للبيانات في مجالات مثل العلوم النفسية والاجتماعية وسلاسل الإمداد واقعاً تتكرر فيه ظاهرة الخلايا المدمجة نصياً. فكثيراً ما تُصدر الاستبيانات الإلكترونية، مثل نماذج Google Forms أو Qualtrics، إجابات أسئلة الاختيار من متعدد أو مقاييس ليكرت المتعددة في هيئة مصفوفة مدمجة داخل حقل بيانات مفرد بصيغة محددة بفواصل (Comma-Separated Values درون-خلية). كما تتسبب عمليات التصدير من قواعد البيانات العتيقة (Legacy SQL Databases) أو أنظمة تخطيط موارد المؤسسات (ERP Systems) في تصدير القياسات المكررة ككتلة نصية لتقليص حجم الملفات أو لتوافق تصديري محدود.

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

2. التشريح التركيبي للصيغة المتقدمة لحساب المتوسط

2.1 نظرة شمولية على بنية الدالة التراكمية المركبة

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

=IFERROR(AVERAGE(--MID(SUBSTITUTE(","&A2, ",", REPT(" ", LEN(A2))), ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2, ",", ""))+1))*LEN(A2), LEN(A2))), A2)

تتحرك هذه الصيغة في مسار منطقي متسلسل فائق الإحكام، حيث تبدأ من أعمق نقطة نصية بالتعامل مع السلسلة كشريط يمكن مراجعته طولياً، ثم تنتقل إلى توليد مسافات اصطناعية هائلة تفصل الكيانات الرقمية عن بعضها، وتتبعها مرحلة تأسيس مصفوفة أبعاد رياضية افتراضية في الذاكرة لتحديد مواضع القطع بدقة، ثم اقتطاع النصوص الفرعية وتحويلها جبرياً، لتصل في النهاية إلى مرحلة الحساب الإحصائي النهائي عبر دالة المتوسط. يكمن جمال هذا التصميم في استقلاليته التامة عن أي تدخل خارجي؛ فهو ينشئ بيئة حوسبة موازية داخل الخلية الواحدة، مما يسمح له بالعمل بكفاءة مطلقة في الإصدارات القديمة مثل إكسل 2010 و2013 و2016 وحتى الإصدارات السحابية المعاصرة.

2.2 وظيفة عامل الإسناد المزدوج السالب (–) في التحويل القسري للأنواع

يلعب عامل الإسناد المزدوج السالب (Double Unary Operator)، والذي يرمز له بالرمزين المتتاليين --، دور المحرك البرمجي المسؤول عن عملية التحويل القسري للأنواع البيانية (Type Coercion). ففي اللغات البرمجية وأنظمة الحساب، ينتج عن استخدام دوال النصوص مثل MID مخرجات ذات طبيعة نصية بحتة حتى لو كانت محتوياتها تمثل أشكالاً رقمية مثل “15”. وبالتالي، فإن تمرير هذه المخرجات مباشرة إلى دالة إحصائية سيؤدي مجدداً إلى تجاهلها التام.

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

2.3 دور دالة IFERROR كصمام أمان حسابي وإدارة الحالات الاستثنائية

لا يكتمل التصميم الرياضي الموثوق لأي صيغة برمجية دون وجود آلية متينة لإدارة الاستثناءات والأخطاء (Error Handling)، وهو الدور المحوري الذي تضطلع به دالة IFERROR في بداية الصيغة. تكمن المعضلة التشغيلية في أنه عند تطبيق الصيغة المركبة على خلية تحتوي على رقم فردي واحد فقط دون وجود أي فواصل ترقيم (مثل وجود الرقم 25 فقط في الخلية A2)، فإن بعض الخوارزميات الداخلية لدوال المصفوفات قد ترتبك وتنتج أخطاء برمجية مثل #VALUE! أو #REF! نظراً لعدم تحقق شرط الفوارق الطولية المستخدم لتوليد الأبعاد.

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

3. التفكيك المعمق لدوال معالجة النصوص: SUBSTITUTE و REPT و LEN

3.1 استراتيجية تمديد المسافات باستخدام دالتي REPT و LEN

ترتكز استراتيجية العزل الموضعي للأرقام داخل السلسلة المدمجة على حيلة رياضية هندسية تُعرف بتقنية “تمديد المسافات” (Space Padding Strategy). تبدأ هذه الآلية بحساب الطول الإجمالي لسلسلة النص في الخلية A2 باستخدام دالة الطول دالة LEN. يمثل هذا الطول مقياساً مرجعياً آمناً للغاية؛ إذ يستحيل منطقياً لأي قيمة عددية مفردة داخل السلسلة أن تتجاوز في عدد خاناتها الطول الكلي للسلسلة بأكملها، مما يجعل هذا الرقم معياراً مطلقاً لتحديد المسافات الفاصلة بين البيانات.

يتم بعد ذلك تمرير هذا الطول إلى دالة التكرار REPT(" ", LEN(A2))، والتي تقوم بتوليد كتلة ضخمة متجانسة من الفراغات البيضاء (Spaces) بطول يساوي بالضبط الطول الكلي للنص الأصلي. فلو فرضنا أن طول السلسلة “3,5,6,8” هو 7 محارف، فإن دالة REPT ستولد كتلة مكونة من سبع مسافات بيضاء نقية. تكمن الفلسفة الهندسية لهذه الخطوة في إنشاء عوازل جغرافية متسعة جداً بين الأرقام داخل الذاكرة، بحيث تُطرد الأرقام بعيداً عن بعضها البعض وتستقر في بؤر نصية متباعدة يستحيل معها حدوث أي تداخل أثناء عمليات الاستقطاع اللاحقة.

3.2 استبدال الفواصل بالمسافات المتسعة عبر دالة SUBSTITUTE

بمجرد توليد كتلة المسافات الشاسعة، تأتي الخطوة الجوهرية المتمثلة في تطبيق دالة SUBSTITUTE لإحلال هذه الكتل الفراغية محل الفواصل الأصلية. يلاحظ في الصيغة استخدام التعبير التركيبي ","&A2، والذي يمثل مناورة برمجية دقيقة تهدف إلى زرع فاصلة وهمية اصطناعية في أقصى يسار السلسلة قبل الرقم الأول. هذه الإضافة تضمن أن يخضع الرقم الأول لنفس المعاملة الميكانيكية التي تخضع لها بقية الأرقام المفصولة لاحقاً، مما يمنع حدوث اختلال في إحداثيات القطع.

عند تنفيذ الدالة بالشكل: SUBSTITUTE(","&A2, ",", REPT(" ", LEN(A2)))، يتم استبدال كل فاصلة (بما فيها الفاصلة البادئة الوهمية) بكتلة المسافات التي تم إنشاؤها في الخطوة السابقة. ونتيجة لذلك، يتحول النص المضغوط المزدحم إلى شريط نصي فائق الاتساع والانتظام الهندسي؛ حيث تصبح كل قيمة رقمية مسبوقة بكتلة مسافات ضخمة ومتبوعة بكتلة مماثلة، وتتحول السلسلة برمتها إلى ما يشبه شريط قياس منظم تكون فيه الأرقام بمثابة جزر معزولة تفصل بينها محيطات شاسعة من الفراغات المتساوية بدقة رياضية متناهية.

3.3 معايرة حدود المقاطع النصية وتأمين الفواصل الحدودية

إن الهدف الأسمى من هذه المعايرة الهندسية هو التغلب على تباين أطوال الأرقام داخل السلسلة نفسها. ففي الواقع التجريبي، قد تحتوي السلسلة الواحدة على أرقام أحادية الخانة (مثل 5) ممزوجة بأرقام ثنائية (مثل 45) أو ثلاثية الخانات (مثل 120)، بل وحتى أرقام ذات كسور عشرية طويلة (مثل 13.875). فإذا حاول المحلل اقتطاع هذه القيم بناءً على مواقع ثابتة مسبقاً، فإن حدوث تداخل بين خانات الأرقام المتجاورة أو اقتطاع أجزاء مبتورة من القيم سيكون حتمياً.

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

4. ديناميكية التجزئة والاستخراج الموضعي باستخدام دالة MID

4.1 مفهوم نقطة البداية المتغيرة واستخراج الكتل النصية

بعد تجهيز الشريط النصي المتسع، تبرز الحاجة إلى أداة ميكانيكية تتحرك بمرونة على طول هذا الشريط لاقتطاع الجزر الرقمية المعزولة، وهنا يتجلى الدور المتقدم لدالة الاقتطاع الموضعي دالة MID. تتطلب هذه الدالة ثلاثة وسائط رئيسية: النص المصدر، ومؤشر نقطة البداية الحركية (Start Number)، وعدد المحارف المراد استخلاصها (Number of Characters). وتكمن الصعوبة هنا في أن نقطة البداية لا يمكن أن تكون قيمة رقمية ثابتة، بل يجب أن تكون متغيراً حركياً ينتقل بانتظام بين المواقع المختلفة للأرقام.

يتحقق هذا الانتقال الذكي عبر ضرب مصفوفة أرقام الصفوف التسلسلية المتولدة في طول النص الأصلي: ROW(...) * LEN(A2). يؤدي هذا الضرب المصفوفي إلى توجيه مؤشر القراءة لدالة MID ليقفز قفزات مكانية متساوية تقفز فوق محيطات الفراغات لتهبط مباشرة داخل كتلة الفراغات التي تسبق الرقم المستهدف تماماً. وهكذا، بدلاً من استخراج نص ثابت، تتحول دالة MID إلى مقتطع مصفوفي متعدد الأذرع يعمل بالتوازي، ملتقطاً كافة الأرقام المتواجدة في الشريط النصي دفعة واحدة وفي عملية حوسبية مدمجة لا تتطلب تكرار كتابة الدوال.

4.2 تحديد طول المقطع المستخرج بدقة لمنع التداخل البياني

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

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

4.3 التخلص التلقائي من الفراغات وتحويل المخرجات إلى بيانات أولية

تسفر عملية الاقتطاع الناتجة عن دالة MID عن تكوين مصفوفة مخرجات نصية تبدو عناصرها في الذاكرة ككتل محشوة بالفراغات، مثل: {" 2", " 4", " 6"}. لو حاولنا إجراء أي مقارنة منطقية أو معالجة على هذه النصوص بصورتها الراهنة لواجهنا صعوبات بالغة بسبب تلك المسافات الشاسعة. وهنا تظهر العبقرية البرمجية الخفية الكامنة في تفاعل محرك إكسل مع عامل الإسناد المزدوج السالب -- المطبق مباشرة على مخرجات دالة MID.

يمتلك محرك التحويل الداخلي في إكسل سلوكاً تلقائياً متأصلاً يتمثل في إهمال وتجاهل كافة المسافات البيضاء القياسية (Trailing and Leading Whitespaces) المحيطة بالقيم عند إجباره على تحويل نص إلى رقم عبر العمليات الحسابية. وبالتالي، عندما ينقض العامل المزدوج -- على تلك النصوص المليئة بالفراغات، فإنه يبيد الفراغات فورياً دون الحاجة إلى استدعاء دالة تنظيف المسافات TRIM، ويحوّل السلاسل الهامشية المتفرقة إلى مصفوفة رقمية أولية نقية تماماً: {2, 4, 6}. تصبح هذه الأرقام الآن بيانات كمية حقيقية تتطابق برمجياً مع أي مدخلات رقمية أصلية وتستعد تماماً للدخول في العمليات الإحصائية المركزية.

5. توليد المصفوفات الحسابية ديناميكيًا باستخدام ROW و INDIRECT

5.1 حساب التكرار الفعلي للفواصل باستخدام تقنية الفروق الطولية

لكي تتمكن المعادلة من استخراج كافة الأرقام دون نقصان أو زيادة، يجب أن تدرك مسبقاً العدد الدقيق للقيم الرقمية المتضمنة داخل الخلية المستهدفة. ونظراً لعدم وجود دالة برمجية مباشرة تعد الكلمات أو العناصر المفصولة في الإصدارات القديمة من إكسل، يعتمد المتخصصون على تقنية إحصائية نصية غاية في الدقة والذكاء الرياضي تُعرف بتقنية “الفروق الطولية” (Length-Difference Technique).

ترتكز هذه التقنية على المعادلة الرياضية البديهية التالية:

عدد الفواصل = LEN(A2) - LEN(SUBSTITUTE(A2, ",", ""))

تقوم المعادلة بقياس طول النص الأصلي المحتوي على الفواصل، ثم تطرح منه طول النص ذاته بعد محو كافة الفواصل منه بالكامل باستخدام دالة SUBSTITUTE مستبدلة الفاصلة بلا شيء (""). ونظراً لأن كل رقمين يفصل بينهما فاصلة واحدة، فإن عدد القيم الرقمية الإجمالي داخل السلسلة يعادل بالضرورة: عدد الفواصل + 1. فإذا احتوت الخلية على السلسلة “10,20,30”، فإن طول النص هو 8 محارف، وطوله بدون فواصل هو 6 محارف؛ والفرق الناتج هو (8 – 6 = 2)، مما يثبت بدقة متناهية وجود فاصلتين اثنتين، وبالتالي فإن إجمالي القيم الواجب معالجتها وحساب متوسطها هو (2 + 1 = 3 قيم).

5.2 تكوين نطاق افتراضي ديناميكي عبر دالة INDIRECT

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

تستقبل دالة INDIRECT تعبيراً نصياً يتم بناؤه عبر الدمج المتسلسل: "1:" & عدد العناصر. ففي مثالنا السابق المشتمل على ثلاث قيم، يُنتج الدمج النصي السلسلة "1:3"، وهي الصياغة البرمجية القياسية التي تمثل المدى الممتد من الصف الأول إلى الصف الثالث في ورقة العمل. تقوم دالة INDIRECT بتحويل هذا المرجع النصي الافتراضي المجرد إلى نطاق خلايا واقعي ومعترف به برمجياً في الذاكرة المؤقتة لمحرك إكسل، ممهدة الطريق لإنشاء الفهارس الحسابية المتتابعة دون الحاجة إلى وجود خلايا مادية مساعدة مشغولة على ورقة العمل الحقيقية.

5.3 إنشاء مصفوفة تسلسلية للمؤشرات العددية عبر دالة ROW

تكتمل منظومة الحوسبة الديناميكية عندما تلتقط دالة أرقام الصفوف دالة ROW النطاق الافتراضي الموفر بواسطة دالة INDIRECT. عند تطبيق الصيغة: ROW(INDIRECT("1:3"))، لا تقوم الدالة بإرجاع رقم صف واحد، بل تُنتج في ذاكرة التخزين المؤقتة مصفوفة عمودية من الأرقام الصحيحة المتتالية: {1; 2; 3}. تمثل هذه المصفوفة المحرك النبضي للصيغة بأكملها، حيث تلعب دور المؤشرات التسلسلية أو العدّاد الدوري (Loop Counter) المألوف في اللغات البرمجية التقليدية مثل حلقات For و While.

تُمرر هذه المصفوفة المتسلسلة إلى مضاعفات طول النص لتوجيه ضربات الاقتطاع في دالة MID، كما أسلفنا. إن التحول الهيكلي الذي تُحدثه دالتا ROW و INDIRECT ينقل برنامج إكسل من مجرد آلة حاسبة تعتمد على معالجة المدخلات الفردية الثابتة خطوة بخطوة، إلى بيئة حوسبة موازية عالية الأداء (Parallel Processing)، حيث تُعالج الخلية الواحدة عدة عمليات فرعية في زمن دورة معالجة موحد، مما يمكنها من إنتاج مخرجات مصفوفية مركبة وفورية بدقة بالغة.

6. المعالجة المصفوفية وحساب المتوسط الحسابي عبر دالة AVERAGE

6.1 استقبال المصفوفة الرقمية الناتجة داخل دالة AVERAGE

تصل الصيغة التراكمية في هذه المرحلة إلى غايتها النهائية؛ حيث تتجمع كافة المخرجات المتولدة من المعالجة السابقة في هيئة متجه حسابي رقمي أحادي البعد يتضمن جميع الأرقام التي كانت محتجزة داخل الخلية النصية. تستقبل دالة AVERAGE هذه المصفوفة الرقمية النقية {X₁, X₂, X₃, ..., Xₙ} مباشرة في وسائطها التشغيلية، لتشرع في تنفيذ المنطق الرياضي الكلاسيكي للنزعة المركزية.

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

X̄ = (1 / n) * ∑ (Xᵢ)

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

6.2 الفروق الجوهرية في التنفيذ بين الإصدارات التقليدية ومحرك Dynamic Arrays

تختلف طريقة تنفيذ ومعالجة هذه المعادلة المركبة اختلافاً جوهرياً بين بيئات إكسل التاريخية والإصدارات المعاصرة. ففي الإصدارات التقليدية من برنامج إكسل (Excel 2019 والإصدارات السابقة)، كان محرك الحساب عاجزاً عن فهم واستيعاب مخرجات المصفوفات المتعددة داخل صيغة واحدة دون توجيه صريح من المستخدم. ومن ثم، كان لزاماً لتشغيل هذه الصيغة الضغط المنسق على ثلاثة مفاتيح معاً: Ctrl + Shift + Enter، فيما يُعرف اصطلاحاً بصيغ مصفوفات CSE (CSE Formulas)، والتي يحيطها البرنامج تلقائياً بقوسين معقوفين {...} دلالة على تفعيل نمط معالجة المصفوفات القديم.

أما مع إطلاق محرك المصفوفات الديناميكية (Dynamic Array Engine) في تحديثات Microsoft 365 وإصدار Excel 2021، فقد تغيّر هذا المشهد التقني تغيراً جذرياً. بات المحرك المعاصر قادراً على التعرف الفطري والذاتي على أي دالة تُنتج مصفوفة داخلية والتعامل مع أبعادها بمرونة وانسيابية حسابية تلقائية. يمكن الآن إدخال نفس الصيغة المعقدة بالضغط البسيط على مفتاح الإدخال Enter التقليدي دون الحاجة لاختصار CSE، حيث يحتفظ البرنامج بالمصفوفة الحسابية في الذاكرة المؤقتة وينجز الحساب ويُرجع القيمة النهائية الفردية للمتوسط بثبات فائق يمنع حدوث أخطاء عدم تطابق أبعاد المصفوفات.

6.3 التحقق الحسابي اليدوي ومطابقة النتائج البرمجية

لتأكيد الموثوقية الأكاديمية والعملية لهذه المنهجية، يتعين إجراء فحص قياسي تتبعي ومطابقة نتائج الصيغة البرمجية بالحساب الرياضي اليدوي الصارم. لنفترض وجود خلية اختبار تتضمن السلسلة النصية البسيطة: "1,2,3". يقتضي الحساب اليدوي جمع الأعداد (1 + 2 + 3 = 6)، وقسمة المجموع على عدد العناصر الثلاثة (6 ÷ 3)، ليكون المتوسط الحسابي النظري الدقيق هو 2.

عند تمرير هذه السلسلة عبر أداة تقييم الصيغ خطوة بخطوة المدمجة في إكسل (Evaluate Formula Tool)، يمكن للمحلل مراقبة التفكك المتسلسل للأقواس الرياضية: تتوسع السلسلة أولاً إلى شريط مسافات تتخلله الأرقام، وتُنتج دالة ROW المصفوفة {1; 2; 3}، وتستقطع دالة MID الكتل المحشوة بالفراغات، ويحول المعامل -- النصوص إلى الأرقام الصريحة {1; 2; 3}، وتستقبلها دالة AVERAGE لتخرج الرقم 2 كناتج نهائي مطلق. تؤكد هذه المطابقة التامة عدم وجود أي انحرافات حسابية أو أخطاء تقريبية عشرية (Floating-Point Precision Errors) في معالجة الأرقام الصحيحة أو النسبية، مما يمنح الثقة الكاملة في اعتماد هذه الآلية في الأبحاث والتحليلات ذات المعايير الصارمة.

7. التطبيق العملي ودليل خطوة بخطوة على مجموعات بيانات متقدمة

7.1 إعداد جدول البيانات وتهيئة بيئة العمل في إكسل

يتطلب الشروع في تطبيق هذه الاستراتيجية المتقدمة تنظيماً منهجياً لبيئة المصنف لضمان التدفق السلس للبيانات وعدم تداخل الإحداثيات المرجعية. يُنصح بتخصيص العمود (A) كعمود مصدري يحتوي حصرياً على السجلات المجمعة؛ بحيث تبدأ البيانات الفعلية من الخلية A2 فما دونها، تاركاً الخلية A1 لتكون ترويسة معيارية باسم “البيانات النصية المصدرية”. يجب مراجعة السجلات في هذا العمود للتأكد من خلوها من أي محارف تحكم غير مرئية أو فواصل سطرية قد تتطلب تنظيفاً استباقياً.

يُخصص بعد ذلك العمود المجاور (B) ليكون مستقراً للنتائج تحت ترويسة “المتوسط الحسابي المستخرج”. من الناحية التنسيقية الهامة، يجب تحديد العمود B مسبقاً وضبط تنسيق الخلايا ليكون تنسيقاً “عاماً” (General) أو “رقمياً” (Number) مع تحديد منزلتين عشريتين لضمان إظهار المتوسطات غير الصحيحة بوضوح. علاوة على ذلك، ينبغي على المستخدم مراقبة الإعدادات الإقليمية لنظام التشغيل؛ فإذا كان الجهاز يعتمد الإعدادات الأوروبية أو اللاتينية التي تستخدم الفاصلة المنقوطة (;) كفاصل افتراضي بين وسائط الدوال بدلاً من الفاصلة الإنجليزية (,)، فيجب تعديل الصيغة لتوافق تلك المعايير البرمجية لتفادي أخطاء البنية التركيبية الشائعة.

7.2 إدخال الصيغة وسحب مقبض التعبئة التلقائية لتشمل السجلات

لتطبيق الحساب بصورة عملية، يتم التوجه مباشرة إلى الخلية B2، وكتابة الصيغة المركبة بدقة فائقة مع مراعاة التطابق التام للأقواس الداخلية والخارجية:

=IFERROR(AVERAGE(--MID(SUBSTITUTE(","&A2, ",", REPT(" ", LEN(A2))), ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2, ",", ""))+1))*LEN(A2), LEN(A2))), A2)

إذا كان العمل يجري على إصدار أقدم من إكسل، يُثبّت الإدخال بالضغط على Ctrl + Shift + Enter، بينما يُكتفى بمفتاح Enter في الإصدارات المعاصرة. بمجرد ظهور المتوسط الحسابي الصحيح للسطر الأول، يُنقل مؤشر الفأرة نحو الزاوية السفلية اليسرى (أو اليمنى وفق اتجاه الصفحة) للخلية B2 حتى يتحول المؤشر إلى علامة التقاطع السوداء المعروفة بـ “مقبض التعبئة” (Fill Handle).

يتم سحب المقبض رأسياً إلى الأسفل ليشمل كافة السجلات المستهدفة، أو يُنقر نقراً مزدوجاً بالزر الأيسر للفأرة لإجراء تفريغ ميكانيكي سريع للصيغة على امتداد البيانات المجاورة. تعمل ميزة المراجع النسبية (Relative Referencing) في إكسل تلقائياً على تعديل عنوان الخلية من A2 إلى A3 ثم A4 وصولاً إلى نهاية الجدول، مما يوفر معالجة إحصائية موازية وفورية لمئات أو آلاف الصفوف في زمن وجيز ودون أي هدر للمجهود البشري.

Excel average of numbers separated by commas
Excel average of numbers separated by commas

7.3 تحليل نتائج الحالات التطبيقية الواردة في الدليل

لتوضيح كفاءة ومرونة هذه الصيغة على مختلف السيناريوهات الواقعية، نستعرض ثلاثة نماذج تطبيقية شديدة التباين تعكس حالات بيانية متكررة:

  • الحالة الأولى: السلسلة المتوازنة المكررة "2,4,5,5,7,13"
    تتألف هذه السلسلة من 6 عناصر رقمية تتضمن أرقاماً متكررة (الرقم 5). عند تنفيذ الصيغة، يبلغ المجموع الجبري للقيم (2 + 4 + 5 + 5 + 7 + 13 = 36). وبقسمة 36 على 6 عناصر، تُرجع الخلية فوراً متوسطاً حسابياً صحيحاً دقيقاً مقداره 6، مما يثبت قدرة المعادلة على التعامل مع القيم المتكررة دون أدنى تشويش في الفهرسة.
  • الحالة الثانية: السلسلة ذات المتوسط الكسري "3,5,6,8"
    تتضمن هذه السلسلة 4 عناصر غير قابلة للقسمة بصورة صحيحة على عددها. المجموع الإجمالي هو (3 + 5 + 6 + 8 = 22). وبقسمة 22 على 4، تظهر النتيجة بدقة عشرية بالغة قدرها 5.5. يوضح هذا النموذج كفاءة المعامل المزدوج -- في التعامل مع الأبعاد الحسابية العشرية بدقة متناهية دون إسقاط المنازل الكسرية أو تقريبها قسرياً.
  • الحالة الثالثة: السلسلة المركبة من أرقام ثنائية الخانات "10,12,14,14,15,19"
    تختبر هذه الحالة كفاءة تقنية تمديد المسافات عند التعامل الحصري مع أرقام تتألف من خانتين لكل رقم. يبلغ مجموع هذه العناصر (10 + 12 + 14 + 14 + 15 + 19 = 84). وبقسمة هذا المجموع على عدد القيم (6)، تُسفر المعادلة عن متوسط دقيق قدره 14، مؤكدة نجاح النوافذ المكانية في منع أي تداخل بين العشرات والآحاد للأرقام المتجاورة.

8. معالجة الأخطاء الشائعة وحالات الحافة (Edge Cases)

8.1 التعامل مع المسافات غير المنتظمة والفراغات الزائدة

من أكثر العيوب المنهجية التي تشوب السلاسل النصية المجمعة يدوياً أو المصدرة من بيئات غير منضبطة هي عشوائية المسافات الفاصلة؛ حيث قد يكتب المستخدم السلسلة بالنمط القياسي "1,2,3"، بينما يكتبها مدخل بيانات آخر مصحوبة بفراغات عفوية تلي الفواصل، مثل "1, 2, 3" أو حتى بفراغات مزدوجة عشوائية. على الرغم من أن المعامل المزدوج -- قادر على تنظيف المسافات المحيطة بالرقم المنفرد، إلا أن وجود مسافات متباينة الطول داخل السلسلة الأصلية يؤثر سلباً على عمليات حساب الفروق الطولية المستخدمة لتحديد عدد الفواصل بدقة.

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

8.2 إدارة الخلايا الفارغة والمحتويات غير المتجانسة نصياً

تفرض قواعد الجدولة الميدانية مواجهة حالات حافة مزعجة؛ مثل الخلايا الفارغة كلياً، أو الخلايا التي تحتوي على نصوص تبريرية يدوية (مثل عبارة “غير متوفر” أو “غياب”) ممزوجة مع الأرقام أو مستقلة بذاتها. إذا مرت خلية فارغة تماماً عبر الصيغة غير المحمية، فقد تسفر عن إرجاع القيمة صفر بشكل مضلل، مما يُفسد حسابات المتوسط الكلي للعينات، بينما يؤدي اصطدام الصيغة بكلمات نصية أبجدية إلى انفجار خطأ القيمة #VALUE! لأن المعامل -- يعجز برمجياً عن إجبار الحروف الهجائية على التحول إلى أرقام.

تتم إدارة هذه السيناريوهات الحرجة عبر استراتيجية تحصين مزدوجة. أولاً، الاعتماد على دالة IFERROR المحيطة والتي تلتقط فوراً أي خطأ ناتج عن وجود نصوص غير قابلة للتحويل وتعيد نصاً بديلاً فارغاً أو رسالة تنبيهية مضبوطة. ثانياً، يمكن تطعيم الصيغة في مستهلها بشرط منطقي وقائي عبر دالة IF للتحقق من امتلاء الخلية أولاً: =IF(OR(A2="", ISBLANK(A2)), "", الصيغة_المركبة). تمنع هذه الإضافة الهيكلية تسجيل أي متوسط حسابي زائف للخلايا الفارغة، مما يحافظ على التوزيع الإحصائي النقي للبيانات ويبعد الانحياز الإحصائي عن الدراسات والتقارير المرفوعة للجهات المعنية.

8.3 تصحيح تعارض الفواصل الإقليمية واللغوية

يثير التنوع اللغوي والإقليمي إشكاليات معقدة في هندسة البيانات؛ لا سيما عند معالجة ملفات مصدرها بيئات عربية تقليدية تستخدم الفاصلة العربية الرأسية المتجهة للأعلى (،) المشفرة بترميز اليونيكود U+060C، في حين صُممت المعادلات الرياضية القياسية للبحث حصرياً عن الفاصلة اللاتينية السفلية القياسية (,) المشفرة بـ U+002C. يؤدي هذا التباين الشكلي التشفيري إلى عجز الصيغة عن اكتشاف الفواصل تماماً، ومن ثم معاملة السلسلة بأكملها كرقم واحد تائه أو إرجاع أخطاء بنيوية صامتة يصعب رصدها فورياً.

لمعالجة هذا الصدام اللغوي بذكاء هندسي، يُطبق مبدأ “التوحيد النصي المعياري” (Normalization) داخل المعادلة قبل بدء المعالجة المصفوفية. يتم ذلك بتمرير النص عبر دالة SUBSTITUTE متداخلة تستهدف التقاط الفاصلة العربية واستبدالها بالفاصلة اللاتينية الصريحة: SUBSTITUTE(A2, "،", ","). بل ويمكن تدعيم الصيغة للتعامل مع الفواصل المنقوطة أو الشُرط كفواصل بديلة في نفس الوقت عبر تكرار الاستبدال المتداخل. يحرر هذا التدبير المرن المحلل من التبعية لإعدادات أجهزة الإدخال المختلفة، ويجعل النموذج قادراً على امتصاص واستيعاب البيانات متعددة المصادر والثقافات البرمجية دون الحاجة لإعادة كتابة الأكواد أو تصدير الملفات.

9. البدائل التقنية والبرمجية لحساب متوسط الأرقام المفصولة بفواصل

9.1 استخدام أدوات إكسل التقليدية: تحويل النص إلى أعمدة (Text to Columns)

يمثل معالج تحويل النص إلى أعمدة (Text to Columns) واحداً من أقدم الحلول الميكانيكية المدمجة في إكسل لتفكيك البيانات المدمجة. يعتمد هذا الأسلوب على واجهة بصرية تفاعلية يُحدد فيها المستخدم العمود المصدر، ثم يختار خيار “محدد” (Delimited)، ويضع علامة الاختيار أمام الفاصلة (Comma). عند إنهاء المعالج، يقوم إكسل بتمزيق السلسلة النصية رأسياً وتوزيع الأرقام الناتجة عبر خلايا أفقية متتالية في الأعمدة المجاورة (B و C و D… إلخ)، مما يتيح تطبيق دالة المتوسط الكلاسيكية بسهولة: =AVERAGE(B2:Z2).

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

9.2 توظيف الدوال الحديثة في Microsoft 365: دوال TEXTSPLIT و LAMBDA

مع الثورة التطويرية التي شهدتها منظومة Microsoft 365، أزاحت مايكروسوفت الستار عن الدالة السحرية التي حلت عقدة التفكيك النصي التاريخية: دالة TEXTSPLIT. أتاحت هذه الدالة اختزال المعادلة المصفوفية الكلاسيكية المعقدة المكونة من عشرات المحارف في صياغة انسيابية فائقة البساطة والأناقة:

=AVERAGE(--TEXTSPLIT(A2, ","))

تقوم هذه المعادلة المعاصرة بكل شيء في أجزاء من الثانية: تأخذ السلسلة في الخلية A2، وتقسمها عند كل فاصلة إلى مصفوفة أفقية منبثقة، ثم يتدخل المعامل المزدوج -- لتحويل أجزاء المصفوفة النصية إلى أرقام، وتستقبلها دالة AVERAGE لتستخرج المتوسط فورياً. يتفوق هذا الأسلوب تفوقاً ساحقاً على كافة الحلول التراثية من حيث سرعة الأداء المعماري، وسهولة القراءة، وخلوه من الدوال المتقلبة مثل INDIRECT. علاوة على ذلك، يمكن للمطورين الآن تغليف هذا التركيب المتقن داخل دالة مخصصة ذات اسم دلالي عبر أداة إدارة الأسماء ودوال LAMBDA المتقدمة، مثل بناء دالة باسم =AvgDelimited(A2)، مما يرفع كود العمل إلى مصاف اللغات البرمجية الاحترافية دون أي مجهود إضافي.

9.3 الحلول البرمجية المتقدمة عبر Visual Basic for Applications (VBA)

في الحالات التي تتطلب دعماً لبيئات العمل المؤسسية القديمة مع الرغبة في الحفاظ على بساطة الواجهة الحسابية للمستخدم النهائي، تبرز لغة البرمجة Visual Basic for Applications (VBA) كحل تقني عالي القوة. تتيح هذه اللغة بناء دالة مخصصة معرَّفة بواسطة المستخدم (User Defined Function – UDF) تُدرج مباشرة في وحدة نمطية قياسية داخل مصنف العمل:

Function CalculateCommaAverage(CellRef As Range) As Variant
    Dim Arr() As String, i As Long, Sum As Double, Count As Long
    If CellRef.Value = "" Then CalculateCommaAverage = "": Exit Function
    Arr = Split(CellRef.Value, ",")
    For i = LBound(Arr) To UBound(Arr)
        If IsNumeric(Trim(Arr(i))) Then
            Sum = Sum + CDbl(Trim(Arr(i)))
            Count = Count + 1
        End If
    Next i
    If Count > 0 Then CalculateCommaAverage = Sum / Count Else CalculateCommaAverage = CVErr(xlErrDiv0)
End Function

يتميز هذا المسار البرمجي باستغلال دالة Split الأصلية شديدة السرعة في بيئة فيجوال بيسك لتجزئة النصوص إلى مصفوفة، مع فحص رقمية كل عنصر عبر IsNumeric، وتجريده من الشوائب باستخدام Trim قبل تجميعه. بعد حفظ الكود، يُتاح للمستخدم استخدام الصيغة في الورقة كأي دالة نظام تقليدية: =CalculateCommaAverage(A2). غير أن هذا الحل يفرض تحديات تتعلق بأمان مصنفات العمل؛ إذ يقتضي حفظ الملف بصيغة تدعم وحدات الماكرو (مثل .xlsm)، مما قد يثير تحذيرات أمنية صارمة في المؤسسات تمنع تشغيل الأكواد تلقائياً خوفاً من التهديدات البرمجية الخبيثة.

9.4 معالجة البيانات الضخمة وأتمتة العمليات عبر أداة Power Query

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

تبدأ العملية باستيراد جدول البيانات إلى محرر Power Query، ثم النقر على عمود السلاسل النصية وتفعيل خيار تفكيك العمود وفق محدد (Split Column by Delimiter)، مع تحديد الفاصلة واختيار تقسيم القيم إلى صفوف (Rows) بدلاً من أعمدة. يؤدي هذا التحول العبقري إلى نشر السجلات رأسياً، بحيث يتوزع كل رقم على سطر مستقل مرتبط بمعرف السجل الأصلي. يتم بعد ذلك تحويل نوع البيانات صراحة إلى “رقم عشري”، واستدعاء ميزة التجميع (Group By) بالاعتماد على معرف السجل الأصلي، وتعيين عملية التجميع لحساب “المتوسط الحسابي” للقيم المفككة.

يُعاد تحميل الجدول النهائي النظيف إلى إكسل في بضع ثوانٍ. تكمن القوة الاستراتيجية لمحرك Power Query في قدرته على تخزين خطوات التحويل كمسار معالجة مؤتمت؛ فبمجرد ورود بيانات خام جديدة أو تحديث السجلات الأصلية، يكتفي المستخدم بالنقر على زر “تحديث الكل” (Refresh All)، ليقوم المحرك بإعادة سحب البيانات وتفكيكها وحساب متوسطاتها تلقائياً في الخلفية دون أي تدخل يدوي، ودون استهلاك لموارد الحساب المتكرر أثناء تصفح ورقة العمل.

10. تقييم الكفاءة الحسابية وأفضل الممارسات الأكاديمية والتطبيقية

10.1 أثر الصيغ المعقدة على استهلاك الذاكرة وسرعة إعادة الحساب

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

يتسبب هذا السلوك في إرباك شجرة التبعية الحسابية (Dependency Tree) لإكسل؛ ففي حال تم تطبيق هذه المعادلة على جدول يضم 20,000 صف مثلاً، فإن إكسل سيضطر لتكرار دورة تفكيك النصوص وبناء المصفوفات الافتراضية عشرين ألف مرة عند كل ضغطة مفتاح داخل المصنف، مما يقود حتماً إلى تجميد واجهة الاستخدام (Workbook Freezing) وتصاعد استهلاك المعالج المركزي والذاكرة العشوائية بصورة مقلقة. لذا، يُنصح دائماً بالحد من استخدام هذا الحل المصفوفي في الجداول الضخمة، والمسارعة بالانتقال إلى الحلول الديناميكية المعاصرة مثل TEXTSPLIT أو حلول التدفق التجميعي عبر Power Query كلما سمحت بيئة التثبيت بذلك لضمان خفة واستجابة الملف.

10.2 معايير تصميم جداول البيانات النظيفة وفق الأصول المنهجية

من المنظور المنهجي لهندسة البيانات وتحليل النظم، يجب النظر إلى الصيغ الرياضية المركبة المستخدمة لتفكيك النصوص كحلول “علاجية ترقيعية” (Remedial Workarounds) لظاهرة مرضية في البيانات وليست غاية تصميمية يُعتد بها. تفرض مبادئ البيانات المنظمة ومعايير هادلي ويكهام (Hadley Wickham) للبيانات النظيفة (Tidy Data Principles)، وكذلك قواعد التطبيع في قواعد البيانات العلائقية (Relational Database Normalization)، قاعدة جوهرية لا تقبل المساومة: مبدأ الذرية (Atomicity).

ينص مبدأ الذرية على أن كل خلية في جدول البيانات يجب أن تحتوي على قيمة بيانية واحدة وحيدة غير قابلة للتجزئة. إن دمج قياسات كمية متعددة مفصولة بفواصل داخل خلية واحدة يمثل انتهاكاً صارخاً للصيغة المعيارية الأولى (First Normal Form – 1NF)، وهو ما يمهد لانهيار متسلسل في كفاءة المعالجة الإحصائية، ويُصعّب من مهام التصفية، والفرز، والربط العلائقي بين الجداول. ومن هنا، فإن أفضل ممارسة أكاديمية ومهنية لا تكمن في البراعة في كتابة معادلات تفكيك النصوص المعقدة، بل في ضبط أنظمة إدخال وتصدير البيانات من المنبع لمنع تكدس القيم وتوزيع كل قياس رقمي في صفه أو عموده الذاتي المستقل كمعيار تصميمي ملزم.

10.3 مصفوفة المفاضلة المنهجية بين كافة الحلول لاختيار الأسلوب الأمثل

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

  • الحل الأول: الصيغة المصفوفية الكلاسيكية (SUBSTITUTE + MID + ROW)
    بيئة الاستخدام المثالية: ملفات إكسل التي تعمل على إصدارات تاريخية (2010 – 2019) والتي تحظر تشغيل وحدات الماكرو.
    نقاط القوة: توافق كوني مطلق عبر كافة أجيال البرمجية، وتحديث ذاتي مباشر للنتائج عند تعديل السلسلة.
    نقاط الضعف: تعقيد تركيبي يصعب صيانته من قبل المستخدم العادي، وبطء تشغيلي شديد في الجداول الكبيرة نتيجة تقلب دالة INDIRECT.
  • الحل الثاني: صيغة النصوص الديناميكية المعاصرة (TEXTSPLIT)
    بيئة الاستخدام المثالية: البيئات التكنولوجية المحدثة التي تستند إلى Microsoft 365 أو Excel 2021 وما يليهما.
    نقاط القوة: بنية موجزة وأنيقة، وكفاءة ذاكرة خارقة تخلو من التقلب الحسابي، وديناميكية تحديث لحظية تامة.
    نقاط الضعف: انعدام التوافق التراجعي؛ فإذا فُتح الملف على إصدار إكسل قديم فستتوقف الصيغة وتظهر أخطاء التسمية #NAME?.
  • الحل الثالث: الدوال البرمجية المخصصة عبر ماكرو (VBA UDF)
    بيئة الاستخدام المثالية: بيئات العمل المؤسسية ذات السير المكتبي الداخلي المستقر والمهام المتكررة دورياً.
    نقاط القوة: عزل التعقيد البرمجي داخل وحدة نمطية وتوفير صيغة مخصصة بديهية ونظيفة للمستخدم في واجهة الورقة.
    نقاط الضعف: التعطيل المتكرر بفعل سياسات أمان المؤسسات، وصعوبة المشاركة السحابية عبر Excel Online وتطبيقات الويب.
  • الحل الرابع: خطوط أنابيب معالجة البيانات (Power Query)
    بيئة الاستخدام المثالية: مجموعات البيانات الضخمة (عشرات ومئات الآلاف من السجلات)، وعمليات استيراد البيانات المؤتمتة.
    نقاط القوة: قوة معالجة خارقة لا ترهق ذاكرة المصنف، واستقرار معماري مذهل للبيانات يضمن مطابقتها للأصول العلمية.
    نقاط الضعف: النتائج لا تتحدث تلقائياً وفورياً مع تعديل الخلية، بل تستلزم تنفيذ أمر التحديث اليدوي (Refresh) أو عبر كود مشغل.

خاتمة

إن مسألة حساب متوسط الأرقام المفصولة بفواصل داخل خلية إكسل تتجاوز كونها مجرد خدعة حسابية أو مهارة مكتبية عابرة؛ إنها دراسة حالة متقدمة تعكس التقاطع الحيوي بين هياكل البيانات النصية، وخوارزميات المعالجة المصفوفية، والمنطق الرياضي لنظرية القياس الإحصائي التي أصلها أعلام الرياضيات الأوائل كـ سيمبسون وجاوس. وكما فصّلنا عبر هذا التحليل الأكاديمي، فإن فهم التركيب الداخلي لدوال تمديد النصوص (SUBSTITUTE و REPT) وتطويع النطاقات الافتراضية (ROW و INDIRECT) يمكن المستخدم من تحويل أعتى العوائق البيانية إلى فرص استدلالية مذهلة تخدم اتخاذ القرار بثقة متناهية.

ومع ذلك، يبقى الوعي المعماري بالهندسة النظيفة للبيانات هو البوصلة الحقيقية لأي باحث أو مهندس بيانات؛ فمع الترحيب بالحلول السحرية التي يوفرها محرك Dynamic Arrays الحديث عبر TEXTSPLIT وأداة Power Query، يظل السعي نحو تأمين “ذرية البيانات” وتجنب التكدس غير المنضبط في الخلايا هو المعيار الذهبي لتجنب الديون التقنية، وضمان استدامة الأنظمة التحليلية، وسهولة تداولها، وتوافقها مع أرقى الممارسات المنهجية العالمية في علم البيانات.

المراجع

  • Gauss, C. F. (1809). Theoria motus corporum coelestium in sectionibus conicis solem ambientium. Perthes et Besser.
  • Simpson, T. (1755). A letter to the Right Honourable George Earl of Macclesfield, President of the Royal Society, on the advantage of taking the mean of a number of observations, in practical astronomy. Philosophical Transactions of the Royal Society of London, 49, 82–93.
  • Wickham, H. (2014). Tidy data. Journal of Statistical Software, 59(10), 1–23. https://doi.org/10.18637/jss.v059.i10
  • Microsoft Support. (n.d.). AVERAGE function. Microsoft. https://support.microsoft.com/ar-sa/office/average-%D8%A7%D9%84%D8%AF%D8%A7%D9%84%D8%A9-average-0402d371-f9da-4a84-925a-7e3fb4e92b69
  • Microsoft Support. (n.d.). TEXTSPLIT function. Microsoft. https://support.microsoft.com/ar-sa/office/textsplit-%D8%A7%D9%84%D8%AF%D8%A7%D9%84%D8%A9-textsplit-b1941437-af9a-472e-9254-22b26b05952c
  • Microsoft Support. (n.d.). IFERROR function. Microsoft. https://support.microsoft.com/ar-sa/office/iferror-%D8%A7%D9%84%D8%AF%D8%A7%D9%84%D8%A9-iferror-c526fd07-caeb-47b8-8bb6-638a1ae34771
  • Microsoft Support. (n.d.). SUBSTITUTE function. Microsoft. https://support.microsoft.com/ar-sa/office/substitute-%D8%A7%D9%84%D8%AF%D8%A7%D9%84%D8%A9-substitute-6434944e-a904-4336-a9b0-1e58df3bc332
  • Microsoft Learn. (n.d.). Excel VBA reference. Microsoft. https://learn.microsoft.com/ar-sa/office/vba/library-reference/concepts/getting-started-with-vba-in-office
★

تقييم هذا المحتوى

5.0 / 5 • 7 تقييمات

اقتباس هذا المقال

looti, M. (2026, أكتوبر 23). إكسل: حساب متوسط الأرقام المفصولة بفواصل. عرب سايكلوجي. https://arabpsychology.com/statistics/excel-calculate-average-numbers-separated-commas/
looti, Mohammed. “إكسل: حساب متوسط الأرقام المفصولة بفواصل.” عرب سايكلوجي, 23 أكتوبر 2026, https://arabpsychology.com/statistics/excel-calculate-average-numbers-separated-commas/.
looti, Mohammed. “إكسل: حساب متوسط الأرقام المفصولة بفواصل.” عرب سايكلوجي. أكتوبر 23, 2026. https://arabpsychology.com/statistics/excel-calculate-average-numbers-separated-commas/.