اذهب الي المحتوي
أوفيسنا

شرح دالة INDEX و MATCH


قصي

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

شرح عمل نطاق ديناميكي أو قائمة مطاطية Dynamic Range

 

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

 

>> بندخل على التبويب Formulas ثم Name Manager ونضغط New (سأقوم بحذف كل النطاقات الغير هامة أو مكررة) ونكتب في حقل Name اسم النطاق هنسميه (رقم_الجلوس) ، وفي الحقل المسمى Refers to هنكتب المعادلة بهذا الشكل :

='كنترول شيت'!$B$11:INDEX('كنترول شيت'!$B$11:$B$500,COUNTA('كنترول شيت'!$B$11:$B$500))

الجزء الأول في المعادلة بيحدد بداية النطاق ألا وهو الخلية B11 وبما إن خلية البداية لازم تكون ثابتة فبنضيف علامات الدولار قبل اسم العمود ورقم الصف لتصبح بهذا الشكل

$B$11

نلاحظ في المعادلة إنه بيتم الإشارة إلى ورقة العمل اللي فيها النطاق ، وورقة العمل هي "كنترول شيت" ، والتي تحتوي على أرقام الجلوس في العمود B بداية من الخلية B11

 

بعدما حددنا خلية البداية وضعنا : (نقطتين فوق بعض) عشان الجزء اللي ورا النقطتين فوق بعض هو دا المسئول عن تحديد آخر خلية في النطاق

 

الجزء الثاني في المعادلة (المسئول عن البحث عن آخر رقم جلوس في النطاق)

INDEX('كنترول شيت'!$B$11:$B$500,COUNTA('كنترول شيت'!$B$11:$B$500))

الدالة INDEX دالة فهرسة أو بحث ، ودي ليها ثلاثة بارمترات :

 

** البارامتر الأول عبارة عن مصفوفة لقيم النطاق .. يعني لو خدنا السطر السابق ووضعناه في خلية ووضعنا علامة يساوي قبله (الناتج هيكون آخر رقم جلوس في النطاق)

ولو جينا بعد القوس المفتوح بعد اسم الدالة INDEX ووضعنا مؤشر الكتابة بيظهر تلميح مع المعادلة .. هتلاقي كلمة Array في التلميح بلون أسود عريض Bold انقر عليه بالماوس ، هيحدد لك في المعادلة مصفوفة القيم اللي هي في مثالنا

'كنترول شيت'!$B$11:$B$500

هو دا نطاق أرقام الجلوس .. واستخدمنا هنا رقم 500 كحد أقصى للبيانات ، ممكن نغير رقم 500 إلى أي رقم أكبر زي 1000 أو أكتر ..

نيجي نضغط F9 من لوحة المفاتيح بعد ما حددنا الجزء ده في المعادلة هنلاقي قيم النطاق بالكامل بما فيها الخلايا الفارغة ، الخلايا الفارغة هتاخد القيمة صفر ، وبقية القيم هي عبارة عن أرقام الجلوس

{1983;1984;1985;1986;1987;1988;1989;1990;1991;1992;1993;1994;1995;1996;1997;1998;1999;2000;2001;2002;2003;2004;2005;2006;2007;2008;2009;2010;2011;2012;2013;2014;2015;2016;2017;2018;2019;2020;2021;2022;2023;2024;2025;2026;2027;2028;2029;2030;2031;2032;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}

هو دا شكل القيم داخل المصفوفة .. طبعاً عشان نلغي اللي عملناه نضغط Ctrl + Z من لوحة المفاتيح للتراجع (الحركة اللي عملناها عشان نفهم شكل المصفوفة التي سيتم البحث داخلها)

 

** البارامتر الثاني وهو لمعرفة عدد الصفوف ، والمطلوب إننا نجيب عدد الصفوف التي تحتوي على قيم فقط (الخلايا التي تحتوي على قيم دون الأصفار) وهنا تم استخدام دالة COUNTA ودي دالة سهلة لعد القيم دون الفراغات ، وسيتم عد نفس النطاق

COUNTA('كنترول شيت'!$B$11:$B$500)

ولو ضغطنا F9 من لوحة المفاتيح هنلاقي الناتج لهذا الجزء هو 50 أي أن عدد أرقام الجلوس 50

 

** البارامتر الثالث وهو اختياري ولم يتم الإشارة إليه في المعادلة وهو عدد الأعمدة ، ودا هنا الإكسيل بيفهم إن عدد الأعمدة واحد فقط لأننا شغالين على عمود واحد فقط ألا وهو العمود B.

 

لو عايز تعرف شكل النطاق بعد وضع المعادلة ادخل على Name Manager وحدد اسم النطاق (رقم_الجلوس) ثم انقر على كلمة Edit ثم أخيراً انقر على السهم الأحمر على يمين المعادلة ، ستجد أن الإكسيل سيقوم بتحديد النطاق الديناميكي ..

قم بإضافة أرقام جلوس أخرى ، وعيد نفس الخطوات وشوف النتيجة بنفسك (ستجد أن النطاق ديناميكي وليس ثابت)

 

  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

إنت تؤمر أخي وحبيبي صلاح

إنت تسأل ونحن نجيب بإذن الله

قل بفضل الله .. وقل الحمد لله

 

تقبل تحياتي

  • Like 1
رابط هذا التعليق
شارك

شرح دالة Index فهي أكثر مرونة من غيرها

للمبدع ياسر خليل

 

إليك المعادلة التالية ضع المعادلة في الخلية F4

=IFERROR(INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0)),"")

شرح المعادلة

*************

الجزء الأول الدالة IFERROR وتستخدم الدالة في حالة حدوث خطأ في النواتج ولها عدد 2 بارامتر : الأول هو القيمة value والثاني value_if_error أي القيمة التي توضع في حالة حدوث خطأ ..

 

البارامتر الأول هنا هو الجزء الأول (الخاص بالبحث)

INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والبارامتر الثاني هو الجزء

""

أي أنه عند البحث وعدم وجود نتائج للبحث فإنه يحدث خطأ #N/A ولتجنب الخطأ توضع القيمة فراغ ، عن طريق أقواس التنصيص مرتين متتاليتين

 

الجزء الثاني هو الجزء الخاص بالبحث

INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والدالة Index من الدوال البحثية لها 3 بارامترات ..

------------------------------------------------

** البارامتر الأول النطاق اللي المفروض عايزين النتائج منه ، أو مصفوفة القيم المراد البحث داخلها

ولو وقفنا داخل المعادلة وحددنا الجزء ده

$C$12:$C$16

وضغطنا من لوحة المفاتيح F9 هنلاقي النتائج بهذا الشكل

{12;15;18;21;24}

ودي مصفوفة القيم المراد البحث داخلها

 

** البارامتر الثاني هو رقم الصف داخل مصفوفة القيم ، مش رقم الصف في ورقة العمل ..

طيب إزاي هنعرف رقم الناتج أو الصف المراد البحث عنه داخل المصفوفة

هنا بنستخدم الدالة Match ودي دالة بحث بردو بتجيب رقم الصف

MATCH(B4,$B$12:$B$16,0)

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

وبيتم البحث عن قيمة الخلية B4 في النطاق

$B$12:$B$16

ودا بردو مصفوفة النطاق ..يعني لو حددنا السطر ده وضغطنا F9 من لوحة المفاتيح هتلاقي الناتج بهذا الشكل

{"معلم";"خبير";"مساعد";"مدرس";"اخصائى"}

فاللي بيحصل إنه بيبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة دي .. القيمة الموجودة كلمة "معلم" ودي أول كلمة في المصفوفة يعني رقم 1

إذاً رقم الصف هو واحد (وأؤكد ليس المقصود رقم الصف في ورقة العمل .. المقصود رقم نتيجة البحث داخل المصفوفة )

طيب رقم 0 دا ايه فايدته ... فايدته إننا بنقول لعملية البحث إنها تكون متطابقة تماماً .. تطابق عملية البحث للقيمة المراد البحث عنها

 

>> إحنا دلوقتي عندنا نطاقين أو مصفوفتين للقيم (الأولى المراد استخراج النتيجة منها) و (الثانية المراد البحث بداخلها) :rol:

الإكسيل بيقوم الأول بالبحث قبل ما يظهر النتيجة (دي الخطوات المنطقية للعمل) .. بيقوم بالبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة الخاصة بيها .. طلع الناتج 1 لأنها أول نتائج البحث

 

خلاص وصل الإكسيل لرقم ناتج البحث داخل المصفوفة ..ياخد الرقم دي ويشوف النتيجة رقم1 الموجودة في المصفوفة الأول ..هيلاقي إن رقم 1 في المصفوفة الأولى هو رقم 12

 

** البارامتر الثالث اختياري ودا هنا ملوش استخدام لأن المصفوفة مكونة من بعد واحد

فممكن نكتب رقم 1 أو نتركه من غيره ما نكتبه لأن رقم 1 هو الافتراضي

=INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

>>>>> عشان نفهم أبعاد المصفوفة ذات البعدين

-------------------------------------------------

ضع المعادلة التالية في أي خلية

=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0))

المصفوفة الأولى هي

$B$12:$C$16

نخلي بالنا هنا المصفوفة بتاخد القيم من عمودين ..يبقا المصفوفة ثنائية الأبعاد

نحدد الجزء اللي فات ونضغط F9 من لوحة المفاتيح هنلاقي النتائج بهذا الشكل

{"معلم",12;"خبير",15;"مساعد",18;"مدرس",21;"اخصائى",24}

لو ركزنا هنعرف شكل المصفوفة .. بتاخد قيم الصف من العمودين مع بعض يعني مثلاً : معلم و 12 في صف واحد وداخل المصفوفة مع بعض بيفصل بينهم فاصلة عادية

بعد كدا الصف اللي بعديه هتلاقي خبير 15 وبردو بيفصل بينهم فاصلة عادية ... أما الفاصل بين قيم المصفوفة أقصد البعد الثاني بيتم الفصل بفاصلة منقوطة

 

بمعنى آخر :

**********

معلم 12 أول صف في المصفوفة

خبير 15 ثاني صف في المصفوفة

مساعد 18 تالت صف في المصفوفة وهكذا .. (بيفصل بين الصفوف فاصلة منقوطة)

 

داخل الصف الواحد عمودين لأن المصفوفة من بعدين : عمود 1وعمود 2 (بيفصل بين الأعمدة داخل المصفوفة فاصلة عادية)

 

ناخد مثال بسيط عشان نفهم العملية إزاي بتتم : لو عايزين رقم الصف 4 والعمود 1

هنشوف المصفوفة ..

رقم البصف 4 هنلاقي مدرس 14 ، ورقم العمود المطلوب هو العمود 1 إذاً الناتج كلمة مدرس

 

يا ريت تكون النقطة دي وضحت

**************************************************************************

 

نجرب المعادلة دي ونشوف اللي فهمناه

=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

ع السريع هيتم البحث داخل المصفوفة ذات البعدين (طالما إنها ذات بعدين إذاً سيتم الاستعانة بالبارامتر الثاني والثالث للدالة Index) عشان نعرف رقم الصف المطلوب ورقم العمود المطلوب

هنا رقم الصف هنجيبه من خلال الدالة Match هنلاقي رقم الصف هو 1

وأخيراً البارامتر التالت ودا كتبناه 1 يعني العمود الأول

إذاً الناتج النهائي هو كلمة "معلم"

 

لو غيرنا رقم العمود من 1 إلى 2 هيتغير الناتج إلى 12

 

لو غيرنا رقم العمود إلى 3 هيديني خطأ لأن المصفوفة ذات بعدين مش 3 .. الخطأ #REF!

 

أرجو أن أكون وفقت في توصيل المعلومة :fff: :fff: :fff:

تم تعديل بواسطه قصي
  • Thanks 1
رابط هذا التعليق
شارك

شرح المعاددلة كان على المرفق في المشاركة رقم

 

 

 

عايزين ملف اكسيل ياباشا  ليظل مرجعا

مع الشرح بعد اذنك

 

 

شرح المعادلة تم على المرفق الموجود في المشاركة رقم 1 .. حاول تجتهد وتطبق بنفسك لو عايز تتعلم

رابط هذا التعليق
شارك

  • 2 years later...
في ١٠‏/٦‏/٢٠١٥ at 01:18, قصي said:

شرح دالة Index فهي أكثر مرونة من غيرها

للمبدع ياسر خليل

 

إليك المعادلة التالية ضع المعادلة في الخلية F4


=IFERROR(INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0)),"")

شرح المعادلة

*************

الجزء الأول الدالة IFERROR وتستخدم الدالة في حالة حدوث خطأ في النواتج ولها عدد 2 بارامتر : الأول هو القيمة value والثاني value_if_error أي القيمة التي توضع في حالة حدوث خطأ ..

 

البارامتر الأول هنا هو الجزء الأول (الخاص بالبحث)


INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والبارامتر الثاني هو الجزء

""

أي أنه عند البحث وعدم وجود نتائج للبحث فإنه يحدث خطأ #N/A ولتجنب الخطأ توضع القيمة فراغ ، عن طريق أقواس التنصيص مرتين متتاليتين

 

الجزء الثاني هو الجزء الخاص بالبحث


INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والدالة Index من الدوال البحثية لها 3 بارامترات ..

------------------------------------------------

** البارامتر الأول النطاق اللي المفروض عايزين النتائج منه ، أو مصفوفة القيم المراد البحث داخلها

ولو وقفنا داخل المعادلة وحددنا الجزء ده


$C$12:$C$16

وضغطنا من لوحة المفاتيح F9 هنلاقي النتائج بهذا الشكل


{12;15;18;21;24}

ودي مصفوفة القيم المراد البحث داخلها

 

** البارامتر الثاني هو رقم الصف داخل مصفوفة القيم ، مش رقم الصف في ورقة العمل ..

طيب إزاي هنعرف رقم الناتج أو الصف المراد البحث عنه داخل المصفوفة

هنا بنستخدم الدالة Match ودي دالة بحث بردو بتجيب رقم الصف


MATCH(B4,$B$12:$B$16,0)

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

وبيتم البحث عن قيمة الخلية B4 في النطاق


$B$12:$B$16

ودا بردو مصفوفة النطاق ..يعني لو حددنا السطر ده وضغطنا F9 من لوحة المفاتيح هتلاقي الناتج بهذا الشكل


{"معلم";"خبير";"مساعد";"مدرس";"اخصائى"}

فاللي بيحصل إنه بيبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة دي .. القيمة الموجودة كلمة "معلم" ودي أول كلمة في المصفوفة يعني رقم 1

إذاً رقم الصف هو واحد (وأؤكد ليس المقصود رقم الصف في ورقة العمل .. المقصود رقم نتيجة البحث داخل المصفوفة )

طيب رقم 0 دا ايه فايدته ... فايدته إننا بنقول لعملية البحث إنها تكون متطابقة تماماً .. تطابق عملية البحث للقيمة المراد البحث عنها

 

>> إحنا دلوقتي عندنا نطاقين أو مصفوفتين للقيم (الأولى المراد استخراج النتيجة منها) و (الثانية المراد البحث بداخلها) :rol:

الإكسيل بيقوم الأول بالبحث قبل ما يظهر النتيجة (دي الخطوات المنطقية للعمل) .. بيقوم بالبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة الخاصة بيها .. طلع الناتج 1 لأنها أول نتائج البحث

 

خلاص وصل الإكسيل لرقم ناتج البحث داخل المصفوفة ..ياخد الرقم دي ويشوف النتيجة رقم1 الموجودة في المصفوفة الأول ..هيلاقي إن رقم 1 في المصفوفة الأولى هو رقم 12

 

** البارامتر الثالث اختياري ودا هنا ملوش استخدام لأن المصفوفة مكونة من بعد واحد

فممكن نكتب رقم 1 أو نتركه من غيره ما نكتبه لأن رقم 1 هو الافتراضي


=INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

>>>>> عشان نفهم أبعاد المصفوفة ذات البعدين

-------------------------------------------------

ضع المعادلة التالية في أي خلية


=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0))

المصفوفة الأولى هي


$B$12:$C$16

نخلي بالنا هنا المصفوفة بتاخد القيم من عمودين ..يبقا المصفوفة ثنائية الأبعاد

نحدد الجزء اللي فات ونضغط F9 من لوحة المفاتيح هنلاقي النتائج بهذا الشكل


{"معلم",12;"خبير",15;"مساعد",18;"مدرس",21;"اخصائى",24}

لو ركزنا هنعرف شكل المصفوفة .. بتاخد قيم الصف من العمودين مع بعض يعني مثلاً : معلم و 12 في صف واحد وداخل المصفوفة مع بعض بيفصل بينهم فاصلة عادية

بعد كدا الصف اللي بعديه هتلاقي خبير 15 وبردو بيفصل بينهم فاصلة عادية ... أما الفاصل بين قيم المصفوفة أقصد البعد الثاني بيتم الفصل بفاصلة منقوطة

 

بمعنى آخر :

**********

معلم 12 أول صف في المصفوفة

خبير 15 ثاني صف في المصفوفة

مساعد 18 تالت صف في المصفوفة وهكذا .. (بيفصل بين الصفوف فاصلة منقوطة)

 

داخل الصف الواحد عمودين لأن المصفوفة من بعدين : عمود 1وعمود 2 (بيفصل بين الأعمدة داخل المصفوفة فاصلة عادية)

 

ناخد مثال بسيط عشان نفهم العملية إزاي بتتم : لو عايزين رقم الصف 4 والعمود 1

هنشوف المصفوفة ..

رقم البصف 4 هنلاقي مدرس 14 ، ورقم العمود المطلوب هو العمود 1 إذاً الناتج كلمة مدرس

 

يا ريت تكون النقطة دي وضحت

**************************************************************************

 

نجرب المعادلة دي ونشوف اللي فهمناه


=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

ع السريع هيتم البحث داخل المصفوفة ذات البعدين (طالما إنها ذات بعدين إذاً سيتم الاستعانة بالبارامتر الثاني والثالث للدالة Index) عشان نعرف رقم الصف المطلوب ورقم العمود المطلوب

هنا رقم الصف هنجيبه من خلال الدالة Match هنلاقي رقم الصف هو 1

وأخيراً البارامتر التالت ودا كتبناه 1 يعني العمود الأول

إذاً الناتج النهائي هو كلمة "معلم"

 

لو غيرنا رقم العمود من 1 إلى 2 هيتغير الناتج إلى 12

 

لو غيرنا رقم العمود إلى 3 هيديني خطأ لأن المصفوفة ذات بعدين مش 3 .. الخطأ #REF!

 

أرجو أن أكون وفقت في توصيل المعلومة :fff: :fff: :fff:

تسلم الأيادي أستاذي الفاضل ..

 

بس ياليت لو ترفق ملف فيه لتطبيق شرحك اللامع والمفيد...

 

 

والمعذرة منك يا أستاذي انا لساتني جديد هون..

 

 

وتحياتي الك لجميع الإداريين و العاملين والأعضاء في هاي الموقع..

في ١٠‏/٦‏/٢٠١٥ at 01:18, قصي said:

شرح دالة Index فهي أكثر مرونة من غيرها

للمبدع ياسر خليل

 

إليك المعادلة التالية ضع المعادلة في الخلية F4


=IFERROR(INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0)),"")

شرح المعادلة

*************

الجزء الأول الدالة IFERROR وتستخدم الدالة في حالة حدوث خطأ في النواتج ولها عدد 2 بارامتر : الأول هو القيمة value والثاني value_if_error أي القيمة التي توضع في حالة حدوث خطأ ..

 

البارامتر الأول هنا هو الجزء الأول (الخاص بالبحث)


INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والبارامتر الثاني هو الجزء

""

أي أنه عند البحث وعدم وجود نتائج للبحث فإنه يحدث خطأ #N/A ولتجنب الخطأ توضع القيمة فراغ ، عن طريق أقواس التنصيص مرتين متتاليتين

 

الجزء الثاني هو الجزء الخاص بالبحث


INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0))

والدالة Index من الدوال البحثية لها 3 بارامترات ..

------------------------------------------------

** البارامتر الأول النطاق اللي المفروض عايزين النتائج منه ، أو مصفوفة القيم المراد البحث داخلها

ولو وقفنا داخل المعادلة وحددنا الجزء ده


$C$12:$C$16

وضغطنا من لوحة المفاتيح F9 هنلاقي النتائج بهذا الشكل


{12;15;18;21;24}

ودي مصفوفة القيم المراد البحث داخلها

 

** البارامتر الثاني هو رقم الصف داخل مصفوفة القيم ، مش رقم الصف في ورقة العمل ..

طيب إزاي هنعرف رقم الناتج أو الصف المراد البحث عنه داخل المصفوفة

هنا بنستخدم الدالة Match ودي دالة بحث بردو بتجيب رقم الصف


MATCH(B4,$B$12:$B$16,0)

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

وبيتم البحث عن قيمة الخلية B4 في النطاق


$B$12:$B$16

ودا بردو مصفوفة النطاق ..يعني لو حددنا السطر ده وضغطنا F9 من لوحة المفاتيح هتلاقي الناتج بهذا الشكل


{"معلم";"خبير";"مساعد";"مدرس";"اخصائى"}

فاللي بيحصل إنه بيبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة دي .. القيمة الموجودة كلمة "معلم" ودي أول كلمة في المصفوفة يعني رقم 1

إذاً رقم الصف هو واحد (وأؤكد ليس المقصود رقم الصف في ورقة العمل .. المقصود رقم نتيجة البحث داخل المصفوفة )

طيب رقم 0 دا ايه فايدته ... فايدته إننا بنقول لعملية البحث إنها تكون متطابقة تماماً .. تطابق عملية البحث للقيمة المراد البحث عنها

 

>> إحنا دلوقتي عندنا نطاقين أو مصفوفتين للقيم (الأولى المراد استخراج النتيجة منها) و (الثانية المراد البحث بداخلها) :rol:

الإكسيل بيقوم الأول بالبحث قبل ما يظهر النتيجة (دي الخطوات المنطقية للعمل) .. بيقوم بالبحث عن القيمة الموجودة في الخلية B4 داخل المصفوفة الخاصة بيها .. طلع الناتج 1 لأنها أول نتائج البحث

 

خلاص وصل الإكسيل لرقم ناتج البحث داخل المصفوفة ..ياخد الرقم دي ويشوف النتيجة رقم1 الموجودة في المصفوفة الأول ..هيلاقي إن رقم 1 في المصفوفة الأولى هو رقم 12

 

** البارامتر الثالث اختياري ودا هنا ملوش استخدام لأن المصفوفة مكونة من بعد واحد

فممكن نكتب رقم 1 أو نتركه من غيره ما نكتبه لأن رقم 1 هو الافتراضي


=INDEX($C$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

>>>>> عشان نفهم أبعاد المصفوفة ذات البعدين

-------------------------------------------------

ضع المعادلة التالية في أي خلية


=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0))

المصفوفة الأولى هي


$B$12:$C$16

نخلي بالنا هنا المصفوفة بتاخد القيم من عمودين ..يبقا المصفوفة ثنائية الأبعاد

نحدد الجزء اللي فات ونضغط F9 من لوحة المفاتيح هنلاقي النتائج بهذا الشكل


{"معلم",12;"خبير",15;"مساعد",18;"مدرس",21;"اخصائى",24}

لو ركزنا هنعرف شكل المصفوفة .. بتاخد قيم الصف من العمودين مع بعض يعني مثلاً : معلم و 12 في صف واحد وداخل المصفوفة مع بعض بيفصل بينهم فاصلة عادية

بعد كدا الصف اللي بعديه هتلاقي خبير 15 وبردو بيفصل بينهم فاصلة عادية ... أما الفاصل بين قيم المصفوفة أقصد البعد الثاني بيتم الفصل بفاصلة منقوطة

 

بمعنى آخر :

**********

معلم 12 أول صف في المصفوفة

خبير 15 ثاني صف في المصفوفة

مساعد 18 تالت صف في المصفوفة وهكذا .. (بيفصل بين الصفوف فاصلة منقوطة)

 

داخل الصف الواحد عمودين لأن المصفوفة من بعدين : عمود 1وعمود 2 (بيفصل بين الأعمدة داخل المصفوفة فاصلة عادية)

 

ناخد مثال بسيط عشان نفهم العملية إزاي بتتم : لو عايزين رقم الصف 4 والعمود 1

هنشوف المصفوفة ..

رقم البصف 4 هنلاقي مدرس 14 ، ورقم العمود المطلوب هو العمود 1 إذاً الناتج كلمة مدرس

 

يا ريت تكون النقطة دي وضحت

**************************************************************************

 

نجرب المعادلة دي ونشوف اللي فهمناه


=INDEX($B$12:$C$16,MATCH(B4,$B$12:$B$16,0),1)

ع السريع هيتم البحث داخل المصفوفة ذات البعدين (طالما إنها ذات بعدين إذاً سيتم الاستعانة بالبارامتر الثاني والثالث للدالة Index) عشان نعرف رقم الصف المطلوب ورقم العمود المطلوب

هنا رقم الصف هنجيبه من خلال الدالة Match هنلاقي رقم الصف هو 1

وأخيراً البارامتر التالت ودا كتبناه 1 يعني العمود الأول

إذاً الناتج النهائي هو كلمة "معلم"

 

لو غيرنا رقم العمود من 1 إلى 2 هيتغير الناتج إلى 12

 

لو غيرنا رقم العمود إلى 3 هيديني خطأ لأن المصفوفة ذات بعدين مش 3 .. الخطأ #REF!

 

أرجو أن أكون وفقت في توصيل المعلومة :fff: :fff: :fff:

تسلم الأيادي أستاذي الفاضل ..

 

بس ياليت لو ترفق ملف فيه لتطبيق شرحك اللامع والمفيد...

 

 

والمعذرة منك يا أستاذي انا لساتني جديد هون..

 

 

وتحياتي الك لجميع الإداريين و العاملين والأعضاء في هاي الموقع..

رابط هذا التعليق
شارك

أهلا بك أخي الكريم

إليك الملف التالي لللأخ يحيى حسين فيه شرح وتطبيق للدالة Index

 

INDEX Function Tutorial.rar

  • Like 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information