إكسيل: إرجاع قيم متعددة بناءً على معيار واحد

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

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

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

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

تاريخياً، صُممت دوال الاستعلام والبحث الشائعة، مثل دالة البحث الرأسي (VLOOKUP) ودالة المطابقة والفهرسة الأولية (INDEX/MATCH)، للتعامل مع علاقات التقابل الأحادي (One-to-One)، حيث تنتهي خوارزمية البحث بمجرد العثور على التطابق الأول للمعيار المستهدف داخل المتجه المحدد. يقود هذا السلوك الافتراضي إلى تشويه تحليلي جسيم عند تطبيقه على ظواهر تحتوي تكرارات بنيوية مشروعة، كما في دراسات القياس النفسي والتربوي التي تتطلب تتبع استجابات عينة المشاركين عبر فترات زمنية متعددة (Alhadabi & Karpinski, 2019)، أو عند تصنيف بيانات الاختبارات السريرية والتدخلات السلوكية المتكررة. من هذا المنطلق، لم تعد مسألة استرجاع السجلات المتعددة مجرد حيلة تقنية في برمجيات الجداول الحسابية، بل استحالت ضرورة إبستمولوجية لحماية سلامة البيانات وضمان تمثيلها الإحصائي الكامل دون إسقاط أو تحيز اختزالي.

يتناول هذا الدليل الشامل والمفصل البنية الهندسية والرياضية لاسترجاع القيم المتعددة في إكسيل، بدءاً من تفكيك القصور البنيوي في محركات البحث التقليدية، مروراً بالتشريح المجهري لصيغة المصفوفات التراثية المركبة القائمة على تكامل دوال INDEX و SMALL و IF و ROW و ROWS، ووصولاً إلى فحص التحول التقني الهائل الذي أحدثه إدخال محرك المصفوفات الديناميكية ودالة FILTER في الإصدارات الحديثة (Microsoft 365 و Excel 2021 وما تلاها). سنستعرض كل مرحلة من هذه المراحل بدقة حاسوبية فائقة، مع تطبيق دراسة حالة عملية مستمدة من تحليل التواريخ الرياضية، وتشخيص الأخطاء الرياضية الناشئة وكيفية تحييدها، ووضع بروتوكولات صارمة للحوكمة والتحسين الحسابي في مجموعات البيانات الضخمة والمعقدة.

1. الإطار النظري لاسترجاع البيانات المتعددة في جداول البيانات

1.1 مفهوم مطابقة البيانات أحادية المعيار متعددة النتائج

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

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

1.2 تحديات استرجاع السجلات المتكررة في بيئات النمذجة الرياضية

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

تتعقد هذه التحديات الحسابية عند تداخل البيانات أو عدم ترتيبها ترتيباً مسبقاً وفق المفتاح المعياري، حيث يؤدي البحث العشوائي إلى فقدان الترتيب الطوبولوجي (Topological Order) للبيانات المستخرجة. يشير الحفاظ على الترتيب الطوبولوجي إلى ضرورة بقاء السجلات المسترجعة مرتبة بنفس التتابع الزمني أو المكاني الذي ظهرت به أصلاً في جدول الإدخال الأساسي. إن أي خلل في هذا الترتيب يفقد البيانات التسلسلية، مثل السلاسل الزمنية لمؤشرات الصحة النفسية لدى اليافعين أو التدخلات الوقائية، سياقها الدلالي الدقيق (Ogundele, 2018)، مما يفرض بناء خوارزميات مصفوفية تحافظ على البنية الزمنية والترتيبية الصارمة أثناء عملية الاستخراج.

2. القصور الهيكلي في دوال البحث التقليدية

2.1 محددات دالة VLOOKUP ودالة XLOOKUP القياسية

تعد دالة VLOOKUP من أقدم وأشهر دوال الاستعلام في إكسيل، غير أنها تعاني من قصور هيكلي متجذر نابع من فلسفة تصميمها الأساسية. تعمل الدالة عبر فحص العمود الأول من النطاق المحدد من الأعلى إلى الأسفل؛ وبمجرد أن ترصد خلية تطابق المعيار المطلوب (سواء عبر التطابق التام FALSE أو التقريبي TRUE)، تقوم الخوارزمية الداخلية بإيقاف دورة البحث فوراً (Mandatory Short-Circuit Termination) واسترجاع القيمة المقابلة من رقم العمود المحدد، دون أن تمتلك أدنى آلية لاستشعار وجود صفوف إضافية مطابقة للمعيار نفسه تقع أسفل ذلك الصف. وينطبق هذا المحدد نفسه على التركيبة الكلاسيكية لدالتي INDEX و MATCH الأحاديتين.

مع إطلاق دالة XLOOKUP الحديثة، حلت مايكروسوفت العديد من المشكلات المتعلقة بالبحث العكسي والافتراضات الافتراضية للتطابق، كما أتاحت إرجاع مصفوفة من الأعمدة المتجاورة؛ غير أن XLOOKUP في صياغتها القياسية تظل مقيدة بإرجاع أول مصادفة (First Match) أو آخر مصادفة (Last Match) فقط عند ضبط وسيط وضع البحث (Search Mode). تعجز دالة XLOOKUP بمفردها، دون دمجها مع بيئات التصفية الديناميكية، عن إرجاع جميع السجلات المتعددة المطابقة لنفس المعيار في صفوف مستقلة. يوضح الجدول التالي مقارنة مفاهيمية وهندسية بين دوال البحث الشائعة وطبيعة مصفوفات الإخراج التي تولدها:

  • دالة VLOOKUP: إخراج قيمة قياسية وحيدة (Scalar Value)؛ تبحث من اليمين لليسار أو العكس حسب اتجاه الورقة؛ تتوقف إلزامياً عند أول تطابق؛ تتأثر سلباً بإدراج أو حذف الأعمدة.
  • دالة INDEX/MATCH الأحادية: إخراج قيمة قياسية وحيدة؛ تتطلب تطابقاً بين متجهين مستقلين؛ تتوقف عند أول نتيجة يقدمها مؤشر MATCH؛ مرنة مكانياً ومحصنة ضد حذف الأعمدة، لكنها تقتصر على بعد إخراج فردي.
  • دالة XLOOKUP القياسية: إخراج متجه أحادي (صف أو عمود لنتيجة وحيدة)؛ تدعم خيارات بحث متعددة من البداية أو النهاية؛ تفشل تماماً في إرجاع تكرارات متعددة لمعيار واحد في مصفوفة عمودية مستقلة دون وسائط خارجية.
  • دالة FILTER الحديثة: إخراج مصفوفة ديناميكية متعددة الأبعاد والصفوف (Dynamic Array Spill)؛ تسترجع كافة النتائج المتطابقة دفعة واحدة وبشكل غير تدميري لمصفوفة الإدخال.

2.2 الحاجة إلى بناء خوارزمية مخصصة للبحث التكراري

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

تتمثل الميزة الاستراتيجية العظمى لهذه الخوارزمية الكلاسيكية المخصصة في توافقيتها التنازلية الكاملة (Backward Compatibility) مع شتى إصدارات إكسيل القديمة (مثل Excel 2003، 2007، 2010، 2013، 2016، و 2019)، وهي بيئات برمجية تفتقر جوهرياً إلى محرك المصفوفات الديناميكية الحديث ودالة FILTER. تضمن هذه المتانة الهندسية استمرارية النماذج المالية والإحصائية المعقدة عند تداولها بين مؤسسات بحثية وأكاديمية تستخدم إصدارات برمجية متباينة، مما يحفظ موثوقية استرجاع البيانات تحت مختلف الظروف التشغيلية.

3. التشريح الدقيق لتركيبة الصيغة المصفوفية المركبة

3.1 الوظيفة الهيكلية لدالة INDEX في استخلاص النتائج

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

تتجلى الأهمية الرياضية والبرمجية للتثبيت المطلق لعلامات الدولار (Absolute Referencing: $A$1:$A$14) في الحفاظ على ثبات حدود المصفوفة المستهدفة أثناء نسخ الصيغة وتطبيقها على خلايا النتائج المتعاقبة رأسياً. بدون هذا التثبيت المطلق، ستنزاح حدود المصفوفة تدريجياً لأسفل مع كل سحب للخلية، مما يترتب عليه خروج الصفوف العلوية من نطاق البحث ودخول خلايا سفلية فارغة، وهو ما يدمر سلامة البيانات المسترجعة ويفقد النموذج دقته الاستدلالية.

3.2 المنطق التقييمي لدالة IF الشرطية ضمن الصيغة

تمثل دالة IF الشرطية القلب المنطقي والناظم الأساسي لعملية التصفية داخل الصيغة المصفوفية. في هذا الجزء، لا تتعامل دالة IF مع مقارنة قياسية أحادية، بل تُخضع متجه المعايير كاملاً $B$1:$B$14 لاختبار منطقي متزامن مقابل الخلية المرجعية التي تحتوي المعيار المستهدف، ولتكن E$1. تنتج عن هذه العملية مصفوفة منطقية مؤقتة تتألف حصراً من قيم الصواب والخطأ المنطقية: {TRUE; FALSE; FALSE; TRUE; ...}، حيث يمثل كل عنصر موقعاً متطابقاً أو مختلفاً عن الشرط.

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

3.3 دور دالة SMALL في إعادة الترتيب التصاعدي للمواقع

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

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

4. هندسة الفهرسة الموضعية باستخدام دوال ROW و MATCH

4.1 توليد مصفوفة المواقع النسبية المتسلسلة

من الأخطاء القاتلة والشائعة في بناء صيغ المصفوفات الاعتماد المباشر على دالة ROW(النطاق) دون تجريد نسبي. فعند استدعاء دالة ROW($B$2:$B$15) مثلاً، تُرجع الدالة مصفوفة الأرقام المطلقة للصفوف في ورقة العمل: {2; 3; 4; ...; 15}. وإذا تم تمرير هذه المصفوفة مباشرة إلى دالة INDEX التي تبدأ من الصف الثاني INDEX($A$2:$A$15, ...)، فإن الرقم 2 المسترجع سيوجه الدالة لقراءة العنصر الثاني داخل نطاقها المخصص (وهو الصف المطلق رقم 3 في ورقة العمل)، مما يؤدي إلى إزاحة فيزيائية مستمرة بمقدار صف واحد وإرجاع بيانات غير صحيحة.

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

  • صيغة الطرح المرجعي الثابت: ROW($B$2:$B$15) - ROW($B$2) + 1؛ حيث يتم حساب رقم الصف الفعلي لكل عنصر ثم طرح رقم صف البداية منه وإضافة 1، مما يحول السلسلة المطلقة حتماً إلى مصفوفة تبدأ دائماً من {1; 2; 3; ...; n} بصرف النظر عن موقع الجدول داخل ورقة العمل.
  • صيغة الإسناد عبر دالة MATCH: ROW($B$2:$B$15) - MIN(ROW($B$2:$B$15)) + 1 أو MATCH(ROW($B$2:$B$15), ROW($B$2:$B$15))؛ وهي صيغة رياضية تضمن تحويل كل عنصر في المتجه الممسوح إلى رقم ترتيبي نسبي بحت يبدأ من الرقم الصحيح واحد.

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

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

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

5. تفعيل العداد الديناميكي التراكمي عبر دالة ROWS

5.1 آلية عمل التوسع النطاقي التدريجي

تحتاج دالة SMALL إلى تغذية مستمرة بقيمة الوسيط الرتبي $k$ لضمان استدعاء العناصر المتتالية واحداً تلو الآخر عند نسخ الصيغة رأسياً. إن كتابة القيم الثابتة يدوياً (1 ثم 2 ثم 3) في كل خلية أمر غير عملي ويقضي على ديناميكية النموذج. هنا يبرز الدور الذكي لدالة ROWS (بصيغة الجمع، وليس دالة ROW المفردة) عند توظيفها ضمن نطاق متوسع تدريجياً بصيغة مرجعية مختلطة: ROWS($A$1:A1) أو ROWS($E$1:E1).

تقوم فكرة التوسع النطاقي على تثبيت طرف النطاق الأول بمرجع مطلق $A$1 وترك الطرف الثاني كمرجع نسبي حر A1. في الخلية الأولى من خلايا النتائج، يقيس التعبير ROWS($A$1:A1) عدد الصفوف الممتدة بين الخلية A1 ونفسها، وتكون النتيجة الرياضية بديهياً هي الرقم 1، مما يطلب النتيجة الصغرى الأولى من دالة SMALL. وعند سحب مقبض التعبئة للأسفل نحو الخلية الثانية، يتوسع المرجع النسبي تلقائياً ليصبح ROWS($A$1:A2)، وتُرجع الدالة الرقم 2، ثم في الخلية الثالثة ROWS($A$1:A3) لتُرجع 3، مولدة بذلك متتالية حسابية تصاعدية طبيعية غير منقطعة ولا تتطلب أي تدخل يدوي.

5.2 التحكم في ديناميكية الفرز التتابعي

يكمن الفرق الجوهري بين استخدام دالة ROW(A1) ودالة ROWS($A$1:A1) في مقاومة الأخطاء الهيكلية؛ فبينما يمكن لدالة ROW(A1) أن تولد الرقم 1، إلا أنها عرضة للتلف الشديد إذا قام المستخدم بحذف الصف العلوي أو فرز خلايا الإخراج، أو نقل الصيغة إلى موضع آخر، حيث تنشأ أخطاء المراجع المفقودة #REF!. أما دالة ROWS($A$1:A1) التراكمية، فإنها تشكل عداداً داخلياً متماسكاً رياضياً يعتمد على فضاء هندسي يتوسع ذاتياً بدقة بالغة.

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

6. دراسة تطبيقية: تحليل سجلات الفائزين بنهائيات NBA

6.1 بناء هيكل جدول البيانات ونطاق الإدخال

لتطبيق هذه الأسس الهندسية على سيناريو واقعي دقيق، نعتمد دراسة تطبيقية قائمة على سجلات الفائزين بنهائيات دوري كرة السلة الأمريكي للمحترفين (NBA). يحتوي جدول البيانات الأساسي على نطاقين متطابقين في الحجم ممتدين من الصف 1 إلى الصف 14؛ حيث يخصص العمود A لتسجيل سنوات التتويج التاريخية (المتغير التابع المطلوب استرجاعه)، ويمتد نطاقه الحسابي من A1 إلى A14، بينما يخصص العمود B لأسماء الفرق الفائزة باللقب (المتغير المستقل)، ويمتد من B1 إلى B14، وفق الجدول التوضيحي التالي:

  • الخلية A1: 2011 | الخلية B1: Mavericks
  • الخلية A2: 2012 | الخلية B2: Heat
  • الخلية A3: 2013 | الخلية B3: Heat
  • الخلية A4: 2014 | الخلية B4: Spurs
  • الخلية A5: 2015 | الخلية B5: Warriors
  • الخلية A6: 2016 | الخلية B6: Cavaliers
  • الخلية A7: 2017 | الخلية B7: Warriors
  • الخلية A8: 2018 | الخلية B8: Warriors
  • الخلية A9: 2019 | الخلية B9: Raptors
  • الخلية A10: 2020 | الخلية B10: Lakers
  • الخلية A11: 2021 | الخلية B11: Bucks
  • الخلية A12: 2022 | الخلية B12: Warriors
  • الخلية A13: 2023 | الخلية B13: Nuggets
  • الخلية A14: 2024 | الخلية B14: Celtics

تُخصص الخلية E1 كخلية تحكم ديناميكية تفاعلية (Criterion Input Cell)، حيث يتم إدخال اسم الفريق المستهدف للبحث بداخلها يدوياً أو عبر قائمة منسدلة للتحقق من صحة البيانات. الهدف التحليلي هو استخراج كافة السنوات التي فاز فيها الفريق المحدد بالبطولة في قائمة عمودية متتالية تبدأ من الخلية E2 فما دونها.

6.2 التنفيذ العملي لاسترجاع سنوات تتويج فريق Warriors

لاختبار الخوارزمية، نُدخل القيمة “Warriors” في خلية التحكم E1. بعد ذلك، نتوجه إلى الخلية E2 ونكتب الصيغة المصفوفية المركبة بالصياغة الرياضية التالية:

=INDEX($A$1:$A$14, SMALL(IF($B$1:$B$14=E$1, ROW($A$1:$A$14)-ROW($A$1)+1), ROWS($E$2:E2)))

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

عند سحب مقبض التعبئة التلقائية من الخلية E2 نزولاً عبر الخلايا E3 و E4 و E5 و E6، تظهر النتائج بالترتيب الزمني الدقيق كالتالي:

  • الخلية E2: تُرجع 2015 (تطابق الفهرس النسبي رقم 5).
  • الخلية E3: تُرجع 2017 (تطابق الفهرس النسبي رقم 7).
  • الخلية E4: تُرجع 2018 (تطابق الفهرس النسبي رقم 8).
  • الخلية E5: تُرجع 2022 (تطابق الفهرس النسبي رقم 12).
  • الخلية E6 فما دونها: تُرجع خطأ القيمة الحسابية #NUM!، نظراً لنفاد مرات الفوز المسجلة للفريق في هذا النطاق، وهو ما يشكل سلوكاً حسابياً متوقعاً سيتم تفكيكه وضبطه في المحور التالي.

6.3 اختبار مرونة النموذج بتغيير المتغير المعياري

تثبت قوة هذا النموذج الرياضي عند تبديل قيمة الخلية المعيارية؛ فإذا استبدلنا القيمة في الخلية E1 وكتبنا اسم الفريق “Heat”، يُعيد محرك الحساب على الفور تقييم المصفوفة المنطقية لدالة IF لتصبح قيم الصواب مقتصرة على الصفين الثاني والثالث فقط. وبناءً عليه، تتحدث النتائج تلقائياً في ثوانٍ معدودة لتظهر السنوات 2012 في الخلية E2 و 2013 في الخلية E3، بينما تتحول الخلايا من E4 فصاعداً إلى أخطاء #NUM!.

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

7. التحليل التشخيصي للأخطاء الحسابية ومعالجة خطأ #NUM!

7.1 أسباب ظهور خطأ #NUM! وطبيعته الحسابية

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

لتوضيح ذلك بدقة: عندما يحتوي فريق Warriors على 4 سنوات تتويج فقط، فإن مصفوفة النتائج الصالحة داخل دالة IF تتكون من 4 قيم موضعية عددية فقط: {5; 7; 8; 12}، في حين تحولت بقية المواقع العشرة إلى نصوص فارغة "". عند وصول الصيغة المسحوبة إلى الخلية الخامسة E6، يولد العداد ROWS($E$2:E6) القيمة 5 كطلب للرتبة الخامسة (k=5). تبحث دالة SMALL عن خامس أصغر رقم في مصفوفة لا تحوي سوى أربعة أرقام، فتفشل العملية الحسابية حتماً لعدم وجود قيمة مقابلة، وتُرجع الدالة رسالة الخطأ القياسية #NUM! معلنة انتهاء الأهداف الصالحة.

7.2 تحسين واجهة الإخراج باستخدام دوال معالجة الأخطاء

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

=IFERROR(INDEX($A$1:$A$14, SMALL(IF($B$1:$B$14=E$1, ROW($A$1:$A$14)-ROW($A$1)+1), ROWS($E$2:E2))), "")

تعمل دالة IFERROR كصمام أمان منطقي يقيم الصيغة الداخلية؛ فإذا أسفرت عن نتيجة عددية أو نصية صحيحة، تم تمريرها وعرضها فوراً؛ أما إذا أثارت الصيغة أي خطأ (بما فيه خطأ #NUM! الناتج عن نفاد التكرارات)، تُسقط دالة IFERROR الخطأ وتستبدله بالقيمة المحددة في وسيطها الثاني، وهي هنا علامتا تنصيص فارغتان "". ينتج عن هذا التغليف واجهة عرض نظيفة وخالية من الشوائب الحسابية، مما يمنح الجدول مظهراً احترافياً يسمح بسحب الصيغة لعشرات الصفوف دون تشويه ورقة العمل بالرسائل التحذيرية.

8. المقارنة التحليلية مع الحلول الحديثة: دالة FILTER في Microsoft 365

8.1 التحول النموذجي نحو محركات المصفوفات الديناميكية

في سبتمبر من عام 2018، وخلال مؤتمر Microsoft Ignite، أعلن فريق تطوير إكسيل في شركة مايكروسوفت عن أكبر ثورة برمجية في تاريخ محرك الحساب منذ إطلاق البرنامج في ثمانينيات القرن الماضي؛ تمثلت في إدخال محرك المصفوفات الديناميكية (Dynamic Arrays Engine). جاء هذا المحرك ليقضي تماماً على الحاجة إلى التثبيت اليدوي بالمفاتيح CSE وسحب الصيغ لمواقع متعددة، مقدماً دالة ثورية مخصصة لمعالجة هذا السيناريو تحديداً: دالة FILTER.

تتم كتابة دالة FILTER لحل مسألة سجلات الفائزين بنهائيات NBA بتركيبة مدهشة في بساطتها الرياضية وأناقتها التعبيرية، حيث تُكتب في الخلية E2 فقط دون سحب كالتالي:

=FILTER(A1:A14, B1:B14=E1, "لا توجد نتائج")

تقوم دالة FILTER بالعمليات التالية تلقائياً:

  • تستقبل النطاق المستهدف للقيم A1:A14 في وسيطها الأول array.
  • تُخضع نطاق الفحص لاختبار بولياني مباشر B1:B14=E1 في الوسيط الثاني include، وتولد داخلياً مصفوفة الصواب والخطأ.
  • تستخلص القيم المقابلة لقيم الصواب وتفرغها تلقائياً نحو الأسفل عبر خلايا متتالية فيما يعرف بمجال الانسكاب التلقائي (Spill Range)، والذي يُحاط بحدود زرقاء خفيفة تفاعلية.
  • تعالج حالات غياب المعيار المطابق مباشرة عبر وسيطها الاختياري الثالث [if_empty]، دون أي حاجة للاستعانة بدالة IFERROR الخارجية.

8.2 معايير المفاضلة بين الصيغ الكلاسيكية والصيغ الحديثة

يطرح هذا التحول التكنولوجي تساؤلاً جوهرياً حول مسوغات تعلم أو استخدام الصيغ الكلاسيكية المركبة (INDEX/SMALL/IF) في ظل وجود دالة FILTER الحديثة. تكمن الإجابة في التباين الصارم لبيئات النشر وسياقات العمل المؤسسي؛ فالصيغ الحديثة تقتصر على مستخدمي Microsoft 365 ونسخ Excel 2021 وما بعدها. لا يزال قطاع عريض من المؤسسات الحكومية، والجامعات، والشركات الكبرى، وأنظمة التحليل المتكاملة يعتمد على إصدارات Excel 2016 و Excel 2019 المستقلة، أو يتبادل الملفات مع أطراف تستخدم منصات لا تدعم محركات الانسكاب المصفوفي.

يوضح الجدول التحليلي التالي الفروق الجوهرية لمعايير المفاضلة بين المنهجين لتمكين مديري البيانات من اختيار النهج الأنسب وفق متطلبات بنيتهم التقنية:

  • التوافقية التنازلية (Backward Compatibility): صيغة INDEX/SMALL/IF تعمل بكفاءة مطلقة على كافة الإصدارات منذ إكسيل 97 وحتى أحدث نسخة؛ بينما تفشل دالة FILTER وتتحول لخطأ #NAME? على أي إصدار أقدم من 2021 أو غير المرتبط باشتراكات 365.
  • التعقيد الإدراكي والصيانة: دالة FILTER فائقة الوضوح، سهلة التعديل، وتوفر مساحة زمنية هائلة في التطوير والتدقيق؛ بينما تتطلب الصيغة الكلاسيكية استيعاباً عميقاً لجبر المصفوفات وحساب الفهارس النسبية.
  • إشغال مساحة التخزين في ورقة العمل: تستهلك دالة FILTER خلية وحيدة تتولى هي التحكم بما دونها؛ بينما تستلزم الصيغة الكلاسيكية كتابة المعادلة وتكرارها في كل خلية من خلايا نطاق الإخراج بشكل مستقل.
  • التأثر بالعوائق المكانية (Spill Blockage): إذا اعترض مسار تدفق دالة FILTER خلية ممتلئة بالبيانات، يتوقف الانسكاب ويظهر خطأ #SPILL!؛ في حين تملأ الصيغة الكلاسيكية الخلايا المنسوخة إليها فقط وتتجاهل طبيعة الخلايا المجاورة.

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

9.1 تأثير العمليات الحسابية المتكررة للمصفوفات على الذاكرة

عند الانتقال بالنمذجة الرياضية من جداول محدودة تضم عشرات الصفوف إلى مجموعات بيانات ضخمة (Big Datasets) تحتوي على مئات الآلاف من القياسات، تبرز معضلة استهلاك الذاكرة وتكلفة الحوسبة الزمنية (Computational Complexity). في صيغة INDEX/SMALL/IF التراثية، يُجبر محرك الحساب في إكسيل على تقييم مصفوفة IF الشرطية ومسح المتجه $B$1:$B$14 كاملاً من جديد داخل كل خلية فردية تُسحب إليها الصيغة.

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

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

9.2 استراتيجيات التسريع الحسابي للنماذج الإحصائية المعقدة

لتحييد هذا التدهور في الأداء، يُنصح باتباع استراتيجيات التسريع الهندسي في إكسيل، ومن أبرزها:

  • تقنية عمود المساعدة (Helper Column Approach): يتم تخصيص عمود إضافي داخل جدول البيانات المصدر لحساب الفهارس التراكمية المطابقة مرة واحدة فقط باستخدام دالة بسيطة وخفيفة مثل IF(B2=$E$1, MAX($C$1:C1)+1, ""). بعد ذلك، تستخدم خلايا النتائج دالة INDEX ومطابقة رقمية بسيطة وسريعة للغاية تسترجع القيم بلمح البصر دون أي تقييم مصفوفي مكرر.
  • تحويل النطاقات إلى جداول مهيكلة (Excel Structured Tables): يتيح استخدام صيغة الجداول الرسمية (بالضغط على Ctrl + T) تفعيل الإسناد المنطقي التلقائي المحدود بالأبعاد الفعلية للبيانات، مثل Table1[Winner]، مما يمنع فحص المساحات الخالية أسفل الجدول ويحد من هدر الذاكرة المؤقتة.
  • الفرز المسبق والتصنيف الموضعي: عندما تكون البيانات مرتبة ومفروزة مسبقاً وفق المعيار، يمكن توظيف دوال تحديد النطاق الديناميكي مثل دالة OFFSET أو تكامل دوال INDEX لتوجيه البحث نحو كتلة الخلايا المعنية حصراً بدلاً من مسح المصنف بأكمله، مما يرفع كفاءة المعالجة بعشرات الأضعاف.

10. الممارسات المنهجية الفضلى لتوثيق وتطبيق نماذج الاسترجاع

10.1 قواعد توثيق الصيغ المركبة للفرق البحثية والمؤسسية

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

يعد استخدام النطاقات المسماة (Named Ranges) من أرقى الممارسات لتعزيز القراءة الذاتية للصيغ البرمجية؛ فتحويل الصيغة من مراجع غامضة $A$1:$A$14 إلى صياغة واضحة مثل INDEX(Championship_Year, SMALL(IF(Winning_Team=Selected_Team, ...))) يزيل الغموض المفاهيمي، ويسمح لأي باحث مدقق بالتحقق الفوري من سلامة الربط المنطقي. كما يتعين توثيق أية افتراضات متعلقة بإصدارات إكسيل المشغلة للمصنف بوضوح في الصفحة الاستهلالية لمنع تشغيل الملف في بيئات برمجية غير متوافقة دون وعي بالمحددات التقنية.

تكتسب هذه الشفافية التوثيقية أهمية محورية عند بناء النماذج التدخلية في القطاعات الصحية والطب الرياضي التشاركي؛ حيث تتكامل فرق متعددة التخصصات لفحص مسارات التعافي وبرامج الدعم متعددة الأوجه (Archer et al., 2012). إن غياب الشفافية والتوثيق المنهجي في جداول استرجاع البيانات الفسيولوجية والبدنية قد يولد أخطاء في ترجمة مؤشرات الإجهاد، وهو ما حذرت منه التوافقات الطبية الدولية للجان الأولمبية في إدارة رعاية الرياضيين وصغار السن النامين رياضياً (Bergeron et al., 2015).

10.2 حوكمة البيانات والتحقق من صحة المدخلات المعيارية

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

لضمان حوكمة البيانات والتحصين ضد الأخطاء البشرية، يجب تطبيق القواعد الصارمة التالية:

  • تطبيق التحقق من صحة البيانات (Data Validation): تقييد الإدخال في خلية المعيار E1 عبر قائمة منسدلة مستمدة مباشرة من عمود البيانات الأصلي، مما يمنع المستخدم من كتابة نصوص عشوائية أو الوقوع في أخطاء إملائية.
  • التنظيف البرمجي للمدخلات والمصفوفات: إدماج دالة التشذيب TRIM ودالة التنظيف CLEAN داخل اختبار المقارنة المنطقية كإجراء وقائي: TRIM(CLEAN($B$1:$B$14))=TRIM(CLEAN(E$1)) لضمان إزالة المسافات الطفيلية، والمحارف غير القابلة للطباعة تلقائياً قبل المطابقة.
  • التدقيق المتقاطع لشمولية النتائج (Cross-Verification Audit): إضافة خلية رقابية مستقلة في التقرير تحسب عدد النتائج الإجمالية المتوقعة باستخدام دالة العد البسيطة =COUNTIF($B$1:$B$14, E$1)، ومقارنتها بعدد الصفوف المسترجعة فعلياً في عمود النتائج للتأكد من عدم سقوط أي سجل نتيجة لخطأ في امتداد سحب الصيغة لأسفل.

إن إحكام هذه الضوابط التوثيقية والرقابية يحمي بيئات التحليل من الوقوع في التحيزات التشغيلية وفخاخ الثقة المفرطة التي تلازم في كثير من الأحيان النماذج الإحصائية المعقدة غير المحصنة (Moore et al., 2017). كما أن الصرامة اللغوية والدلالية في تسمية المتغيرات وتطابقها يعكس البنية المعرفية التداولية التي تحكم أطر التفكير التحليلي البشري وعلاقتها الدقيقة بالأنظمة الحسابية المرمزة (Carruthers, 2002)، محولة جداول البيانات من مجرد مستودعات أرقام جامدة إلى منظومات برمجية رصينة تتسم بالدقة، والمصداقية، والاستدامة العلمية الكاملة.

خلاصة القول، يمثل استرجاع قيم متعددة بناءً على معيار فردي واحد في مايكروسوفت إكسيل نموذجاً متقدماً لتطويع الأدوات الحسابية لخدمة النمذجة المنطقية متعددة الأبعاد. وسواء تم اللجوء إلى التوليفة الكلاسيكية المعقدة (INDEX/SMALL/IF) لضمان متانة التوافق التنازلي التام، أو تم تبني القوة الديناميكية الحديثة لدالة FILTER في بيئات العمل المتطورة، يظل الفهم العميق لآليات الفهرسة النسبية، وإدارة مؤشرات المصفوفات، والتحكم في الأخطاء الرياضية، الركيزة الأساسية لكل محلل يسعى إلى بناء نماذج بيانات رصينة، وشفافة، وذات كفاءة حسابية فائقة.

المراجع

  • Alhadabi, A., & Karpinski, A. C. (2019). Grit, self-efficacy, achievement orientation goals, and academic performance in University students. International Journal of Adolescence and Youth. https://doi.org/10.1080/02673843.2019.1679202
  • Archer, J., Bower, P., Gilbody, S. M., Lovell, K., Richards, D. A., Gask, L. L., et al. (2012). Collaborative care for depression and anxiety problems. Cochrane Database of Systematic Reviews. https://doi.org/10.1002/14651858.cd006525.pub2
  • Bergeron, M. F., Mountjoy, M. L., Armstrong, N., Chia, M., Côté, J., Emery, C. A., et al. (2015). International Olympic Committee consensus statement on youth athletic development. British Journal of Sports Medicine. https://doi.org/10.1136/bjsports-2015-094962
  • Carruthers, P. (2002). The cognitive functions of language. Behavioral and Brain Sciences. https://doi.org/10.1017/s0140525x02000122
  • Dunning, D. A., Heath, C., & Suls, J. M. (2004). Flawed Self-Assessment. Gothic.net. https://doi.org/10.1111/j.1529-1006.2004.00018.x
  • Green, C. S., & Bavelier, D. (2012). Learning, Attentional Control, and Action Video Games. Current Biology. https://doi.org/10.1016/j.cub.2012.02.012
  • Moore, S. E., Norman, R. E., Suetani, S., Thomas, H. J., Sly, P. D., & Scott, J. G. (2017). Consequences of bullying victimization in childhood and adolescence: A systematic review and meta-analysis. World Journal of Psychiatry. https://doi.org/10.5498/wjp.v7.i1.60
  • Ogundele, M. O. (2018). Behavioural and emotional disorders in childhood: A brief overview for paediatricians. World Journal of Clinical Pediatrics. https://doi.org/10.5409/wjcp.v7.i1.9
  • Reardon, C. L., Gouttebarge, V., Kroshus, E., Baron, D. A., Bahr, R., Blauwet, C. A., et al. (2019). Mental health in elite athletes: International Olympic Committee consensus statement (2019). British Journal of Sports Medicine. https://doi.org/10.1136/bjsports-2019-100715
★

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

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

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

looti, M. (2026, أكتوبر 23). إكسيل: إرجاع قيم متعددة بناءً على معيار واحد. عرب سايكلوجي. https://arabpsychology.com/statistics/excel-return-multiple-values-single-criteria/
looti, Mohammed. “إكسيل: إرجاع قيم متعددة بناءً على معيار واحد.” عرب سايكلوجي, 23 أكتوبر 2026, https://arabpsychology.com/statistics/excel-return-multiple-values-single-criteria/.
looti, Mohammed. “إكسيل: إرجاع قيم متعددة بناءً على معيار واحد.” عرب سايكلوجي. أكتوبر 23, 2026. https://arabpsychology.com/statistics/excel-return-multiple-values-single-criteria/.