امروز بعد از مدتها که فرصتی برای نوشتن نبود میخوام راجع به تابع Match اکسل بنویسم. تابع Match اکسل یکی از توابع مهم این نرم افزار هست که خیلی از مواقع میتونه مشکلات رو حل کنه. این تابع یک مقدار رو در یک محدوده جستجو میکنه و در صورت پیدا کردن اون مقدار در محدوده مورد نظر، موقعیت مقدار مورد نظر رو بر میگردونه. در ادامه با کاربرد این تابع بیشتر اشنا میشیم.

قاعده کلی تابع Match  اکسل به صورت زیر هست:

(نوع جستجو [اختیاری]، محدوده جستجو، مقدار موردنظر برای جستجو) MATCH

برای درک بهتر نحوه استفاده از تابع اکسل جدول زیر رو در نظر بگیرید:

A B C D E F
1 کد نام دارای تخفیف
2 1432 ماوس 1230
3 1134 کیبرد 1245
4 5400 کیس 1160
5 3211 مانیتور 234
6 1611 اسپیکر 4500
7 1610 گیم پد 1610
8 1200 هدست 6570
9 1345 گرافیک 1250
10 8190 هارد 5400

همونطور که در جدول بالا میبینید در ستون A ما کد محصولات رو داریم و در ستون F کد محصولاتی رو که شامل تخفیف هستند. حالا میخوایم با استفاده از تابع MATCH فرمولی در ستون C بنویسیم که اگر کد محصول ستون A شامل تخفیف بود این مساله نشون داده بشه. برای اینکار میتونیم از تابع MATCH اکسل استفاده کنیم:

مقدار موردنظر برای جستجو: ما میخوایم کد هر محصول رو در لیست کدهای شامل تخفیف جستجو کنیم و ببینیم آیا این کد شامل تخفیف هست یا خیر. پس پارامتر مقدار مورد نظر برای جستجو برابر A:A خواهد بود.

محدوده جستجو: همونطور که مشخصه ما میخوایم کد محصول رو در بین کدهای شامل تخفیف که در ستون F قرار دارند جستجو کنیم. بنابراین پارامتر محدوده جستجو در مثال ما برابر F:F هست.

نوع جستجو: این پارامتر میتونه چندین حالت مختلف زیر رو داشته باشه:

  1. 1 یا عدم تعیین پارامتر: اگر مقدار این پارامتر رو برابر 1 قرار بدیم یا مقداری برای اون تعیین نکنیم تابع مقدار موردنظرمون رو در محدوده تعریف شده جستجو میکنه و اگر مقدار موردنظر رو پیدا نکرد بزرگترین مقداری که کوچکتر از مقدار موردنظر ما برای جستجو بوده رو لحاظ میکنه. به عنوان مثال اگر کد 8190 رو جستجو کنیم به دلیل اینکه این کد در ستون F وجود نداره بزرگترین کدی که از عدد 8190 کوچکتره یعنی کد 6570 لحاظ میشه.
  2. 0: اگر مقدار گارامتر رو برابر 0 قرار بدیم تابع فقط مقدار مورد نظر ما رو جستجو میکنه و در صورتی که مقدار موردنظرمون رو در محدوده تعیین شده پیدا نکنه خطای N/A# رو برمیگردونه. معمولا ما در اکثر موارد این حالت مد نظرمون هست و این حالت بیشترین کاربرد رو داره.
  3. 1-: اگر مقدار این پارامتر رو برابر 1- قرار بدیم تابع مقدار موردنظرمون رو در محدوده تعریف شده جستجو میکنه و اگر مقدار موردنظر رو پیدا نکرد کوچکترین مقداری که بزرگتر از مقدار موردنظر ما برای جستجو بوده رو لحاظ میکنه. به عنوان مثال اگر کد 1134 رو جستجو کنیم به دلیل اینکه این کد در ستون F وجود نداره کوچکترین کدی که از عدد 1134 بزرگتره یعنی کد 1160  لحاظ میشه.

در این مثال ما میخوایم اگر کدی شامل تخفیف نمیشد این مساله مشخص بشه. بنابراین ما مقدار این پارامتر رو برابر 0 در نظر میگیریم.

پس در نهایت فرمول ما به شکل زیر کامل میشه:

(MATCH(A:A;F:F;0

حالا این فرمول رو در سلول C2 قرار میدیم و تا پایین کپی میکنیم. نتیجه به شکل جدول زیر میشه:

A B C D E F
1 کد نام دارای تخفیف
2 1432 ماوس #N/A 1230
3 1134 کیبرد #N/A 1245
4 5400 کیس 10 1160
5 3211 مانیتور #N/A 234
6 1611 اسپیکر #N/A 4500
7 1610 گیم پد 7 1610
8 1200 هدست #N/A 6570
9 1345 گرافیک #N/A 1250
10 8190 هارد #N/A 5400

همونطور که میبینید عدد مربوط به شماره سطر کدهای 5400 و 1610 که در ستون F قرار داشتند( به ترتیب 10 و 7) در مقابل اونها قرار گرفته و برای سایر کدها که در ستون تخفیف قرار نداشتند خطای N/A# نمایش داده شده. میتونیم برای اینکه جدولمون خواناتر بشه به جای اعداد از عبارت های مورد نظرمون استفده کنیم. مثلاً فرمول تابع MATCH خودمون رو به شکل زیر تکمیل کنیم:

(“تخفیف ندارد”;”تخفیف دارد”; ((IF(ISNUMBER(MATCH(A:A;F:F;0

در فرمول بالا تعیین کردیم که اگر نتیجه تابع عدد بود (تابع MATCH اکسل مقدار مورد نظر مارو پیدا کرد) عبارت تخفیف دارد و در غیر اینصورت عبارت تخفیف ندارد نشون داده بشه. حالا جدول ما به شکل زیر تغییر  میکنه:

A B C D E F
1 کد نام دارای تخفیف
2 1432 ماوس تخفیف ندارد 1230
3 1134 کیبرد تخفیف ندارد 1245
4 5400 کیس تخفیف دارد 1160
5 3211 مانیتور تخفیف ندارد 234
6 1611 اسپیکر تخفیف ندارد 4500
7 1610 گیم پد تخفیف دارد 1610
8 1200 هدست تخفیف ندارد 6570
9 1345 گرافیک تخفیف ندارد 1250
10 8190 هارد تخفیف ندارد 5400

تابع MATCH اکسل کاربردهای زیادی داره و به ویژه ترکیبش با تابع INDEX اکسل بسیار مفیده که در مطالب بعدی راجع بهش توضیح میدم. امیدوارم از این مطلب استفاده کرده باشید.