تعيد =INDEX(A2:C6,3,2) القيمة الموجودة في الصف الثالث والعمود الثاني من النطاق A2:C6. تُعدّ المواضع من الخلية العليا في زاوية النطاق، لذا فالصف 3 من A2:C6 هو الصف 4 في الورقة. غيّر 3 أو 2 وراقب النتيجة تتحرك.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Row | Column | Result | |
| 2 | Apple | Fruit | $1.20 | 3 | 2 | Vegetable | |
| 3 | Pear | Fruit | $1.50 | ||||
| 4 | Carrot | Vegetable | $0.80 | ||||
| 5 | Bread | Bakery | $2.40 | ||||
| 6 | Milk | Dairy | $1.10 |
تحتوي E2 على رقم الصف وF2 على رقم العمود. الصف 3 هو Carrot والعمود 2 هو Category، لذا تعرض G2 القيمة Vegetable. اضبط F2 على 1 لاسم المنتج، أو E2 على 6 لترى #REF!: في A2:C6 خمسة صفوف فقط.
صيغة دالة INDEX
=INDEX(array, row_num, [column_num])
array: النطاق (أو المصفوفة) المراد القراءة منه.row_num: أي صف منه، بدءًا من 1. استخدم 0 لكل الصفوف.column_num: أي عمود، بدءًا من 1. اختياري عندما يكون النطاق عمودًا واحدًا أو صفًا واحدًا؛ استخدم 0 لكل الأعمدة.
في عمود واحد، يكفي رقم واحد: =INDEX(A2:A6,4) هو العنصر الرابع، Bread. وهناك شكل ثانٍ، =INDEX((A2:C3,A5:C6),1,1,2)، يختار من أحد عدة نطاقات؛ ونادرًا ما تحتاج إليه.
الحصول على العنصر رقم n، أو الأخير
تجيب INDEX مع عمود واحد عن سؤال "ما العنصر رقم n". ومع COUNTA، التي تعدّ الخلايا الممتلئة، تعيد آخر عنصر في قائمة تنمو.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Item number | 2 | |
| 2 | Apple | Nth item | Pear | |
| 3 | Pear | Last item | Milk | |
| 4 | Carrot | |||
| 5 | Bread | |||
| 6 | Milk |
تقول D1 إن الرقم 2، لذا تعيد D2 المنتج Pear. وتعدّ COUNTA خمسة منتجات، لذا تعيد D3 الخامس، Milk. احذف Milk فتعيد D3 المنتج Bread. في ملف حقيقي، وجّه الاثنتين إلى نطاق أطول مثل A2:A1000 حتى تُشمل الصفوف الجديدة؛ ولا تعمل COUNTA بهذه الطريقة إلا عندما لا تكون في العمود خلايا فارغة في المنتصف.
إرجاع صف أو عمود كامل بالرقم 0
الرقم 0 كرقم صف يعني "كل الصفوف"، لذا فإن INDEX(B2:D5,0,2) هو العمود الثاني كله. وداخل SUM أو AVERAGE أو MAX، يجمع ذلك عمودًا يُختار برقمه.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar | Month number | Total | |
| 2 | North | 4,200 | 3,900 | 4,800 | 2 | 15,200 | |
| 3 | South | 3,100 | 3,600 | 3,300 | |||
| 4 | East | 5,200 | 4,700 | 5,600 | |||
| 5 | West | 2,800 | 3,000 | 3,400 |
الشهر 2 هو Feb، وتجمع G2 النطاق C2:C5: 15,200. غيّر F2 إلى 3 لشهر مارس. والصف الكامل يعمل بالطريقة نفسها: تجمع =SUM(INDEX(B2:D5,3,0)) المنطقة East. في Excel 2021 وMicrosoft 365، تمد =INDEX(B2:D5,0,2) وحدها القيم الأربع إلى أسفل الورقة. ولاختيار العمود بعنوانه بدلًا من رقمه، استبدل F2 بالدالة MATCH، وهذا هو نمط INDEX وMATCH.
INDEX على مصفوفة أو نتيجة ممتدة
تقرأ INDEX أيضًا المصفوفات التي تعيدها الصيغ، لا النطاقات الموجودة في الورقة فقط. وهذا يلتقط عنصرًا واحدًا من قائمة مرتبة أو مصفاة أو فريدة دون كتابة القائمة أولًا.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Most expensive | Bread | |
| 2 | Apple | Fruit | $1.20 | Second | Pear | |
| 3 | Pear | Fruit | $1.50 | Cheapest | Carrot | |
| 4 | Carrot | Vegetable | $0.80 | |||
| 5 | Bread | Bakery | $2.40 | |||
| 6 | Milk | Dairy | $1.10 |
تعيد SORTBY المنتجات الخمسة مرتبة حسب السعر، وتأخذ INDEX العنصر 1 (Bread)، أو العنصر 2 (Pear)، أو من الترتيب التصاعدي العنصر 1 (Carrot). غيّر سعر Milk إلى 3 فيصبح الأغلى. وإذا كانت هناك قائمة ممتدة في الورقة أصلًا، لنقل في H2، فإن Excel 2021 وMicrosoft 365 يسمحان لك بكتابة =INDEX(H2#,2) لعنصرها الثاني.
تمرين: اجمع شهرًا مختارًا
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar | Month number | Total | |
| 2 | North | 4,200 | 3,900 | 4,800 | 1 | ||
| 3 | South | 3,100 | 3,600 | 3,300 | |||
| 4 | East | 5,200 | 4,700 | 5,600 | |||
| 5 | West | 2,800 | 3,000 | 3,400 |
دورك: في G2، أعد مجموع الشهر الذي رقمه في F2 (1 = Jan، 2 = Feb، 3 = Mar) باستخدام INDEX.
الأسئلة الشائعة
ماذا تفعل دالة INDEX في الاكسل؟
تعيد القيمة الموجودة في موضع معين من نطاق: تعيد =INDEX(A2:C6,3,2) القيمة الموجودة في الصف الثالث والعمود الثاني من A2:C6. تُعدّ المواضع من الخلية العليا في زاوية النطاق، لا من الصف 1 في الورقة.
كيف أحصل على آخر قيمة في عمود باستخدام INDEX؟
استخدم عدد الخلايا الممتلئة كرقم الصف: تعيد =INDEX(B2:B100,COUNTA(B2:B100)) آخر قيمة في عمود بلا فجوات. ومع وجود فجوات، تعيد =LOOKUP(2,1/(B2:B100<>""),B2:B100) آخر قيمة غير فارغة.
لماذا تعيد INDEX الخطأ #REF!؟
لأن رقم الصف أو العمود أكبر من النطاق. تطلب =INDEX(A2:A6,7) العنصر السابع من نطاق من خمس خلايا فتعيد #REF!.
كيف أعيد عمودًا كاملًا باستخدام INDEX؟
استخدم 0 كرقم الصف: تعيد =INDEX(B2:D5,0,2) العمود الثاني كله. ضعها داخل دالة لجمعه، كما في =SUM(INDEX(B2:D5,0,2))، أو دعها تمتد في Excel 2021 وMicrosoft 365.