إكسيل: استخدام VLOOKUP لإرجاع قيم متعددة في خلية واحدة

دليل أكاديمي شامل يشرح كيفية التغلب على قيود دالة VLOOKUP لإرجاع قيم متعددة متطابقة ودمجها داخل خلية واحدة في إكسيل باستخدام صيغة TEXTJOIN وIF.

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

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

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

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

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

1. مقدمة نظرية حول قيود دالة VLOOKUP الكلاسيكية وتحديات البحث المتعدد

1.1 البنية المعمارية لدالة VLOOKUP وآلية مطابقة البيانات

تستند دالة البحث الرأسي VLOOKUP، التي طورتها شركة ميكروسوفت منذ الإصدارات المبكرة لبرنامج إكسيل، إلى خوارزمية مسح أحادية الاتجاه تُنفَّذ على طول العمود الأول من نطاق جدول محدد. تتبع الدالة بنية تركيبية صارمة تتألف من أربعة معاملات أساسية: قيمة البحث (lookup_value)، ونطاق الجدول المرجعي (table_array)، ورقم فهرس عمود الإرجاع (col_index_num)، ونمط المطابقة المنطقي (range_lookup). من الناحية الحسابية، تبدأ الخوارزمية بفحص خلايا العمود الأقصى إلى اليمين أو اليسار—تبعاً لاتجاه واجهة البرنامج ولغة ورقة العمل—بشكل خطي متسلسل من أعلى الصفوف نزولاً إلى أسفلها.

تكمن السمة البنيوية الحاكمة لهذه الخوارزمية في كونها عملية بحث ذات شرط إيقاف قاطع؛ فبمجرد أن يتطابق السجل المفحوص مع قيمة البحث وفق معيار التطابق التام (Exact Match) أو التطابق التقريبي (Approximate Match)، تتوقف الدالة فوراً عن تقييم بقية صفوف النطاق. هذا التوقف اللحظي يعني أن المحرك الداخلي للدالة لا يمتلك أي ذاكرة تخزين مؤقتة (Buffer) مخصصة لرصد أو فهرسة أي تطابقات إضافية قد تتواجد في الصفوف اللاحقة داخل الجدول، مما يجعلها أداة مصممة حصرياً للعلاقات من نوع واحد لواحد (One-to-One Relationships).

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

1.2 إشكالية استرجاع التطابق الأول وتجاهل السجلات المكررة

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

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

علاوة على ذلك، فإن محاولة معالجة هذه الفجوة عبر تكرار كتابة دالة VLOOKUP بطرق عشوائية تفشل حتماً، لأن الدالة في كل مرة ستقرأ نفس الصف الأول وتسترجع نفس النتيجة مالم يتم التلاعب بالمفتاح المرجعي ذاته. وقد أبرزت الدراسات المتخصصة في التفاعل الإنساني مع البرمجيات الغنية بالخصائص التحديات المعرفية التي يواجهها المستخدمون أثناء محاولة التحايل على مثل هذه المحددات الصلبة للدوال التقليدية (Drosos et al., 2024)، مما يستوجب توضيح بدائل تركيبية متسقة رياضياً ومنطقياً تلبي متطلبات نمذجة البيانات المعاصرة.

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

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

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

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

Excel VLOOKUP return multiple values in one cell
Excel VLOOKUP return multiple values in one cell

2. الحل الرياضي والتركيبي: دمج دالتي TEXTJOIN وIF كبديل متقدم

2.1 المفهوم المنطقي للربط بين الدوال الشرطية والتجميعية

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

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

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

2.2 الصيغة الهيكلية المعتمدة ومعايير بنائها الدقيق

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

=TEXTJOIN(“, “, TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, “”))

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

في المقابل، فإن الخلية D2، التي تتضمن قيمة البحث المعيارية المستهدفة، تترك بإحالة نسبية (Relative Reference) أو بتثبيت جزئي لعمودها فقط ($D2)، وذلك لتمكين الصيغة من التكيف تلقائياً عند تطبيقها عمودياً على صفوف متعددة تحوي قيم بحث مختلفة. تعتمد كفاءة المقارنة المباشرة ($A$2:$A$12=D2) على تطابق أنواع البيانات المعالجة؛ حيث يقوم محرك الحسابات بمقارنة المتجه المرجعي بالكامل مع القيمة المفردة في عملية واحدة فائقة السرعة، مما يضمن توليد مصفوفة النتائج بدقة رياضية متناهية ودون أي تأخير ملحوظ في الأداء.

2.3 الفروق الجوهرية بين معالجة النصوص والمصفوفات الرقمية

عند تنفيذ عمليات الدمج المصفوفي، يتعامل محرك الحسابات في برنامج إكسيل مع أنواع البيانات وفق قواعد منطقية محددة بدقة. عندما تُنتج الدالة الشرطية IF مصفوفة مؤقتة تحتوي على قيم نصية فارغة متمثلة في علامتي اقتباس متتاليتين (“”)، فإن الدالة التجميعية TEXTJOIN لا تصنف هذه الفراغات كأصفار رقمية، بل تعاملها كفراغات نصية نقية ذات طول صفري (Zero-length strings). هذا التمييز الهيكلي يعد محورياً لضمان عدم ظهور أصفار غير مرغوبة أو فواصل مشوهة تعيق القراءة التحليلية للبيانات المسترجعة.

من المزايا الاستثنائية لدالة TEXTJOIN قدرتها الفائقة على إجراء تحويل ضمني وسلس للأنواع البيانية (Implicit Type Coercion). فإذا كان نطاق الاسترجاع المستهدف $B$2:$B$12 يحتوي على قيم رقمية بحتة—مثل درجات اختبارات، أو مبالغ مالية، أو أكواد وظيفية—فإن الدالة تقوم تلقائياً بتحويل هذه الأرقام إلى متجهات محرفية (Character Strings) أثناء عملية الربط، دون أن تطلب من المستخدم استدعاء دوال تحويل مساعدة مثل الدالة TEXT، مالم تكن هناك حاجة لتنسيق أرقام العملات أو التواريخ بصيغ محددة.

يساعد هذا السلوك البرمجي المتكامل على تجنب الأخطاء الشائعة المتعلقة بعدم توافق أنواع البيانات (Type Mismatch Errors) التي كانت تلازم الصيغ القديمة. وتتجلى هنا أهمية التدريب المنهجي ونقل المعرفة المؤسسية لتمكين المحللين من إدراك الفروق العميقة بين البنى النصية والرقمية، وهو ما أكدته الأدبيات المهتمة بأثر خصائص المتدربين على نقل المعرفة التقنية وتطبيقها بنجاح عبر الزمن (Bauer, 2013)، حيث يسهم الوعي بالخصائص الداخلية للمحركات الحسابية في صياغة نماذج مرنة وقادرة على معالجة البيانات الهجينة بكفاءة فائقة.

3. التشريح الوظيفي المفصل لمعاملات دالة TEXTJOIN

3.1 معامل الفاصل (Delimiter) وخيارات التنسيق النصي

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

يمكن للمستخدم توظيف طيف واسع من الفواصل تبعاً للغرض التحليلي للتقرير. تشمل الخيارات الشائعة استخدام الفاصلة التقليدية المتبوعة بمسافة (“, “) لتوليد قوائم نصية متدفقة تناسب الفقرات التوضيحية، أو استخدام الفاصلة المنقوطة (“; “) التي تفضل في النماذج الفنية لتفادي الخلط مع الفواصل العشرية للأرقام، أو استخدام الشرطة الأفقية المفرغة (” – “) للفصل بين الأكواد والرموز التشغيلية المعقدة.

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

3.2 وسيطة تجاهل الخلايا الفارغة (ignore_empty) وأثرها الهيكلي

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

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

على النقيض من ذلك، إذا تم تعيين هذه الوسيطة كـ FALSE، فإن الدالة ستتعامل مع كل فراغ كعنصر قائم بذاته ذي طول صفري، وستقوم بإدراج الفاصل النصي المعتمد في مكانه المخصص. يؤدي هذا الخيار الخاطئ في سياق البحث المتعدد إلى ظهور فواصل متتالية وغير مبررة (مثل: “قيمة1, , , قيمة2, , “)، وهو ما يدمر جمالية التقرير ويصعب من عمليات القراءة والتحليل الآلي اللاحق لتلك المخرجات.

3.3 إدارة نطاقات الإدخال ومصفوفات السلاسل المحرفية

تتمتع دالة TEXTJOIN بمرونة استثنائية في استقبال وإدارة نطاقات الإدخال المتعددة (text1, [text2], …)؛ حيث لا تقتصر قدرتها على استيعاب النطاقات المكانية الثابتة المأخوذة مباشرة من أوراق العمل، بل تمتد لتستهلك بسلاسة مصفوفات السلاسل المحرفية المولدة ديناميكياً في ذاكرة الوصول العشوائي (RAM). هذا الاستيعاب المباشر لمخرجات الدوال الوسيطة يلغي بالكلية الحاجة إلى تخصيص أعمدة مساعدة لحفظ المراحل الحسابية المؤقتة، مما يحافظ على نظافة بنية النموذج البياني.

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

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

4. الدور المحوري للدالة الشرطية IF في تصفية وفلترة المصفوفات

4.1 صياغة شرط التطابق ومقارنة المتجهات المنطقية

تمثل الدالة الشرطية IF صمام الأمان والفرز الانتقائي في هذا البناء التركيبي؛ حيث تتجاوز وظيفتها التقليدية القائمة على فحص خلية فردية لتعمل كمصفي مصفوفي متقدم (Array Filter). تعتمد آلية التصفية على إجراء مقارنة جبرية مباشرة بين متجه الإدخال المرجعي كاملاً وبين القيمة المفردة المستهدفة بالبحث، وذلك بصيغة اختبار منطقي تأخذ الشكل: $A$2:$A$12=D2.

يقوم محرك العمليات الداخلية في إكسيل بتقييم هذه الصيغة عبر إسقاط قيمة الخلية D2 بالتتابع وبشكل متزامن على كل عنصر من عناصر النطاق العمودي $A$2:$A$12. إذا كانت قيمة الخلية D2 مثلاً هي “فريق النجوم”، وكان هذا الاسم مكرراً في الصفوف 3 و7 و9 من النطاق، فإن ناتج عملية المقارنة يتحول في الذاكرة المؤقتة إلى متجه منطقي يتخذ الهيكل التالي: {FALSE; TRUE; FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE; FALSE; FALSE}.

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

4.2 إرجاع مصفوفة القيم المستهدفة عند تحقق الشرط المنطقي

بمجرد اكتمال بناء المصفوفة البولية في الذاكرة، تبدأ الدالة الشرطية IF في تنفيذ الشطر الثاني من وظيفتها عبر وسيطة القيمة في حال التحقق (value_if_true). تتولى الدالة استبدال كل قيمة تقابل الرمز المنطقي TRUE بالقيمة الفعلية المقابلة لها جغرافياً في نطاق الإرجاع المستهدف المحدد في المعادلة ($B$2:$B$12). وبذلك تتحول المؤشرات المنطقية المجردة إلى بيانات وصفية أو رقمية ملموسة تعبر عن الظاهرة المدروسة.

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

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

4.3 إدارة القيمة البديلة (Value_if_false) لمنع تشويه النتائج

تكتسب الوسيطة الثالثة للدالة الشرطية، وهي القيمة في حال عدم التحقق (value_if_false)، أهمية بالغة الحرج في ضبط المخرجات؛ إذ يتعين على المستخدم تحديد هذه القيمة صراحة بإدخال علامتي اقتباس مزدوجتين لا تفصل بينهما أي مسافة (“”)، والتي ترمز في لغة الجداول الحسابية إلى السلسلة النصية الفارغة (Empty Text String). هذا التحديد يضمن استبدال كل مؤشر يحمل القيمة FALSE في المتجه المنطقي بفراغ غير مرئي.

تتمثل المخاطرة الشائعة لدى بعض المبتدئين في إهمال هذه الوسيطة وتركها فارغة تماماً دون كتابة علامتي الاقتباس. في هذا السيناريو الافتراضي، يقوم إكسيل تلقائياً بإرجاع القيمة المنطقية FALSE كنص صريح داخل المصفوفة الناتجة. وعندما تتلقى دالة TEXTJOIN هذه المصفوفة، فإنها تعامل الكلمة FALSE كقيمة نصية صالحة وغير فارغة، مما يؤدي إلى دمجها وتكرارها المشوه داخل الخلية التجميعية لتبدو النتيجة هكذا: “قيمة1, FALSE, FALSE, قيمة2, FALSE”، وهو ما يفسد المظهر النهائي للمخرج التحليلي.

يتحقق التكامل التركيبي النموذجي بين دالتي IF وTEXTJOIN بفضل هذا التنسيق الهندسي المحكم؛ فالسلسلة الفارغة (“”) التي تولدها الدالة الشرطية تُلقى مباشرة في مسار وسيطة ignore_empty الخاصة بدالة TEXTJOIN، والتي تمت برمجتها سلفاً لتجاهل مثل هذه الكيانات النصية الصفرية، مما ينتج عنه تدفق بياني نقي يقتصر تماماً وحصرياً على القيم الحقيقية المستوفية لمعايير البحث.

5. تطبيق عملي خطوة بخطوة: استرجاع نقاط لاعبي الفرق الرياضية

5.1 إعداد وتجهيز جدول البيانات الأولي

لتطبيق هذه المنهجية التطبيقية على أرض الواقع، سنقوم بإنشاء سيناريو محاكاة رياضي واقعي يستعرض الأداء النقطي لفرق كرة السلة، حيث يتكرر اسم الفريق عدة مرات مع تسجيل نقاط مختلفة في كل مباراة. نقوم ببناء جدول بيانات افتراضي يمتد في ورقة العمل ضمن النطاق من A1 إلى B12، مع تعيين عناوين الأعمدة في الصف الأول بحيث يمثل العمود A “اسم الفريق” (Team)، بينما يمثل العمود B “النقاط المسجلة” (Points).

يحتوي الجدول على السجلات التالية المرتبة رأسياً:

  • الصف 2: الفريق Mavs | النقاط 22
  • الصف 3: الفريق Warriors | النقاط 30
  • الصف 4: الفريق Mavs | النقاط 18
  • الصف 5: الفريق Nets | النقاط 25
  • الصف 6: الفريق Warriors | النقاط 35
  • الصف 7: الفريق Mavs | النقاط 29
  • الصف 8: الفريق Celtics | النقاط 20
  • الصف 9: الفريق Warriors | النقاط 28
  • الصف 10: الفريق Nets | النقاط 15
  • الصف 11: الفريق Mavs | النقاط 31
  • الصف 12: الفريق Celtics | النقاط 27

الآن، نخصص حيزاً جانبياً لإجراء الاستعلام التلخيصي؛ نحدد الخلية D2 لإدخال اسم الفريق المستهدف بالبحث، وليكن فريق “Mavs”، بينما نخصص الخلية المجاورة E2 لاستقبال الصيغة المركبة واستعراض كافة النقاط المسجلة لهذا الفريق مدمجة ومفصولة بفواصل واضحة داخل هذه الخلية المفردة.

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

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

=TEXTJOIN(“, “, TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, “”))

عند تفكيك هذه المعادلة أثناء إدخالها، نلاحظ أن المعامل الأول لدالة TEXTJOIN هو السلسلة النصية المكونة من فاصلة ومسافة بين علامتي اقتباس (“, “) لتأمين المباعدة البصرية المريحة بين الأرقام. المعامل الثاني تم ضبطه كـ TRUE لتجاهل الفراغات الناتجة عن عدم تحقق الشرط. بعد ذلك، صيغت الدالة الشرطية IF لتفحص النطاق المطلق لأسماء الفرق $A$2:$A$12 ومقارنته بالخلية D2 التي تشتمل على اسم الفريق “Mavs”.

إذا تطابقت أي خلية في النطاق A2:A12 مع القيمة “Mavs”، تسترجع دالة IF القيمة الرقمية المقابلة من نطاق النقاط المطلق $B$2:$B$12؛ وفي حال عدم التطابق، تسترجع الدالة سلسلة فارغة (“”). يتم إغلاق قوس دالة IF أولاً، متبوعاً بإغلاق قوس دالة TEXTJOIN. يؤدي استخدام التثبيت المطلق بعلامات الدولار ($) لكلا النطاقين إلى تحصين المعادلة بالكامل ضد أي انزياحات غير مرغوبة عند نسخها إلى خلايا سفلية للاستعلام عن بقية الفرق (مثل Warriors وCeltics).

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

بمجرد إتمام إدخال الصيغة والضغط على مفتاح الحساب، تظهر في الخلية E2 النتيجة التجميعية التالية بصورة فورية وأنيقة: 22, 18, 29, 31. بمطابقة هذه النتيجة مع بيانات الجدول الأصلي، نكتشف أن المحرك الحسابي قد مسح العمود A بالكامل واستخلص بالترتيب الدقيق جميع النقاط المسجلة لفريق Mavs في الصفوف 2 و4 و7 و11 على التوالي، ثم قام بدمجها في سلسلة موحدة تفصل بينها الفواصل التنسيقية المختارة.

تتجلى قوة هذه المنهجية عند إجراء اختبارات التحديث المباشر للبيانات؛ فإذا قمنا بتعديل نقاط المباراة الأولى لفريق Mavs في الخلية B2 من 22 إلى 40، تتحدث الخلية التلخيصية E2 في التو واللحظة لتصبح: 40, 18, 29, 31. وإذا تم تغيير اسم الفريق في خلية البحث D2 من “Mavs” إلى “Warriors”، يعيد النموذج احتساب المتجه ليظهر النتائج الخاصة بالفريق الجديد فوراً: 30, 35, 28.

يوضح هذا التطبيق الفارق العملي الهائل بين هذا الحل التركيبي وبين ما كانت ستنتجه دالة VLOOKUP الكلاسيكية؛ فلو استعنا بالصيغة التقليدية =VLOOKUP(D2, A2:B12, 2, FALSE)، لكانت النتيجة المرجعة دائماً وأبداً هي الرقم 22 فقط لفريق Mavs، متجاهلة كافة المباريات والنقاط الأخرى التي سجلها الفريق عبر فترات الموسم الرياضي، مما يثبت التفوق النوعي والتحليلي لحلول الدمج المصفوفي المتقدمة.

6. المتطلبات الفنية للبرنامج والتعامل مع صيغ المصفوفات الديناميكية وCSE

6.1 إدخال الصيغة في الإصدارات القديمة عبر اختصار Ctrl+Shift+Enter

في البيئات التشغيلية القديمة لبرنامج ميكروسوفت إكسيل—وتحديداً الإصدارات السابقة لإطلاق محرك المصفوفات الديناميكية في عام 2018 (مثل Excel 2016 وExcel 2013)—تتطلب معالجة المقارنات المصفوفية مثل ($A$2:$A$12=D2) بروتوكول إدخال استثنائي يُعرف برمجياً بصيغ المصفوفات الكلاسيكية أو صيغ (CSE Formula)، وهي تسمية مشتقة من الاختصار الثلاثي لمفاتيح لوحة التحكم: Ctrl + Shift + Enter.

عند كتابة الصيغة في تلك الإصدارات، لا يكتفي المستخدم بالضغط على مفتاح Enter العادي؛ إذ إن الضغط على Enter بمفرده يؤدي إلى عجز محرك الحسابات عن تقييم المتجه ككل، مما يسفر عن إرجاع الخطأ الحسابي الشهير #VALUE! أو استرجاع قيمة الخلية الأولى فقط. بدلاً من ذلك، يلزم الضغط المتزامن على مفاتيح Ctrl + Shift + Enter، مما يعطي أمراً مباشراً لنواة البرنامج لتفعيل معالجة المصفوفات في الذاكرة المؤقتة للخلية.

كدلالة بصرية على نجاح هذا التفعيل البرمجي، يقوم إكسيل بتطويق المعادلة آلياً بأقواس معقوفة تظهر في شريط الصيغ بالشكل التالي: {=TEXTJOIN(“, “, TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, “”))}. تجدر الإشارة إلى أن هذه الأقواس لا تُكتب يدوياً من قِبل المستخدم إطلاقاً، بل يولدها النظام تلقائياً. وتكمن المشكلة الإجرائية الدائمة في هذه الإصدارات في أنه بمجرد تنشيط الخلية لتعديل أي معامل، تضيع الأقواس المعقوفة وتتوقف الصيغة عن العمل بشكل صحيح مالم يُعد المستخدم الضغط على الاختصار الثلاثي CSE مرة أخرى.

6.2 محرك المصفوفات الديناميكية في Microsoft 365 وExcel 2021

أحدثت شركة ميكروسوفت ثورة جذرية في البنية التحتية لبرنامج إكسيل مع الإطلاق الرسمي لمحرك المصفوفات الديناميكية (Dynamic Arrays Engine)، الذي تم الإعلان عنه في سبتمبر 2018 بقيادة مهندسي تطوير إكسيل وتم توفيره لكافة مستخدمي Microsoft 365 وExcel 2021 وما تلاها. أعاد هذا المحرك الجديد كتابة القواعد الحسابية الأساسية للبرنامج، محولاً معالجة المصفوفات من ميزة استثنائية معقدة إلى سلوك افتراضي وأصيل في صلب النظام الحسابي.

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

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

6.3 تشخيص ومعالجة أخطاء التنفيذ الشائعة (#VALUE! و #NAME?)

يواجه المستخدمون أحياناً إخفاقات برمجية غير متوقعة عند تطبيق الصيغة المركبة، وتظهر هذه الإخفاقات على هيئة رموز أخطاء قياسية تتطلب فهماً تشخيصياً لمعالجة أسبابها الجذرية. يعد الخطأ #NAME? من أكثر الأخطاء توارداً في هذا السياق، ويعود سببه المباشر إلى عدم توفر دالة TEXTJOIN في الإصدار المكتبي المثبت على جهاز الحاسوب؛ إذ إن الدالة أُضيفت حصرياً ابتداءً من إصدارات Excel 2016 لعملاء Office 365 ولا تتوفر في الإصدارات الأقدم مثل Excel 2010 أو 2007، مما يفرض حينها استخدام بدائل أخرى كأكواد VBA أو الترقية لنسخ حديثة.

أما الخطأ الآخر واسع الانتشار فهو الخطأ #VALUE!، وتتعدد أسبابه التحليلية تبعاً لبيئة التشغيل. في الإصدارات القديمة السابقة لنسخة 365، ينتج هذا الخطأ حتماً عن نسيان المستخدم إدخال المعادلة بصيغة CSE عبر Ctrl+Shift+Enter. كما يتولد الخطأ ذاته في كافة الإصدارات الحديثة والقديمة على حد سواء في حال وجود عدم تطابق هندسي بين أبعاد المصفوفات المقارنة في دالة IF؛ كأن يُطلب فحص النطاق $A$2:$A$12 (المكون من 11 صفاً) مع محاولة استرجاع البيانات من النطاق $B$2:$B$15 (المكون من 14 صفاً)، حيث ينهار الحساب المتوازي نتيجة تفاوت الأطوال المتجهية.

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

7. تطوير المعادلة: معايير بحث متعددة وتنسيقات عرض متقدمة

7.1 البحث بالاعتماد على شروط منطقية متعددة باستخدام المعامل البولياني (*)

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

لتحقيق شرط المعية المتزامنة (Logical AND)—كأن نرغب في استرجاع درجات فريق معين بشرط أن تكون المباراة قد أقيمت على أرضه حصرياً (Home Matches)—نقوم بتطبيق عملية الضرب الرياضي (*) بين مصفوفات الشروط داخل دالة IF. رياضياً، يؤدي ضرب القيمة TRUE (التي تمثل الرقم 1) في القيمة TRUE الأخرى إلى الناتج 1 (أي تحقق كامل للشرطين)، بينما يؤدي وجود أي قيمة FALSE (التي تمثل الصفر) إلى تحويل حاصل الضرب إلى صفر، مما يستبعد السجل تماماً. تصاغ المعادلة في هذا السيناريو كما يلي:

=TEXTJOIN(“, “, TRUE, IF(($A$2:$A$12=D2)*($C$2:$C$12=”Home”), $B$2:$B$12, “”))

بالمثل، إذا تطلب السيناريو تطبيق شرط التخيير البديل (Logical OR)—كأن نطلب تجميع النقاط إذا كان الفريق هو Mavs أو إذا كان Warriors—يتم استبدال علامة الضرب بمعامل الجمع الرياضي (+). في هذه الحالة، إذا تحقق أي من الشرطين تصبح النتيجة أكبر من صفر، مما يدفع الدالة الشرطية لاعتماد القيمة واسترجاعها فوراً. تفتح هذه المعاملات البوليانية آفاقاً غير محدودة لنمذجة استعلامات استرجاع فائقة التعقيد والدقة التوليفية.

7.2 إدراج فواصل الأسطر التلقائية لتنظيم السجلات بصرياً

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

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

=TEXTJOIN(CHAR(10), TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, “”))

لكي يظهر تأثير كسر الأسطر على الشاشة بشكل سليم، من الضروري جداً تفعيل خاصية “التفاف النص” (Wrap Text) في تنسيق الخلية المستهدفة من خلال شريط الأدوات الرئيسي؛ فبدون تفعيل هذا الخيار، ستظهر النتائج على سطر واحد مستمر وتتجاهل محارف القفز الرأسي. يساهم هذا الأسلوب بشكل كبير في تحسين المقروئية ورفع كفاءة التقارير التنفيذية للشركات، متماشياً مع الدراسات التي تؤكد أهمية تقليل العبء المعرفي في قراءة المركبات البيانية لتسهيل الفهم السريع للمستخدمين (Mammadova, 2023).

7.3 فرز واستبعاد القيم المكررة من السلسلة المرجعة

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

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

=TEXTJOIN(“, “, TRUE, SORT(UNIQUE(IF($A$2:$A$12=D2, $B$2:$B$12, “”))))

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

8. مقارنة منهجية مع البدائل التقنية الأخرى لاسترجاع النتائج المتعددة

8.1 المقارنة بين توليفة TEXTJOIN+IF ودالة FILTER الحديثة

مع تدشين محرك المصفوفات الديناميكية الحديث، وفرت شركة ميكروسوفت أداة تصفية قياسية ومباشرة تُغني في كثير من الحالات عن استخدام الدالة الشرطية IF، وهي الدالة المخصصة FILTER. يمكن للمحلل اليوم صياغة دمج النتائج المتعددة بأسلوب أكثر بلاغة وبساطة وقراءة مباشرة عبر التركيبة التالية: =TEXTJOIN(“, “, TRUE, FILTER(B2:B12, A2:A12=D2, “”)).

تتفوق دالة FILTER على استخدام IF في وضوح بنيتها التعبيرية وقلة تعقيد أقواسها المتداخلة؛ إذ تحتوي على وسيطة مدمجة ومخصصة لإدارة حالات عدم العثور على نتائج ([if_empty])، مما يقلل من احتمالية حدوث أخطاء الصياغة التركيبية. ومع ذلك، فإن نقطة الضعف المحورية لدالة FILTER تكمن في متطلبات التوافق الرجعي (Backward Compatibility)؛ فهي مدعومة فقط في إصدارات Microsoft 365 وExcel 2021 والنسخ السحابية، مما يجعل الملفات التي تعتمد عليها غير قابلة للتشغيل وتتعطل بالكامل عند فتحها على إصدارات Excel 2019 أو Excel 2016 القديمة.

في المقابل، تتمتع توليفة TEXTJOIN مع الدالة الشرطية IF بمرونة جغرافية أوسع وتوافقية أفضل عبر مختلف بيئات العمل المؤسسية؛ حيث يمكن تشغيلها بنجاح حتى في النسخ المكتبية لعام 2016 بشرط استخدام اختصار CSE الكلاسيكي. وبذلك يظل خيار TEXTJOIN+IF هو المعيار الذهبي للمحللين الذين يشاركون ملفاتهم مع فرق عمل تستخدم إصدارات برمجية متباينة وغير متجانسة في البنية التحتية لتكنولوجيا المعلومات.

8.2 أداة تحويل البيانات Power Query وتجميع النصوص المرجعية

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

لتجميع القيم المتعددة في خلية واحدة باستخدام هذه الأداة، يتم تحميل الجدول إلى محرر Power Query، ثم تطبيق وظيفة “التجميع حسب” (Group By) على عمود البحث الرئيسي (اسم الفريق مثلاً). داخل إعدادات التجميع المتقدمة، يُطلب تنفيذ عملية دمج مخصصة على العمود الفرعي باستخدام لغة M البرمجية عبر الدالة Text.Combine، مع تحديد الفاصل النصي المفضل كمعامل ثانٍ للعملية. يتم بعد ذلك تصدير الجدول الناتج ليظهر كجدول بيانات نظيف ومضغوط داخل ورقة العمل.

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

8.3 استخدام لغة البرمجة VBA ووحدات الماكرو المخصصة (UDF)

قبل ظهور دالة TEXTJOIN في الإصدارات الحديثة، كان الملاذ التقني الوحيد للمبرمجين ومطوري النماذج المتقدمة يتمثل في بناء دوال معرفة من قِبل المستخدم (User Defined Functions – UDFs) باستخدام لغة البرمجة المدمجة Visual Basic for Applications (VBA). يتم في هذا المسار كتابة كود برمجي مخصص يحاكي عمل دالة VLOOKUP ولكنه يستمر في مسح النطاق بالكامل دون توقف، مجمعاً كل المطابقات المتتالية في متغير نصي تراكمي.

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

تخضع هذه الملفات لقيود أمنية مشددة من قبل جدران الحماية المؤسسية وأنظمة مكافحة الفيروسات التي غالباً ما تعطل تشغيل وحدات الماكرو افتراضياً لحماية الشبكات من البرمجيات الخبيثة. بالإضافة إلى ذلك، فإن الدوال المعرفة عبر VBA تعمل عبر خيط معالجة فردي (Single-threaded Execution)، مما يجعلها أبطأ بشكل ملحوظ مقارنة بالدوال الأصلية المبنية بلغة C++ والمدمجة في نواة برنامج إكسيل، فضلاً عن صعوبة صيانتها من قبل الموظفين غير المتخصصين في البرمجة.

9. أفضل الممارسات الحسابية وتحسين أداء ملفات العمل الكبيرة

9.1 إدارة تكلفة الحساب الحجمي وتقليل العبء على المعالج

تميل صيغ المصفوفات المركبة بطبيعتها إلى استهلاك قدر كبير من دورات وحدة المعالجة المركزية (CPU Cycles)، نظراً لأن كل خلية تحتوي على المعادلة تقوم بمقارنة متجهية شاملة لكافة صفوف النطاق المحدد. يتضاعف هذا العبء الحسابي بشكل خطير عندما يقع المستخدم في الخطأ الشائع المتمثل في الإشارة إلى الأعمدة بأكملها دون تحديد، كأن يكتب: =TEXTJOIN(“, “, TRUE, IF(A:A=D2, B:B, “”)).

تتضمن ورقة العمل الواحدة في إكسيل ما يزيد عن 1,048,576 صفاً. عندما تتم كتابة الصيغة بالإشارة لكامل العمود A:A، يُجبر محرك الحسابات على فحص أكثر من مليون خلية فارغة لكل عملية بحث فردية، وهو ما يؤدي فوراً إلى تجميد البرنامج وبطء استجابته واستهلاك طاقة الجهاز بالكامل. لتفادي هذا الهدر التقني، يجب دائماً حصر النطاقات بدقة متناهية (مثل $A$2:$A$5000)، أو الاستعانة بمحددات النطاقات الديناميكية التي تنتهي عند آخر صف يحتوي على بيانات فعلية.

في ملفات العمل الكبيرة والمشاريع المشتركة التي تعتمد على شبكات معقدة من البيانات، تتكامل كفاءة البنية الحسابية مع كفاءة شبكات التواصل البشري الداعمة لتداول المعرفة بين المحللين لضمان إنجاز المهام المؤسسية بأعلى إنتاجية ممكنة (Parise & Rollag, 2009). ومن الممارسات الاحترافية الموصى بها في هذا الصدد: تحويل الصيغ المصفوفية بعد انتهاء عمليات التحليل والاستخراج إلى قيم نصية ثابتة (Paste as Values) بالنسبة للأجزاء التاريخية المؤرشفة التي لن تخضع لتغييرات مستقبلية، مما يحرر ذاكرة الجهاز ويضمن سرعة فائقة في تصفح النماذج التلخيصية.

9.2 توظيف الجداول الرسمية (Excel Tables) والنطاقات المسماة

يمثل التحول من استخدام نطاقات الخلايا التقليدية ذات العناوين الجامدة (مثل A2:B12) إلى بيئة الجداول الرسمية المهيكلة (Excel Tables)—والتي يتم إنشاؤها بسهولة عبر الضغط على الاختصار Ctrl + T—واحداً من أفضل الممارسات المعمارية في تصميم جداول البيانات الاحترافية. تمنح الجداول الرسمية النطاقات أسماء دلالية واضحة ومراجع هيكلية مرنة تعزز من دقة وصيانة النماذج الرياضية المعقدة.

عند تحويل النطاق المصدري إلى جدول يحمل اسم “SalesData”، تتحول الصيغة التركيبية إلى بنية مقروءة وذاتية التوثيق على النحو التالي:

=TEXTJOIN(“, “, TRUE, IF(SalesData[Team]=D2, SalesData[Points], “”))

تكمن الفائدة الجوهرية لهذا النهج في خاصية التمدد التلقائي؛ فعند إضافة أي صفوف أو سجلات جديدة إلى جدول المبيعات مستقبلاً، تتسع حدود النطاقات SalesData[Team] وSalesData[Points] تلقائياً لتستوعب البيانات المستجدة دون أي حاجة لتعديل يدوي في أرقام الصفوف داخل المعادلة التجميعية. كما يقضي هذا الأسلوب تماماً على مخاطر فقدان البيانات أو كسر الروابط الحسابية التي تحدث عادة عند قيام المستخدمين بحذف أو إدراج صفوف جديدة عشوائياً في وسط الجداول التقليدية.

9.3 تنظيف البيانات المرجعية والتحقق من جودة المدخلات

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

تعتبر المسافات البيضاء الزائدة (Leading and Trailing Spaces) السبب الأكثر شيوعاً لإخفاق التطابق؛ فوجود مسافة غير مرئية في نهاية اسم “Mavs ” يجعله في نظر الخوارزمية الحسابية قيمة مختلفة تماماً عن “Mavs”، مما يؤدي إلى تقييم الشرط كـ FALSE واستبعاد السجل. للتغلب على هذه المشكلة، يُنصح بتمرير أعمدة البحث عبر دالة التنظيف TRIM لإزالة كافة الفراغات الطرفية، إما كخطوة تنظيف مسبقة للبيانات أو بدمجها ضمن الصيغة الحسابية ذاتها بالشكل: IF(TRIM($A$2:$A$12)=TRIM(D2), …).

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

10. دليل استكشاف الأخطاء التشخيصية وإصلاح المشكلات العملية

10.1 معالجة مشكلة ظهور الفواصل المتتالية والمسافات الزائدة

تعد ظاهرة الفواصل النصية المتتابعة (مثل: “بيانات1, , , بيانات2”) واحدة من أكثر المشكلات البصرية إزعاجاً التي يواجهها المحللون عند تجميع البيانات المتعددة. تنشأ هذه العلة التنسيقية من أحد سببين رئيسيين: إما إهمال تفعيل وسيطة تجاهل الفراغات في دالة TEXTJOIN، أو وجود خلايا تبدو ظاهرياً فارغة ولكنها تحتوي في حقيقتها على محارف غير مرئية أو مسافات فارغة كتبها المستخدم بطريق الخطأ عبر زر المسافة (Spacebar).

يتمثل الإجراء التشخيصي الأول في فحص الوسيطة الثانية لدالة TEXTJOIN والتأكد التام من تعيينها بالقيمة المنطقية TRUE. إذا استمرت الفواصل المتكررة في الظهور رغم ذلك، فإن هذا يعد دليلاً قاطعاً على أن الخلايا غير المطابقة في نطاق الإرجاع لا تُرجع سلاسل فارغة حقيقية ذات طول صفري (“”)، بل تحتوي على مسافات نصية أو فراغات ملوثة لم تستطع دالة IF تحييدها بنجاح.

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

10.2 التعامل مع حالات عدم العثور على أي تطابق وإظهار رسائل مخصصة

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

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

=IF(COUNTIF($A$2:$A$12, D2)=0, “لا توجد نتائج مطابقة”, TEXTJOIN(“, “, TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, “”)))

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

10.3 الحلول البديلة لحل مشكلة عدم توفر دالة TEXTJOIN

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

تتمثل إحدى الحيل المصفوفية الالتفافية الأكثر عبقرية لمستخدمي الإصدارات القديمة في الجمع بين دالة التشفير اللغوي XMLFILTER مع دالة SUBSTITUTE أو استخدام مصفوفة دوال تعتمد على الجمع النصي لدالة CONCAT إذا كانت متوفرة. في الحالات الأشد تعقيداً، يلجأ الخبراء إلى حيلة العمود المساعد المتراكم (Cumulative Helper Column)؛ حيث يتم إنشاء عمود إضافي بجوار الجدول الأصلي يعتمد على صياغة معادلة تراكمية مثل: =IF(A2=$D$2, B2 & “, ” & C1, C1)، والتي تقوم بتجميع النتائج تصاعدياً صَفاً تلو الآخر، لتأتي دالة VLOOKUP الكلاسيكية في النهاية وتسترجع القيمة المتراكمة من الصف الأخير المطابق.

ومع ذلك، يظل الحل الأكثر استدامة واقتصادية لتفادي هذه الحلول الالتفافية المعقدة هو الاستفادة من بيئة Excel للويب (Excel Online) المجانية المتاحة عبر متصفحات الإنترنت لكافة حاملي حسابات ميكروسوفت؛ حيث تدعم هذه المنصة السحابية أحدث محركات المصفوفات الديناميكية وتوفر دوال TEXTJOIN وFILTER مجاناً، مما يتيح إنجاز المهام التحليلية المتقدمة بكفاءة مطلقة دون الحاجة إلى تكبد تكاليف ترقية البرمجيات المكتبية على الأجهزة المحلية القديمة.

خاتمة

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

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

ختاماً، إن اختيار الأداة التقنية المثلى—سواء كانت توليفة TEXTJOIN+IF، أو دالة FILTER الحديثة، أو استعلامات Power Query للبيانات الضخمة—يجب أن يرتكز دائماً على تقييم واعي لحجم البيانات، وتوافق إصدارات البرمجيات المستخدمة لدى كافة أطراف العمل، والتوازن الدقيق بين استهلاك موارد المعالج والحاجة للتحديث اللحظي للنتائج. إن تبني أفضل الممارسات الهندسية في تنظيف المدخلات وتوثيق المراجع المهيكلة للجداول يضمن بناء نماذج مستقرة ومرنة تواكب تطلعات المؤسسات وتعزز من قدرتها التنافسية المبنية على البيانات الدقيقة والموثوقة.

المراجع

  • Bauer, K. N. (2013). The Impact of Trainee Characteristics on Transfer of Training Over Time. ODU Digital Commons (Old Dominion University). https://doi.org/10.25777/z93s-zw61
  • Drosos, I., Sarkar, A., & Gordon, A. D. (2024). “My toxic trait is thinking I’ll remember this”: gaps in the learner experience of video tutorials for feature-rich software. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2404.07114
  • Mammadova, S. (2023). Transparency of Compounds and their Potential Importance in English Learner Reading Comprehension. https://doi.org/10.22215/etd/2023-15465
  • Parise, S., & Rollag, K. (2009). Emergent network structure and initial group performance: The moderating role of pre‐existing relationships. Journal of Organizational Behavior. https://doi.org/10.1002/job.656
★

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

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

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

looti, M. (2026, أكتوبر 24). إكسيل: استخدام VLOOKUP لإرجاع قيم متعددة في خلية واحدة. عرب سايكلوجي. https://arabpsychology.com/statistics/excel-vlookup-return-multiple-values-one-cell/
looti, Mohammed. “إكسيل: استخدام VLOOKUP لإرجاع قيم متعددة في خلية واحدة.” عرب سايكلوجي, 24 أكتوبر 2026, https://arabpsychology.com/statistics/excel-vlookup-return-multiple-values-one-cell/.
looti, Mohammed. “إكسيل: استخدام VLOOKUP لإرجاع قيم متعددة في خلية واحدة.” عرب سايكلوجي. أكتوبر 24, 2026. https://arabpsychology.com/statistics/excel-vlookup-return-multiple-values-one-cell/.