فهرست مطالب
این آموزش نحوه استفاده از تابع MATCH در اکسل را با مثال های فرمول توضیح می دهد. همچنین نشان می دهد که چگونه می توان فرمول های جستجوی خود را با ساخت فرمول پویا با VLOOKUP و MATCH بهبود بخشید.
در مایکروسافت اکسل، بسیاری از توابع جستجو/مرجع مختلف وجود دارد که می تواند به شما کمک کند مقدار خاصی را در یک عدد پیدا کنید. محدوده سلول ها، و MATCH یکی از آنهاست. اساسا، موقعیت نسبی یک آیتم را در محدوده ای از سلول ها مشخص می کند. با این حال، تابع MATCH می تواند بسیار بیشتر از ذات خالص خود انجام دهد.
عملکرد MATCH اکسل - نحو و استفاده می کند
عملکرد MATCH در اکسل مقدار مشخصی را در اکسل جستجو می کند. محدوده ای از سلول ها، و موقعیت نسبی آن مقدار را برمی گرداند.
سینتکس تابع MATCH به شرح زیر است:
MATCH(lookup_value، lookup_array، [match_type])Lookup_value (الزامی) - مقداری که می خواهید پیدا کنید. این می تواند یک مقدار عددی، متنی یا منطقی و همچنین یک مرجع سلولی باشد.
Lookup_array (الزامی) - محدوده سلول هایی برای جستجو.
Match_type (اختیاری) - نوع تطابق را مشخص می کند. می تواند یکی از این مقادیر باشد: 1، 0، -1. آرگومان match_type تنظیم شده روی 0 فقط مطابقت دقیق را برمی گرداند، در حالی که دو نوع دیگر امکان تطابق تقریبی را دارند.
- 1 یا حذف شده (پیش فرض) - بزرگترین مقدار را در آرایه جستجو که کمتر یا مساوی با مقدار جستجو است. نیاز به مرتب سازی آرایه جستجو به ترتیب صعودی دارد،کتاب کار برای دانلود
نمونههای فرمول Excel MATCH (فایل xlsx.)
از کوچکترین به بزرگترین یا از A تا Z. - 0 - اولین مقدار آرایه را پیدا کنید که دقیقا برابر با مقدار جستجو است. هیچ مرتبسازی لازم نیست.
- -1 - کوچکترین مقدار را در آرایه پیدا کنید که بزرگتر یا مساوی با مقدار جستجو باشد. آرایه جستجو باید به ترتیب نزولی، از بزرگترین به کوچکترین یا از Z به A مرتب شود.
برای درک بهتر تابع MATCH، اجازه دهید یک فرمول ساده بر اساس این داده ها ایجاد کنیم: نام دانش آموزان در ستون الف و نمرات امتحان آنها در ستون B، از بزرگترین به کوچکترین مرتب شده است. برای پیدا کردن جایگاه یک دانش آموز خاص (مثلاً لورا ) در میان دیگران، از این فرمول ساده استفاده کنید:
=MATCH("Laura", A2:A8, 0)
به صورت اختیاری، می توانید مقدار جستجو را در برخی موارد قرار دهید. سلول (E1 در این مثال) و به آن سلول در فرمول Excel Match خود اشاره کنید:
=MATCH(E1, A2:A8, 0)
همانطور که در تصویر بالا می بینید، نام دانش آموزان به ترتیب دلخواه وارد می شوند، و بنابراین آرگومان match_type را روی 0 قرار می دهیم (تطابق دقیق)، زیرا فقط این نوع تطابق نیازی به مرتب سازی مقادیر در آرایه جستجو ندارد. از نظر فنی، فرمول Match موقعیت نسبی لورا را در محدوده برمیگرداند. اما از آنجایی که نمرات از بزرگترین به کوچکترین مرتبهسازی شدهاند، به ما میگوید که لورا پنجمین امتیاز بهترین را در بین همه دانشآموزان دارد.
نکته. در اکسل 365 و اکسل 2021 می توانید از تابع XMATCH استفاده کنید که یک جانشین مدرن و قدرتمندتر است.از MATCH.
4 نکته که باید در مورد تابع MATCH بدانید
همانطور که اخیرا مشاهده کردید، استفاده از MATCH در اکسل آسان است. با این حال، مانند تقریباً هر تابع دیگری، چند ویژگی وجود دارد که باید از آنها آگاه باشید:
- عملکرد MATCH موقعیت نسبی مقدار جستجو را برمیگرداند. در آرایه، نه خود مقدار.
- MATCH به حروف کوچک و بزرگ حساس نیست ، به این معنی که هنگام کار با مقادیر متن، بین حروف کوچک و بزرگ تمایز قائل نمی شود.
- اگر آرایه جستجو حاوی چندین رخداد از مقدار جستجو است، موقعیت اولین مقدار برگردانده می شود.
- اگر مقدار جستجو در آرایه جستجو یافت نشد، خطای #N/A برگردانده می شود.
نحوه استفاده از MATCH در اکسل - مثالهای فرمول
اکنون که کاربردهای اصلی تابع Excel MATCH را میدانید، اجازه دهید چند نمونه فرمول دیگر را که فراتر از اصول اولیه هستند، مورد بحث قرار دهیم.
تطبیق جزئی با حروف عام
مثل بسیاری از توابع دیگر، MATCH کاراکترهای عام زیر را درک میکند:
- علامت سوال (؟) - جایگزین هر کاراکتری میشود
- ستاره (*) - جایگزین هر s توالی کاراکترها
توجه. علامتهای عام را فقط میتوان در فرمولهای Match استفاده کرد که match_type روی 0 تنظیم شده است.
فرمول تطبیق با حروف عام در شرایطی مفید است که میخواهید نه کل رشته متن، بلکه فقط برخی از کاراکترها یا بخشی را مطابقت دهید. از رشتهبرای نشان دادن موضوع، مثال زیر را در نظر بگیرید.
فرض کنید فهرستی از فروشندگان منطقه و ارقام فروش آنها در ماه گذشته دارید. شما می خواهید موقعیت نسبی یک فروشنده خاص را در لیست پیدا کنید (بر اساس مقادیر فروش به ترتیب نزولی مرتب شده اند) اما نمی توانید نام او را دقیقاً به خاطر بسپارید، اگرچه چند کاراکتر اول را به خاطر دارید.
با فرض اینکه فروشنده است. نامها در محدوده A2:A11 هستند، و شما در جستجوی نامی هستید که با "car" شروع میشود، فرمول به شرح زیر است:
=MATCH("car*", A2:A11,0)
برای اینکه فرمول Match ما همهکارهتر شود، می توانید مقدار جستجو را در برخی از سلول ها تایپ کنید (در این مثال E1) و آن سلول را با کاراکتر wildcard الحاق کنید، مانند این:
=MATCH(E1&"*", A2:A11,0)
همانطور که در تصویر زیر نشان داده شده است، فرمول 2 را برمی گرداند که موقعیت "Carter" است:
برای جایگزینی فقط یک کاراکتر در مقدار جستجو، از "?" استفاده کنید. عملگر wildcard، مانند این است:
=MATCH("ba?er", A2:A11,0)
فرمول بالا با نام " Baker " مطابقت دارد و موقعیت نسبی آن را که 5 است مجددا اجرا می کند.
فرمول MATCH حساس به حروف کوچک و بزرگ
همانطور که در ابتدای این آموزش ذکر شد، تابع MATCH حروف بزرگ و کوچک را تشخیص نمی دهد. برای ایجاد فرمول Match حساس به حروف کوچک و بزرگ، از MATCH در ترکیب با تابع EXACT استفاده کنید که دقیقاً سلولها را از جمله حروف کوچک مقایسه میکند.
در اینجا فرمول عمومی حساس به حروف بزرگ برای مطابقت وجود دارد.داده:
MATCH(TRUE، EXACT( آرایه جستجو ، مقدار جستجو )، 0)فرمول با منطق زیر کار می کند:
- تابع EXACT مقدار جستجو را با هر عنصر از آرایه جستجو مقایسه می کند. اگر سلول های مقایسه شده دقیقاً برابر باشند، تابع TRUE، در غیر این صورت FALSE را برمی گرداند.
- و سپس، تابع MATCH TRUE را (که lookup_value آن است) با هر مقدار در آرایه که توسط EXACT، و موقعیت اولین تطابق را برمی گرداند.
لطفاً به خاطر داشته باشید که این فرمول آرایه ای است که برای تکمیل صحیح نیاز به فشار دادن Ctrl + Shift + Enter دارد.
با فرض اینکه مقدار جستجو در سلول E1 است و آرایه جستجو A2:A9 است، فرمول به شرح زیر است:
=MATCH(TRUE, EXACT(A2:A9,E1),0)
تصویر زیر فرمول Match حساس به حروف بزرگ را در اکسل نشان می دهد:
مقایسه 2 ستون برای مطابقت و تفاوت (ISNA MATCH)
بررسی دو لیست برای مطابقت و تفاوت یکی از رایج ترین کارها در اکسل است و می تواند به روش های مختلف انجام می شود. فرمول ISNA/MATCH یکی از آنهاست:
IF(ISNA(MATCH( اولین مقدار در List1 , List2 , 0))، "نه در لیست 1"، " ")برای هر مقدار از لیست 2 که در لیست 1 وجود ندارد، فرمول " در لیست 1 نیست " را برمی گرداند. و به این صورت است:
- عملکرد MATCH یک مقدار را از لیست 1 در لیست 2 جستجو می کند. اگر مقداری پیدا شود، موقعیت نسبی خود را باز می گرداند، خطای #N/Aدر غیر این صورت.
- عملکرد ISNA در اکسل فقط یک کار را انجام می دهد - خطاهای #N/A (به معنی "در دسترس نیست") را بررسی می کند. اگر مقدار داده شده یک خطای #N/A باشد، تابع TRUE و در غیر این صورت FALSE را برمیگرداند. در مورد ما، TRUE به این معنی است که مقداری از لیست 1 در لیست 2 یافت نمی شود (به عنوان مثال یک خطای #N/A توسط MATCH برگردانده می شود).
- زیرا ممکن است دیدن TRUE برای کاربران شما بسیار گیج کننده باشد. برای مقادیری که در لیست 1 ظاهر نمی شوند، تابع IF را در اطراف ایسنا می پیچید تا به جای آن " در لیست 1 نیست " یا هر متنی که می خواهید نمایش داده شود.
به عنوان مثال ، برای مقایسه مقادیر ستون B با مقادیر ستون A، فرمول به شکل زیر است (که B2 بالاترین سلول است):
=IF(ISNA(MATCH(B2,A:A,0)), "Not in List 1", "")
همانطور که به یاد دارید، تابع MATCH در اکسل به خودی خود حساس به حروف بزرگ و کوچک است. برای اینکه بتواند حروف کاراکتر را تشخیص دهد، تابع EXACT را در آرگومان lookup_array جاسازی کنید و به خاطر داشته باشید که Ctrl + Shift + Enter را فشار دهید تا این فرمول آرایه :
<0 را فشار دهید> =IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Not in List 1", "")
تصویر زیر هر دو فرمول را در عمل نشان می دهد:
برای یادگیری روش های دیگر برای مقایسه دو لیست در اکسل، لطفا به آموزش زیر مراجعه کنید: برای مقایسه 2 ستون در اکسل.
Excel VLOOKUP and MATCH
این مثال فرض می کند که شما قبلاً دانش اولیه ای از عملکرد Excel VLOOKUP دارید. و اگر این کار را انجام دهید، به احتمال زیاد با محدودیتهای متعدد آن مواجه شدهاید (که مروری جزئی میتواند باشددر چرا Excel VLOOKUP کار نمی کند) یافت می شود و به دنبال جایگزین قوی تری هستند.
یکی از آزاردهنده ترین اشکالات VLOOKUP این است که پس از درج یا حذف یک ستون در یک جدول جستجو از کار می افتد. این اتفاق میافتد زیرا VLOOKUP یک مقدار منطبق بر اساس تعداد ستون بازگشتی که شما مشخص کردهاید (شماره فهرست) میگیرد. از آنجایی که شماره فهرست در فرمول "کد سخت" است، اکسل قادر به تنظیم آن در هنگام اضافه یا حذف ستون(های) جدید به جدول نیست.
اکسل تابع MATCH با یک موقعیت نسبی از یک مقدار جستجو سر و کار دارد، که آن را مناسب برای آرگومان col_index_num VLOOKUP می کند. به عبارت دیگر، به جای تعیین ستون بازگشتی به عنوان یک عدد ثابت، از MATCH برای به دست آوردن موقعیت فعلی آن ستون استفاده می کنید.
برای درک آسان تر، بیایید دوباره از جدول با نمرات امتحانات دانش آموزان استفاده کنیم. (مشابه آنچه در ابتدای این آموزش استفاده کردیم)، اما این بار امتیاز واقعی را بازیابی خواهیم کرد و نه موقعیت نسبی آن را.
با فرض اینکه مقدار جستجو در سلول F1 باشد، آرایه جدول به صورت $A$1:$C$2 (اگر میخواهید فرمول را در سلولهای دیگر کپی کنید، قفل کردن آن با استفاده از ارجاعات سلول مطلق کار خوبی است)، فرمول به شرح زیر است:
=VLOOKUP(F1, $A$1:$C$8, 3, FALSE)
آرگومان 3 ( col_index_num ) روی 3 تنظیم شده است زیرا امتیاز ریاضی که می خواهیم استخراج کنیم، ستون 3 درجدول. همانطور که در تصویر زیر می بینید، این فرمول Vlookup معمولی به خوبی کار می کند:
اما فقط تا زمانی که ستون(ها) را وارد یا حذف کنید:
پس چرا #REF! خطا؟ از آنجا که col_index_num روی 3 تنظیم شده است به اکسل میگوید که مقداری را از ستون سوم دریافت کند، در حالی که اکنون فقط 2 ستون در آرایه جدول وجود دارد.
برای جلوگیری از وقوع چنین مواردی، میتوانید فرمول Vlookup شما با گنجاندن تابع Match زیر پویاتر است:
MATCH(E2,A1:C1,0)
Where:
- E2 مقدار جستجو است که دقیقا برابر است به نام ستون بازگشتی، یعنی ستونی که می خواهید مقداری را از آن بگیرید ( امتیاز ریاضی در این مثال).
- A1:C1 آرایه جستجو است که شامل هدرهای جدول.
و اکنون، این تابع Match را در آرگومان col_index_num فرمول Vlookup خود قرار دهید، مانند این:
=VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)
و مطمئن شوید که بدون توجه به تعداد ستونهایی که اضافه یا حذف میکنید، بیعیب کار میکند:
در تصویر بالا، تمام مراجع سلولی را قفل کردم تا فرمول به درستی کار کند، حتی اگر کاربران آن را به مکان دیگری در کاربرگ منتقل می کنند. در تصویر زیر می توانید ببینید، فرمول پس از حذف یک ستون به خوبی کار می کند. علاوه بر این، اکسل به اندازه کافی هوشمند است که در این مورد مراجع مطلق را به درستی تنظیم کند:
Excel HLOOKUP and MATCH
به روشی مشابه، می توانید از Excel MATCH استفاده کنید. تابع بهفرمول های HLOOKUP خود را بهبود بخشید. اصل کلی اساساً مانند مورد Vlookup است: شما از تابع Match برای بدست آوردن موقعیت نسبی ستون بازگشتی استفاده میکنید و آن عدد را به آرگومان row_index_num فرمول Hlookup خود میدهید.
با فرض اینکه مقدار جستجو در سلول B5 باشد، آرایه جدول B1:H3 است، نام سطر برگشتی (مقدار جستجو برای MATCH) در سلول A6 و هدر ردیف A1:A3 است، فرمول کامل به شرح زیر است:
=HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)
همانطور که مشاهده کردید، ترکیبی از Hlookup/Vlookup & Match مطمئناً یک پیشرفت نسبت به فرمول های Hlookup و Vlookup معمولی است. با این حال، تابع MATCH همه محدودیت های آنها را از بین نمی برد. به طور خاص، فرمول Vlookup Match هنوز نمی تواند به سمت چپ خود نگاه کند، و Hlookup Match در هیچ ردیفی غیر از بالاترین آن جستجو نمی کند.
برای غلبه بر محدودیت های بالا (و چند محدودیت دیگر)، استفاده از یک سطر را در نظر بگیرید. ترکیبی از INDEX MATCH، که یک روش واقعا قدرتمند و همه کاره برای انجام جستجو در اکسل ارائه می دهد که از بسیاری جهات برتر از Vlookup و Hlookup است. راهنمای دقیق و مثال های فرمول را می توان در INDEX & MATCH در اکسل - جایگزین بهتری برای VLOOKUP.
به این ترتیب از فرمول های MATCH در اکسل استفاده می کنید. امیدواریم مثالهای مورد بحث در این آموزش در کار شما مفید باشد. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینم!