تابع INDEX و تابع MATCH دو تا از توابع بسیار قوی در اکسل هستند که ترکیب و استفاده مناسب از اونها میتونه به ما در نوشتن فرمولهای بهتر کمک زیادی کنه. همونطور که قبلاً با تابع INDEX آشنا شدیم در این تابع یک محدوده رو مشخص میکنیم و با دادن شماره سطر و ستون دلخواه یک سلول رو برمیگردونیم. حالا اگر به جای تعیین دستی مقدار سطر و ستون، اینکار رو با استفاده از نتیجه تابع MATCH انجام بدیم میتونیم کارهای زیادی در اکسل انجام بدیم و خیلی از مشکلات فرمول نویسی خودمون رو به راحتی حل کنیم. با استفاده از ترکیب دو تابع INDEX و MATCH در اکسل میتونیم شماره سطر یا ستون مقداری رو جستجو کنیم و مقدار متناظرش رو در یک سطر یا ستون دیگه برگردونیم. در ادامه این مطلب آموزش اکسل با کاربرد این دو تابع بیشتر آشنا میشیم.برای اینکه کمی بهتر متوجه بشیم چه کارهایی میشه با ترکیب دو تابع INDEX و MATCH در اکسل انجام داد جدول زیر رو در نظر بگیرید:
A | B | |
1 | کد محصول | نام محصول |
2 | 1282 | قطعه شماره 1 |
3 | 1464 | قطعه شماره 2 |
4 | 1398 | قطعه شماره 3 |
5 | 1339 | قطعه شماره 4 |
6 | 1286 | قطعه شماره 5 |
اگر بخوایم در این جدول بر اساس جستجوی کد محصول 1398، نام محصول رو بدست بیاریم میتونیم از تابع VLOOKUP که قبلاً در موردش نوشتم به شکل (VLOOKUP(1398;A:B;2;FALSE استفاده کنیم. اما اگر جدول ما مثل جدول زیر باشه:
A | B | |
1 | نام محصول | کد محصول |
2 | قطعه شماره 1 | 1282 |
3 | قطعه شماره 2 | 1464 |
4 | قطعه شماره 3 | 1398 |
5 | قطعه شماره 4 | 1339 |
6 | قطعه شماره 5 | 1286 |
در این حالت دیگه تابع VLOOKUP کارایی نداره و نمیتونیم با استفاده از این تابع بر اساس جستجوی کد محصول، نام محصول رو بدست بیاریم چون نمیشه پارامتر سوم تابع VLOOKUP رو -1 قرار داد و به عقب حرکت کرد. اینجاست که میتونیم با استفاده از ترکیب دو تابع INDEX و MATCH این مشکل رو حل کنیم و به هدفمون برسیم.
- ابتدا تابع INDEX رو مینویسیم و پارامتر اول اون رو A:A قرار میدیم، چون میخوایم نام محصول رو مشخص کنیم و نام محصول هم در ستون A قرار داره.
- در حالت عادی میتونستیم شماره سطر رو به تابع INDEX بدیم. شماره سطر عدد 1398 برابر 4 هست اما ما نمیخوایم این شماره سطر رو دستی وارد کنیم. بلکه میخوایم شماره سطر به صورت خودکار توسط اکسل پیدا بشه. اینکار رو با تابع MATCH انجام میدیم. تابع (MATCH(1398;B:B;0 دقیقاً اینکار رو برای ما انجام میده. یعنی عدد 1398 رو در ستون B پیدا میکنه و شماره سطر اون رو که برابر 4 هست برمیگردونه.
- در نهایت تابع بخش 2 رو در تابع INDEX خودمون قرار میدیم تا تابعمون به شکل زیر کامل بشه.
INDEX(A:A;MATCH(1398;B:B;0))
میتونیم به جای عدد 1398 یک سلول یا هر کد دیگهای رو قرار بدیم و تابع بالا نام محصول متناظر با اون کد رو برای ما پیدا میکنه.