جدول المحتويات
في هذا البرنامج التعليمي ، ستجد عددًا من أمثلة الصيغ التي توضح الاستخدامات الأكثر فعالية لـ INDEX في Excel.
من بين جميع وظائف Excel التي غالبًا ما يتم التقليل من قوتها وعدم الاستفادة منها ، من المؤكد أن INDEX سيحتل مرتبة في أعلى 10. في هذه الأثناء ، هذه الوظيفة ذكية ومرنة ومتعددة الاستخدامات.
إذن ، ما هي وظيفة INDEX في Excel؟ بشكل أساسي ، تُرجع صيغة INDEX مرجع خلية من داخل صفيف أو نطاق محدد. بمعنى آخر ، يمكنك استخدام INDEX عندما تعرف (أو يمكنك حساب) موضع عنصر في نطاق ما وتريد الحصول على القيمة الفعلية لهذا العنصر.
قد يبدو هذا تافهًا بعض الشيء ، ولكن مرة واحدة أنت تدرك الإمكانات الحقيقية لوظيفة INDEX ، فقد تُحدث تغييرات مهمة في طريقة حساب البيانات وتحليلها وتقديمها في أوراق العمل الخاصة بك.
وظيفة Excel INDEX - بناء الجملة والاستخدامات الأساسية
هناك إصداران من الدالة INDEX في Excel - نموذج صفيف ونموذج مرجعي. يمكن استخدام كلا النموذجين في جميع إصدارات Microsoft Excel 365 - 2003.
نموذج مصفوفة INDEX
يعرض نموذج مصفوفة INDEX قيمة عنصر معين في نطاق أو صفيف بناءً على الصف وأرقام الأعمدة التي تحددها.
INDEX (صفيف ، row_num ، [column_num])- المصفوفة - نطاق من الخلايا ، أو نطاق مسمى ، أو جدول.
- row_num - هو رقم الصف في المصفوفة الذي يتم إرجاع قيمة منه. إذا كانت row_num هيتُرجع قيمة ، ولكن في هذه الصيغة ، يجبرها عامل التشغيل المرجعي (:) على إرجاع مرجع). ونظرًا لأن $ A $ 1 هي نقطة البداية ، فإن النتيجة النهائية للصيغة هي النطاق $ A $ 1: $ A $ 9.
توضح لقطة الشاشة التالية كيف يمكنك استخدام صيغة الفهرس هذه لإنشاء إسقاط ديناميكي- القائمة السفلية.
نصيحة. أسهل طريقة لإنشاء قائمة منسدلة محدثة ديناميكيًا هي إنشاء قائمة مسماة استنادًا إلى جدول. في هذه الحالة ، لن تحتاج إلى أي صيغ معقدة لأن جداول Excel هي نطاقات ديناميكية في حد ذاتها.
يمكنك أيضًا استخدام دالة INDEX لإنشاء قوائم منسدلة تابعة ويشرح البرنامج التعليمي التالي الخطوات: إنشاء قائمة منسدلة متتالية في Excel.
5. عمليات البحث القوية مع INDEX / MATCH
إجراء عمليات البحث الرأسية - هذا هو المكان الذي تتألق فيه وظيفة INDEX حقًا. إذا كنت قد حاولت استخدام وظيفة Excel VLOOKUP ، فأنت تدرك جيدًا قيودها العديدة ، مثل عدم القدرة على سحب القيم من الأعمدة إلى يسار عمود البحث أو حد 255 حرفًا لقيمة البحث.
يتفوق ارتباط INDEX / MATCH على VLOOKUP في كثير من النواحي:
- لا توجد مشاكل مع عمليات البحث اليسرى.
- لا يوجد حد لحجم قيمة البحث.
- لا يوجد فرز مطلوب (تتطلب VLOOKUP مع التطابق التقريبي فرز عمود البحث بترتيب تصاعدي).
- أنت حر في إدراج الأعمدة وإزالتها في الجدول دون تحديثكل معادلة مرتبطة.
- وأخيراً وليس آخراً ، لا يؤدي INDEX / MATCH إلى إبطاء Excel الخاص بك كما تفعل Vlookups المتعددة.
يمكنك استخدام INDEX / MATCH بالطريقة التالية :
= INDEX ( عمود لإرجاع قيمة من ، (MATCH ( قيمة البحث ، عمود للبحث في مقابل ، 0))من أجل على سبيل المثال ، إذا قلبنا جدول المصدر الخاص بنا بحيث يصبح Planet Name العمود الموجود في أقصى اليمين ، فإن صيغة INDEX / MATCH لا تزال تجلب قيمة مطابقة من العمود الأيسر بدون عوائق.
لمزيد من النصائح ومثال الصيغة ، يرجى الاطلاع على البرنامج التعليمي Excel INDEX / MATCH.
6. صيغة Excel INDEX للحصول على نطاق واحد من قائمة النطاقات
استخدام آخر ذكي وقوي لوظيفة INDEX في Excel هو القدرة على الحصول على نطاق واحد من قائمة نطاقات.
لنفترض أن لديك عدة قوائم تحتوي على عدد مختلف من العناصر في كل منها. صدقني أو لا ، يمكنك حساب المتوسط أو جمع القيم في أي نطاق محدد باستخدام صيغة واحدة.
أولاً ، عليك إنشاء ه نطاق مسمى لكل قائمة ؛ فليكن PlanetsD و MoonsD في هذا المثال:
آمل أن توضح الصورة أعلاه الأسباب الكامنة وراء أسماء النطاقات :) راجع للشغل ، جدول أقمار بعيد عن الاكتمال ، هناك 176 قمرا طبيعيا معروفا في نظامنا الشمسي ، كوكب المشتري وحده لديه 63 حاليا ، والعدد في ازدياد. في هذا المثال ، اخترت عشوائي 11 ، حسنًا ... ربما ليس عشوائيًا تمامًا -أقمار بأسماء أجمل:)
يرجى المعذرة على الاستطراد ، والعودة إلى صيغة INDEX الخاصة بنا. بافتراض أن PlanetsD هو النطاق 1 و MoonsD هو النطاق 2 ، والخلية B1 هي المكان الذي تضع فيه رقم النطاق ، يمكنك استخدام صيغة الفهرس التالية لحساب متوسط القيم في النطاق المسمى المحدد:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
يرجى الانتباه إلى أننا نستخدم الآن النموذج المرجعي لوظيفة INDEX ، والرقم الموجود في الوسيطة الأخيرة (area_num) يخبر الصيغة بالنطاق المطلوب اختر.
في لقطة الشاشة أدناه ، يتم تعيين area_num (الخلية B1) على 2 ، لذلك تحسب الصيغة متوسط قطر القمر لأن النطاق MoonsD يأتي في المرتبة الثانية في وسيطة المرجع.
إذا كنت تعمل مع قوائم متعددة ولا تريد عناء تذكر الأرقام المرتبطة ، فيمكنك استخدام دالة IF المتداخلة للقيام بذلك نيابة عنك :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
في الدالة IF ، يمكنك استخدام بعض أسماء القوائم البسيطة وسهلة التذكر التي تريد أن يكتبها المستخدمون في الخلية B1 بدلاً من الأرقام. يرجى مراعاة ذلك ، لكي تعمل الصيغة بشكل صحيح ، يجب أن يكون النص الموجود في B1 هو نفسه تمامًا (غير حساس لحالة الأحرف) كما هو الحال في معلمات IF ، وإلا فإن صيغة الفهرس ستظهر الخطأ #VALUE.
لجعل الصيغة أكثر سهولة في الاستخدام ، يمكنك استخدام التحقق من صحة البيانات لإنشاء قائمة منسدلة بأسماء محددة مسبقًا لمنع الأخطاء الإملائية وأخطاء الطباعة:
أخيرًا ، لجعل صيغة INDEX مثالية تمامًا ، يمكنك تضمينها في وظيفة IFERROR التي ستحث المستخدم على اختيار عنصر من القائمة المنسدلة إذا لم يتم التحديد بعد:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
هذه هي الطريقة التي تستخدم بها صيغ INDEX في Excel. آمل أن تكون هذه الأمثلة قد أوضحت لك طريقة لتسخير إمكانات وظيفة INDEX في أوراق العمل الخاصة بك. شكرا على القراءة!
إذا تم حذفها ، فإن column_num مطلوب. - column_num - هو رقم العمود الذي يتم إرجاع قيمة منه. إذا تم حذف column_num ، فإن row_num مطلوب.
على سبيل المثال ، تُرجع الصيغة =INDEX(A1:D6, 4, 3)
القيمة عند تقاطع الصف الرابع والعمود الثالث في النطاق A1: D6 ، وهي القيمة الموجودة في الخلية C4 .
للحصول على فكرة عن كيفية عمل صيغة INDEX على البيانات الحقيقية ، يرجى إلقاء نظرة على المثال التالي:
بدلاً من إدخال الصف وأرقام الأعمدة في الصيغة ، يمكنك توفير مراجع الخلايا للحصول على صيغة أكثر شمولية: =INDEX($B$2:$D$6, G2, G1)
لذلك ، تُرجع صيغة INDEX هذه عدد العناصر بالضبط عند تقاطع رقم المنتج المحدد في G2 (row_num ) ورقم الأسبوع الذي تم إدخاله في الخلية G1 (العمود رقم).
نصيحة. يؤدي استخدام المراجع المطلقة ($ B $ 2: $ D $ 6) بدلاً من المراجع النسبية (B2: D6) في وسيطة الصفيف إلى تسهيل نسخ الصيغة إلى خلايا أخرى. بدلاً من ذلك ، يمكنك تحويل نطاق إلى جدول (Ctrl + T) والإشارة إليه باسم الجدول.
نموذج مصفوفة INDEX - أشياء يجب تذكرها
- إذا كانت وسيطة المصفوفة تتكون من صف أو عمود واحد فقط ، فقد تحدد أو لا تحدد وسيطة row_num أو column_num المقابلة.
- إذا تضمنت وسيطة الصفيف أكثر من صف واحد وتم حذف row_num أو تم تعيينه إلى 0 ، فتُرجع الدالة INDEX صفيفًا للعمود بأكمله. وبالمثل ، إذا تضمنت المصفوفة أكثر من واحدالعمود وتم حذف الوسيطة العمود أو تعيينه إلى 0 ، فتُرجع صيغة INDEX الصف بأكمله. فيما يلي مثال على صيغة توضح هذا السلوك.
- يجب أن تشير الوسيطتان row_num و column_num إلى خلية داخل المصفوفة ؛ وبخلاف ذلك ، سترجع الصيغة INDEX إلى # REF! خطأ.
نموذج مرجع INDEX
يعرض النموذج المرجعي للدالة Excel INDEX مرجع الخلية عند تقاطع الصف والعمود المحددين.
INDEX (المرجع ، row_num ، [column_num]، [area_num])- المرجع - نطاق واحد أو عدة نطاقات.
إذا كنت تقوم بإدخال أكثر من نطاق واحد ، فافصل النطاقات بفاصلات وقم بتضمين وسيطة المرجع بين قوسين ، على سبيل المثال (A1: B5، D1: F5).
إذا كان كل نطاق في المرجع يحتوي فقط صف واحد أو عمود ، وسيطة row_num أو column_num المقابلة اختيارية.
- row_num - رقم الصف في النطاق الذي يتم منه إرجاع مرجع الخلية ، إنه مشابه للمصفوفة نموذج.
- column_num - رقم العمود الذي يتم منه إرجاع مرجع الخلية ، يعمل أيضًا بشكل مشابه لنموذج المصفوفة.
- area_num - an معلمة اختيارية تحدد النطاق من وسيطة المرجع المراد استخدامه. إذا تم حذفها ، فستُرجع صيغة INDEX نتيجة النطاق الأول المدرج في المرجع.
على سبيل المثال ، تُرجع الصيغة =INDEX((A2:D3, A5:D7), 3, 4, 2)
قيمة الخلية D7 ، الموجودة فيتقاطع الصف الثالث والعمود الرابع في المنطقة الثانية (A5: D7).
نموذج مرجع الفهرس - الأشياء التي يجب تذكرها
- إذا يتم تعيين الوسيطة row_num أو column_num إلى صفر (0) ، وتعيد الصيغة INDEX المرجع للعمود أو الصف بأكمله ، على التوالي.
- إذا تم حذف كل من row_num و column_num ، فإن الدالة INDEX ترجع المنطقة المحددة في الوسيطة area_num.
- يجب أن تشير جميع وسيطات _num (row_num و column_num و area_num) إلى خلية داخل المرجع ؛ وبخلاف ذلك ، سترجع الصيغة INDEX إلى # REF! خطأ.
كلا الصيغتين INDEX التي ناقشناها حتى الآن بسيطة للغاية وتوضح المفهوم فقط. من المحتمل أن تكون الصيغ الحقيقية الخاصة بك أكثر تعقيدًا من ذلك بكثير ، لذلك دعونا نستكشف بعض الاستخدامات الأكثر فعالية لـ INDEX في Excel.
كيفية استخدام دالة INDEX في Excel - أمثلة للصيغ
ربما هناك ليست هناك العديد من الاستخدامات العملية لبرنامج Excel INDEX في حد ذاته ، ولكن بالاقتران مع وظائف أخرى مثل MATCH أو COUNTA ، يمكنه إنشاء صيغ قوية جدًا.
بيانات المصدر
جميع صيغ INDEX الخاصة بنا (باستثناء آخر واحد) ، سوف نستخدم البيانات أدناه. لأغراض الراحة ، يتم تنظيمها في جدول يسمى SourceData .
يمكن أن يؤدي استخدام الجداول أو النطاقات المسماة إلى إنشاء صيغ أطول قليلاً ، ولكنه يجعلها أيضًا أكثر مرونة وسهولة في القراءة بشكل ملحوظ. لضبط أي مؤشرصيغة أوراق العمل الخاصة بك ، ما عليك سوى تعديل اسم واحد ، وهذا يعوض تمامًا عن طول صيغة أطول.
بالطبع ، لا شيء يمنعك من استخدام النطاقات المعتادة إذا كنت تريد ذلك. في هذه الحالة ، يمكنك ببساطة استبدال اسم الجدول SourceData بمرجع النطاق المناسب.
1. الحصول على العنصر Nth من القائمة
هذا هو الاستخدام الأساسي لوظيفة INDEX وأبسط صيغة يمكن إجراؤها. لجلب عنصر معين من القائمة ، ما عليك سوى كتابة =INDEX(range, n)
حيث يمثل النطاق نطاقًا من الخلايا أو نطاقًا مسمى ، و n هو موضع العنصر الذي تريد الحصول عليه.
عند العمل مع جداول Excel ، يمكنك تحديد العمود باستخدام الماوس وسيقوم Excel بسحب اسم العمود مع اسم الجدول في الصيغة:
للحصول على قيمة للخلية عند تقاطع صف وعمود معين ، يمكنك استخدام نفس الأسلوب مع الاختلاف الوحيد الذي تحدده معًا - رقم الصف ورقم العمود. في الواقع ، لقد رأيت بالفعل مثل هذه الصيغة قيد التنفيذ عندما ناقشنا نموذج صفيف INDEX.
وإليك مثال آخر. في جدول العينة الخاص بنا ، للعثور على ثاني أكبر كوكب في النظام الشمسي ، يمكنك فرز الجدول حسب العمود القطر ، واستخدام صيغة INDEX التالية:
=INDEX(SourceData, 2, 3)
-
Array
هو اسم الجدول ، أو مرجع النطاق ، SourceData في هذا المثال. -
Row_num
هي 2 لأنك تبحث عن العنصر الثانيفي القائمة ، الموجودة في الثانية -
Column_num
هي 3 لأن القطر هو العمود الثالث في الجدول.
إذا كنت تريد إرجاع الكوكب الاسم بدلاً من القطر ، قم بتغيير العمود column_num إلى 1. وبطبيعة الحال ، يمكنك استخدام مرجع خلية في الوسيطات row_num و / أو column_num لجعل الصيغة الخاصة بك أكثر تنوعًا ، كما هو موضح في لقطة الشاشة أدناه:
2. الحصول على جميع القيم في صف أو عمود
بصرف النظر عن استرداد خلية واحدة ، يمكن لوظيفة INDEX إرجاع صفيف من القيم من الصف بالكامل أو العمود . للحصول على جميع القيم من عمود معين ، يجب عليك حذف الوسيطة row_num أو تعيينها إلى 0. وبالمثل ، للحصول على الصف بأكمله ، يمكنك تمرير قيمة فارغة أو 0 في column_num.
هذه الصيغ INDEX بالكاد يمكن يمكن استخدامها بمفردها ، لأن Excel غير قادر على احتواء صفيف القيم التي تُرجعها الصيغة في خلية واحدة ، وستحصل على الخطأ #VALUE! بدلا من ذلك. ومع ذلك ، إذا كنت تستخدم INDEX بالاقتران مع وظائف أخرى ، مثل SUM أو AVERAGE ، فستحصل على نتائج رائعة.
على سبيل المثال ، يمكنك استخدام الصيغة التالية لحساب متوسط درجة حرارة الكوكب في النظام الشمسي:
=AVERAGE(INDEX(SourceData, , 4))
في الصيغة أعلاه ، وسيطة العمود هي 4 لأن درجة الحرارة في العمود الرابع في جدولنا. تم حذف المعلمة row_num.
بطريقة مماثلة ، يمكنك العثور على الحد الأدنى والحد الأقصىدرجات الحرارة:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
وحساب الكتلة الكلية للكوكب (الكتلة هي العمود الثاني في الجدول):
=SUM(INDEX(SourceData, , 2))
من وجهة النظر العملية ، فإن وظيفة INDEX في الصيغة أعلاه غير ضرورية. يمكنك ببساطة كتابة =AVERAGE(range)
أو =SUM(range)
والحصول على نفس النتائج.
عند العمل مع البيانات الحقيقية ، قد تكون هذه الميزة مفيدة كجزء من الصيغ الأكثر تعقيدًا التي تستخدمها لتحليل البيانات.
3. استخدام INDEX مع دالات أخرى (SUM ، AVERAGE ، MAX ، MIN)
من الأمثلة السابقة ، قد يكون لديك انطباع بأن صيغة INDEX ترجع قيمًا ، لكن الحقيقة هي أنها تُرجع مرجعًا للخلية التي تحتوي على القيمة. يوضح هذا المثال الطبيعة الحقيقية لوظيفة Excel INDEX.
نظرًا لأن نتيجة صيغة INDEX هي مرجع ، يمكننا استخدامها ضمن وظائف أخرى لإنشاء نطاق ديناميكي . تبدو محيرة؟ ستوضح الصيغة التالية كل شيء.
افترض أن لديك صيغة =AVERAGE(A1:A10)
تُرجع متوسط القيم في الخلايا A1: A10. بدلاً من كتابة النطاق مباشرةً في الصيغة ، يمكنك استبدال A1 أو A10 ، أو كليهما ، بدالات INDEX ، مثل هذا:
=AVERAGE(A1 : INDEX(A1:A20,10))
كلتا الصيغتين أعلاه ستقدمان نفس الشيء نتيجة لأن الدالة INDEX تُرجع أيضًا مرجعًا إلى الخلية A10 (تم تعيين row_num إلى 10 ، وتم حذف col_num). الفرق هو أن النطاق هو صيغة AVERAGE / INDEX ديناميكية ،وبمجرد تغيير وسيطة row_num في INDEX ، سيتغير النطاق الذي تتم معالجته بواسطة الدالة AVERAGE وستقوم الصيغة بإرجاع نتيجة مختلفة.
على ما يبدو ، يبدو مسار صيغة INDEX معقدًا للغاية ، ولكن له تطبيقات عملية ، كما هو موضح في الأمثلة التالية.
مثال 1. احسب متوسط العناصر N في القائمة
لنفترض أنك تريد معرفة متوسط قطر أكبر N من الكواكب في نظامنا . لذلك ، يمكنك فرز الجدول حسب العمود القطر من الأكبر إلى الأصغر ، واستخدام معادلة المتوسط / الفهرس التالية:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
مثال 2. جمع العناصر بين العنصرين المحددين
في حالة رغبتك في تحديد العناصر ذات الحد الأعلى والحد الأدنى في الصيغة الخاصة بك ، فأنت تحتاج فقط إلى استخدام وظيفتين INDEX لإرجاع الأول و العنصر الأخير الذي تريده.
على سبيل المثال ، تُرجع الصيغة التالية مجموع القيم في العمود القطر بين العنصرين المحددين في الخليتين B1 و B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. صيغة INDEX لإنشاء نطاقات ديناميكية وقوائم منسدلة
كما يحدث غالبًا ، عندما تبدأ في تنظيم البيانات في ورقة عمل ، قد لا تعرف عدد الإدخالات التي ستحصل عليها في النهاية. ليس هذا هو الحال مع جدول الكواكب ، الذي يبدو أنه مكتمل ، ولكن من يدري ...
على أي حال ، إذا كان لديك عدد متغير من العناصر في عمود معين ، قل من A1 إلى A ن ،قد ترغب في إنشاء نطاق ديناميكي مسمى يتضمن جميع الخلايا التي تحتوي على بيانات. في ذلك الوقت ، تريد أن يتم ضبط النطاق تلقائيًا أثناء إضافة عناصر جديدة أو حذف بعض العناصر الموجودة. على سبيل المثال ، إذا كان لديك حاليًا 10 عناصر ، فسيكون النطاق المسمى A1: A10. إذا قمت بإضافة إدخال جديد ، فسيتم توسيع النطاق المسمى تلقائيًا إلى A1: A11 ، وإذا غيرت رأيك وحذفت تلك البيانات المضافة حديثًا ، فإن النطاق يعود تلقائيًا إلى A1: A10.
الميزة الرئيسية لهذا الأسلوب هو أنه لا يتعين عليك تحديث جميع الصيغ في المصنف باستمرار للتأكد من أنها تشير إلى النطاقات الصحيحة.
تتمثل إحدى الطرق لتحديد النطاق الديناميكي في استخدام وظيفة Excel OFFSET:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
حل آخر ممكن هو استخدام Excel INDEX مع COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
في كلتا الصيغتين ، A1 هي الخلية التي تحتوي على العنصر الأول من القائمة والنطاق الديناميكي الناتج بكلتا الصيغتين ستكون متطابقة.
الاختلاف في الأساليب. بينما تنتقل الدالة OFFSET من نقطة البداية بعدد معين من الصفوف و / أو الأعمدة ، تعثر الدالة INDEX على خلية عند تقاطع صف وعمود معين. تحصل الدالة COUNTA ، المستخدمة في كلتا الصيغتين ، على عدد الخلايا غير الفارغة في عمود الاهتمام.
في هذا المثال ، توجد 9 خلايا غير فارغة في العمود A ، لذا تُرجع COUNTA 9. وبالتالي ، تُرجع INDEX $ A $ 9 ، وهي آخر خلية مستخدمة في العمود A (عادةً INDEX