سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

تابع Match، تابعی قدرتمند برای ترکیب با سایر توابع

تابع match در اکسل
۵/۵ - (۱۲ امتیاز)

تابع match در اکسل

برای اینکه به یک فرمول نویس حرفه ای در اکسل تبدیل بشید، علاوه بر اینکه باید به اصول و قواعد فرمول نویسی حرفه ای آشنا باشید، باید به یک سری توابع خاص نیز مسلط باشید. یکی از اون توابع خاص، تابع Match در اکسل از دسته توابع Lookup & Reference هست. درک مفهوم این تابع خیلی اهمیت داره. چرا که در حل خیلی از مسائل و در فرمول نویسی ترکیبی، از این تابع استفاده میشه. این تابع مکان یک داده رو در یک محدوده تک بعدی به ما میده. یعنی چی؟

فرض کنید در شکل ۱، میخوایم ببینیم کلمه “شعبه۳” چندمین سل در این محدوده است و انتظار داریم که خروجی فرمول، عدد ۳ باشد، چرا که این کلمه (شعبه۳)، سومین سل در محدوده مورد نظر است.

تابع match در اکسل - شروع کار

شکل ۱- پیدا کردن مکان کلمه “شعبه۳”

تشریح آرگومان ها

Lookup_Value: عبارتیست که میخواهیم ببینیم چندمین سل در محدوده مورد نظر است. در مثال بالا، کلمه شعبه ۳ است.

Lookup_Array: آرایه ای است تک بعدی که در آن، دنبال عبارت Lookup_Value می گردیم. در مثال بالا، B2:G2 هست.

[Match_Type]: سه مقدار ۱، ۰ و -۱ میگیرد:

مقدار ۰ ، اولین داده ای که دقیقا معادل Lookup_Value هست رو پیدا میکنه و شماره مکانشو میگه. در این حالت توالی قرارگیری محتوا در Lookup_Array به هر طریقی می تواند باشد.

مقدار ۱ (حالت پیش فرض، یعنی با خالی گذاشتن آرگومان سوم، این حالت در نظر گرفته می شه)، اگر عین عبارت رو پیدا نکنه، بزرگترین مقدار کوچکتر و یا مساوی Lookup_Value را پیدا و جایگاهش رو میده.

نکته:
در این حالت مقادیر درون Lookup_Array باید به صورت صعودی باشند. به عنوان مثال: -۲، -۱، ۰، ۱، ۲، …

 

مقدار ۱-، اگر عین عبارت رو پیدا نکنه، بزرگترین مقدار کوچکتر و یا مساوی Lookup_Value را پیدا و جایگاهش رو میده.

نکته:
در این حالت مقادیر درون Lookup_Array باید به صورت نزولی مرتب شده باشند. به عنوان مثال: ۲، ۱، ۰، -۱، -۲، …

 

در مثال بالا، تابع به اینصورت نوشته میشه:

=Match(D2,B2:G2,0)

خروجی این تابع ۳ خواهد بود. چون همونطور که توضیح داده شد، کلمه شعبه۳، سومین سل در محدوده مورد نظر است.

نکته:
دقت داشته باشید که Lookup_Array، حتما یک محدوده تک بعدی، یعنی یک ستون یا یک ردیف باید باشه.

 

چون خروجی تابع Match، عدد هست، با اکثر توابعی که آرگومان هایی از جنس عدد دارن قابلیت ترکیب داره. یکی از این ترکیب های کاربردی رو در مثال زیر می بینیم:

ترکیب تابع Match و تابع Vlookup

همونطور که میدونید آرگومان سوم در تابع Vlookup ، یا همون Col_Index عدد هست. پس میتونیم از تابع Match توی این آرگومان استفاده کنیم. همون مثال تشریح شده در تابع Vlookup رو در نظر بگیرید. میخواهیم تابع رو طوری بنویسیم که با تغییر سل H2، جواب نیز تغییر کنه. یعنی (مطابق زیر) هر بار محاسبه بشه که عبارتی که در سل H2 نوشته میشه، چندمین سل در محدوده A1:E1 است.

تابع match در اکسل - نحوه استفاده

برای این کار در آرگومان سوم Vlookup از تابع Match استفاده می کنیم.

=Vlookup(G3,A1:E16,Match(H2,A1:E1,0),0)

با این کار شماره ستون در تابع Vlookup رو وصل میکنیم به تابع Match که هر بار با تغییر H2، محاسبات بروز شود.

تابع match در اکسل - ترکیب با تابع Vlookup در اکسل

شکل ۲- ترکیب تابع Match و Vlookup

خب، ماهیت تابع Match در اکسل رو با یک ترکیب کاربردی شرح دادیم. این تابع یکی از مهم ترین توابع جستجو به حساب میاد که تسلط به آن، در حل خیلی از مسائل کمک کننده خواهد بود.

134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • مهدی محمودی ۶ آبان ۱۴۰۳ / ۱:۳۰ ب٫ظ

    سلام و درود
    سوالی داشتم ؟
    فرض کنیم کسلی از دانش آموزان کلاسی ۳۰ نفره داریم . که نمرات دروس فیزیک، ریاضی، شیمی ، زبان ، هندسه و فارسی آنها در این اکسل کنار اسامی در ستونهای مختلف درج شده است. حال اگر بخواهیم فرد یا افرادی که بیشترین نمره و یا کمترین نمره در درس ریاضی را گرفته اند ه دستوراتی لازم داریم ؟ و به همین ترتیب برای دروس دیگر در شیت های بعدی بتونیم انجام بدهیم . با تشکر از شما
    mehdi_bu58@yahoo.com

    • آواتار
      حسنا خاکزاد ۸ آبان ۱۴۰۳ / ۱۰:۳۷ ق٫ظ

      درود بر شما
      اگر unpivot کنید و دیتابیس ماتریسی نباشه خیلی راحت با پیوت میشه
      اما در این حالت با ترکیب match, index و یا اگر فرمول نویسی آرایه ای میدونید، با اون میتونید انجام بدید
      به این ترتتیب که با تابع max و min بیشترین و کمترین نمره رو پیدا کنید
      بعد با match مکانشو پیدا کنید و بعد با index اسم دانش اموز رو مشخص کنید

      برای همه این موارد نمونه های زیادی داخل سایت ارائه شده. در ادامه لینک ها رو قرار میدم
      https://excelpedia.net/index-function/
      https://excelpedia.net/match-function/
      https://excelpedia.net/index-function-tricks/
      https://excelpedia.net/unpivot-data/

  • سعید یزدانی ۱۲ مهر ۱۴۰۲ / ۰:۳۹ ق٫ظ

    با سلام و احترام
    در محیط VBA خط برنامه زیر را نوشته ام (هدفم اختصاص دادن خروجی Match به یک متغیر عددی است)

    Col = WorksheetFunction.Match(5045, “H7:L7”, 0)

    اما با پیغام زیر مواجه میشم
    Unable to get the Match property of the WorksheetFunction class

    علت چیست؟
    با تشکر

    • آواتار
      حسنا خاکزاد ۱۲ مهر ۱۴۰۲ / ۶:۵۹ ب٫ظ

      درود
      کلمه range رو قبل از محدوده match نذاشتید
      WorksheetFunction.Match(943, Range(“A:A”), 0)

  • امیر ۱۵ آذر ۱۴۰۱ / ۱۲:۲۹ ب٫ظ

    سلام وقتتون بخیر
    من یه فرمول نوشتم که match index میره قاعدتا از سسر اول میگرده پیدا میکنه
    من میخوام این جستجو رو از سطر آخر اون table انجام بده
    چجوری میتونم اینکارو انجام بدم؟
    ممنونم

    • آواتار
      حسنا خاکزاد ۱۵ آذر ۱۴۰۱ / ۲:۱۷ ب٫ظ

      درود
      یا میتونید از تابع Xmatch در ورژن ۲۰۲۱ استفاده کنید
      یا از فرمول نویسی آرایه ای استفاده کنید
      برای این موضوع مقاله جستجوی موارد تکراری رو ببینید

  • مرزبان ۸ آبان ۱۳۹۸ / ۱۱:۰۴ ب٫ظ

    با عرض سلام و خسته نباشید من ی جدول فروش دارم که طبق تاریخه و فروش در هر تاریخ بین ۶ تا ۷ مورد یا بیشترم میشه حالا میخوام که گزارش فروش به تفکیک تاریخ بگیرم که مثلا فلان تاریخ فروش چقدر بوده و مبلغ فروش به کجا رفته مثلا از طریق کارتخوان بوده یا واریز به حساب و … از طریق کدوم فرمول اینکارو بکنم لطفا کمکم کنید چون خیلی درگیرشم اگه لطف کنید فرمولشم بفرستید ممنون میشم

    • سامان چراغی ۱۰ آبان ۱۳۹۸ / ۹:۱۶ ق٫ظ

      سلام
      برای ایجاد این گزارش حتما از Pivot Table استفاده کنید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان