فهرست مطالب
این آموزش نحوه استفاده از INDEX و MATCH را در اکسل نشان میدهد و چگونه از VLOOKUP بهتر است.
در چند مقاله اخیر، ما تلاش خوبی انجام دادیم تا اصول عملکرد VLOOKUP را برای مبتدیان توضیح دهیم و نمونه های فرمول پیچیده تر VLOOKUP را برای کاربران قدرتمند ارائه دهیم. و اکنون، سعی می کنم اگر شما را از استفاده از VLOOKUP منصرف نکنم، حداقل یک راه جایگزین برای انجام جستجوی عمودی در اکسل به شما نشان می دهم.
"برای چه چیزی به آن نیاز دارم؟" ممکن است تعجب کنید زیرا VLOOKUP دارای محدودیت های متعددی است که می تواند در بسیاری از موقعیت ها شما را از رسیدن به نتیجه دلخواه باز دارد. از طرف دیگر، ترکیب INDEX MATCH انعطاف پذیرتر است و ویژگی های بسیار جذابی دارد که آن را از بسیاری جهات برتر از VLOOKUP می کند.
Excel INDEX و توابع MATCH - مبانی
از آنجایی که هدف این آموزش نشان دادن یک روش جایگزین برای انجام یک vlookup در اکسل با استفاده از ترکیبی از توابع INDEX و MATCH است، ما زیاد به نحو و نحو آنها نمی پردازیم. استفاده می کند. ما فقط حداقل های لازم برای درک ایده کلی را پوشش خواهیم داد و سپس نگاهی عمیق به مثال های فرمول خواهیم انداخت که تمام مزایای استفاده از INDEX MATCH به جای VLOOKUP را نشان می دهد.
عملکرد INDEX - نحو و کاربرد
عملکرد Excel INDEX مقداری را در یک آرایه بر اساس اعداد سطر و ستونی که مشخص کردهاید برمیگرداند. نحو تابع INDEX ساده است:
( معیار1= محدوده1) * ( معیار2= محدوده2)، 0))}توجه. این یک فرمول آرایه ای است که باید با میانبر Ctrl + Shift + Enter تکمیل شود.
در جدول نمونه زیر، فرض کنید می خواهید مقدار را بر اساس 2 معیار پیدا کنید، Customer و محصول .
فرمول INDEX MATCH زیر عمل می کند:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
که در آن C2:C10 محدوده ای است که باید مقداری را از آن برگرداند، F1 معیار1 است، A2:A10 محدوده مقایسه با معیار1، F2 معیار 2، و B2:B10 محدوده مقایسه با معیار2 است.
به یاد داشته باشید با فشار دادن Ctrl + Shift + Enter فرمول را به درستی وارد کنید. ، و اکسل به طور خودکار براکت های فرفری آن را همانطور که در تصویر نشان داده شده است محصور می کند:
اگر ترجیح می دهید از فرمول های آرایه در کاربرگ های خود استفاده نکنید، یک تابع INDEX دیگر به آن اضافه کنید. فرمول و آن را با یک ضربه معمولی Enter کامل کنید:
این فرمول ها چگونه کار می کنند
فرمول ها از همان رویکردی استفاده می کنند که تابع اصلی INDEX MATCH است که به آن نگاه می کند. یک ستون برای ارزیابی چندین معیار، دو یا چند آرایه از مقادیر TRUE و FALSE ایجاد میکنید که منطبقها و غیر منطبقها را برای هر معیار جداگانه نشان میدهند و سپس عناصر مربوط به این آرایهها را ضرب میکنید. عملیات ضرب، TRUE و FALSE را به ترتیب به 1 و 0 تبدیل می کند و آرایه ای تولید می کند که در آن 1 با ردیف هایی مطابقت دارد که با همه معیارها مطابقت دارند.تابع MATCH با مقدار جستجوی 1 اولین "1" را در آرایه پیدا می کند و موقعیت خود را به INDEX می دهد، که مقداری را در این ردیف از ستون مشخص شده برمی گرداند.
فرمول غیر آرایه متکی است توانایی تابع INDEX برای مدیریت آرایه ها به صورت بومی. INDEX دوم با 0 row_num پیکربندی شده است تا کل آرایه ستون را به MATCH منتقل کند.
این توضیح سطح بالایی از منطق فرمول است. برای جزئیات کامل، لطفاً به Excel INDEX MATCH با چندین معیار مراجعه کنید.
Excel INDEX MATCH با AVERAGE, MAX, MIN
Microsoft Excel دارای توابع ویژه ای برای یافتن مقدار حداقل، حداکثر و متوسط در یک دامنه. اما اگر بخواهید مقداری را از سلول دیگری که با آن مقادیر مرتبط است دریافت کنید، چه؟ در این مورد، از تابع MAX، MIN یا AVERAGE همراه با INDEX MATCH استفاده کنید.
INDEX MATCH with MAX
برای پیدا کردن بزرگترین مقدار در ستون D و برگرداندن مقداری از ستون C در همان ردیف، از این فرمول استفاده کنید:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH با MIN
برای پیدا کردن کوچکترین مقدار در ستون D و کشیدن یک مقدار مرتبط از ستون C، از این یکی استفاده کنید :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEX MATCH with AVERAGE
برای بدست آوردن نزدیکترین مقدار به میانگین در D2:D10 و بدست آوردن مقدار مربوطه از ستون C، این فرمول است برای استفاده از:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
بسته به نحوه سازماندهی داده های شما، 1 یا -1 را به آرگومان سوم (مطابق_نوع) ازتابع MATCH:
- اگر ستون جستجوی شما (ستون D در مورد ما) صعودی مرتب شده است، عدد 1 را قرار دهید. فرمول بزرگترین مقدار را محاسبه می کند که کمتر است بیش از یا برابر با مقدار متوسط است.
- اگر ستون جستجوی شما نزولی مرتب شده است، -1 را وارد کنید. این فرمول کوچکترین مقداری را محاسبه می کند که بزرگتر از یا برابر با مقدار متوسط است.
- اگر آرایه جستجوی شما حاوی مقدار دقیقا برابر با میانگین باشد، شما می توانید 0 را برای مطابقت دقیق وارد کنید. هیچ مرتبسازی مورد نیاز نیست.
در مثال ما، جمعیتهای ستون D به ترتیب نزولی مرتب شدهاند، بنابراین از -1 برای نوع مطابقت استفاده میکنیم. در نتیجه، ما "توکیو" را دریافت می کنیم زیرا جمعیت آن (13,189,000) نزدیکترین تطابق است که بیشتر از میانگین است (12,269,006).
شاید کنجکاو باشید که بدانید که VLOOKUP می تواند چنین محاسباتی را نیز انجام دهد، اما به عنوان یک فرمول آرایه: VLOOKUP با میانگین، حداکثر، حداقل فرمول در اکسل نمی تواند یک مقدار جستجو را پیدا کند، یک خطای #N/A ایجاد می کند. اگر میخواهید نماد خطای استاندارد را با چیزی معنادارتر جایگزین کنید، فرمول INDEX MATCH خود را در تابع IFNA قرار دهید. به عنوان مثال:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
و اکنون، اگر فردی یک جدول جستجو را وارد کند که در محدوده جستجو وجود ندارد، فرمول به صراحت به کاربر اطلاع میدهد که هیچ تطابقی وجود ندارد.یافت شد:
اگر میخواهید همه خطاها را ببینید، نه تنها #N/A، از تابع IFERROR به جای IFNA استفاده کنید:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
لطفاً به خاطر داشته باشید که در بسیاری از مواقع ممکن است پنهان کردن همه خطاها عاقلانه نباشد، زیرا آنها در مورد خطاهای احتمالی در فرمول شما به شما هشدار می دهند.
این نحوه استفاده از INDEX و MATCH در اکسل است. امیدوارم مثالهای فرمول ما برای شما مفید باشد و مشتاقانه منتظر دیدار شما در وبلاگ خود در هفته آینده هستم!
کتاب کار را برای دانلود تمرین کنید
نمونههای Excel INDEX MATCH (فایل xlsx.)
INDEX(array, row_num, [column_num])در اینجا یک توضیح بسیار ساده برای هر پارامتر وجود دارد:
- array - محدوده ای از سلول ها که می خواهید یک عدد را برگردانید مقدار از.
- row_num - شماره ردیف در آرایه ای که می خواهید مقداری را از آن برگردانید. اگر حذف شود، ستون_num مورد نیاز است.
- column_num - شماره ستون در آرایه ای که می خواهید مقداری را از آن برگردانید. در صورت حذف، row_num مورد نیاز است.
برای اطلاعات بیشتر، لطفاً تابع Excel INDEX را ببینید.
و در اینجا نمونه ای از فرمول INDEX در ساده ترین شکل آن است:
=INDEX(A1:C10,2,3)
فرمول در سلول های A1 تا C10 جستجو می کند و مقداری از سلول در ردیف دوم و ستون 3، یعنی سلول C2 را برمی گرداند.
خیلی آسان است، درست است؟ با این حال، هنگام کار با داده های واقعی، به سختی می توانید بفهمید کدام ردیف و ستون را می خواهید، اینجاست که تابع MATCH مفید است.
عملکرد MATCH - نحو و استفاده
عملکرد MATCH اکسل یک مقدار جستجو را در محدوده ای از سلول ها جستجو می کند و موقعیت نسبی آن مقدار را در محدوده برمی گرداند.
نحو تابع MATCH به شرح زیر است:
MATCH(lookup_value , lookup_array, [match_type])- lookup_value - عدد یا مقدار متنی که به دنبال آن هستید.
- lookup_array - محدوده ای از سلول ها جستجو شد.
- match_type - مشخص میکند که مطابقت دقیق یا نزدیکترین تطابق را برگرداند:
- 1 یا حذف شده - بزرگترین مقدار را پیدا می کند که کمتر یا مساوی با مقدار جستجو است. نیاز به مرتب سازی آرایه جستجو به ترتیب صعودی دارد.
- 0 - اولین مقداری را که دقیقاً برابر با مقدار جستجو است را پیدا می کند. در ترکیب INDEX / MATCH، تقریباً همیشه به یک تطابق دقیق نیاز دارید، بنابراین آرگومان سوم تابع MATCH خود را روی 0 قرار می دهید.
- -1 - کوچکترین مقداری را که بزرگتر یا مساوی با lookup_value است را پیدا می کند. به مرتب کردن آرایه جستجو به ترتیب نزولی نیاز دارد.
به عنوان مثال، اگر محدوده B1:B3 حاوی مقادیر "New-York"، "Paris"، "London" باشد. فرمول زیر عدد 3 را برمی گرداند، زیرا "London" سومین ورودی در محدوده است:
=MATCH("London",B1:B3,0)
برای اطلاعات بیشتر، لطفاً تابع MATCH Excel را ببینید.
در آدرس در نگاه اول، مفید بودن تابع MATCH ممکن است مشکوک به نظر برسد. چه کسی به موقعیت یک مقدار در یک محدوده اهمیت می دهد؟ چیزی که ما می خواهیم بدانیم خود مقدار است.
اجازه دهید به شما یادآوری کنم که موقعیت نسبی مقدار جستجو (به عنوان مثال اعداد سطر و ستون) دقیقاً همان چیزی است که باید به row_num<ارائه دهید. آرگومان های 2> و column_num تابع INDEX. همانطور که به یاد دارید، Excel INDEX می تواند مقدار را در محل اتصال یک سطر و ستون مشخص پیدا کند، اما نمی تواند تعیین کند که دقیقا کدام سطر و ستون را می خواهید.
نحوه استفاده از تابع INDEX MATCH در اکسل
اکنون که اصول اولیه را می دانید، من معتقدم که دارددر حال حاضر شروع به درک نحوه کار MATCH و INDEX با هم کرده است. به طور خلاصه، INDEX مقدار جستجو را بر اساس اعداد ستون و ردیف پیدا می کند و MATCH آن اعداد را ارائه می دهد. تمام است!
برای جستجوی عمودی، از تابع MATCH فقط برای تعیین شماره ردیف استفاده میکنید و محدوده ستون را مستقیماً به INDEX:
INDEX ( ستون برای برگرداندن مقداری از) استفاده میکنید. , MATCH ( مقدار جستجو، ستون برای جستجو در مقابل، 0))هنوز برای فهمیدن آن مشکل دارید؟ شاید درک آن از یک مثال ساده تر باشد. فرض کنید لیستی از پایتخت های ملی و جمعیت آنها دارید:
برای یافتن جمعیت یک پایتخت خاص، مثلا پایتخت ژاپن، از فرمول INDEX MATCH زیر استفاده کنید:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
اکنون، بیایید تجزیه و تحلیل کنیم که هر جزء از این فرمول در واقع چه کاری انجام می دهد:
- عملکرد MATCH مقدار جستجوی "Japan" را در محدوده A2 جستجو می کند: A10، و عدد 3 را برمی گرداند، زیرا "Japan" سومین آرایه جستجو است.
- شماره ردیف مستقیماً به آرگومان row_num INDEX می رود و به آن دستور می دهد تا مقداری را از آن برگرداند. row.
بنابراین، فرمول بالا به یک INDEX ساده (C2:C,3) تبدیل میشود که میگوید در سلولهای C2 تا C10 جستجو کنید و مقدار را از سلول 3 در آن محدوده بکشید، یعنی. C4 چون از ردیف دوم شروع به شمارش می کنیم.
آیا نمی خواهید شهر را در فرمول هاردکد کنید؟ آن را در یک سلول، مثلا F1 وارد کنید، سلول را تامین کنیدبا ارجاع به MATCH، فرمول جستجوی پویا را دریافت خواهید کرد:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
نکته مهم! تعداد ردیفهای موجود در آرگومان آرایه INDEX باید با تعداد ردیفهای آرگومان lookup_array MATCH مطابقت داشته باشد، در غیر این صورت فرمول نتیجه نادرستی ایجاد میکند.
صبر کنید، صبر کنید... چرا don آیا ما به سادگی از فرمول Vlookup زیر استفاده نمی کنیم؟ اتلاف وقت برای کشف پیچش های مخفیانه Excel MATCH INDEX چه فایده ای دارد؟
=VLOOKUP(F1, A2:C10, 3, FALSE)
در این مورد، اصلاً فایده ای ندارد :) این مثال ساده فقط برای اهداف نمایشی است. به طوری که شما احساس می کنید که چگونه توابع INDEX و MATCH با هم کار می کنند. مثالهای دیگری که در ادامه میآیند، قدرت واقعی این ترکیب را به شما نشان میدهند که به راحتی با بسیاری از سناریوهای پیچیده در هنگام خراب شدن VLOOKUP کنار میآید.
نکات:
- در Excel 365 و Excel 2021، شما میتوانید از فرمول مدرنتری INDEX XMATCH استفاده کنید.
- برای Google Sheets، نمونههای فرمول با INDEX MATCH را در این مقاله ببینید.
INDEX MATCH در مقابل VLOOKUP
زمانی که اکثر استادان اکسل با تصمیم گیری در مورد اینکه کدام تابع برای جستجوهای عمودی استفاده شود، موافق هستند که INDEX MATCH به مراتب بهتر از VLOOKUP است. با این حال، بسیاری از مردم هنوز با VLOOKUP می مانند، اولاً به این دلیل که ساده تر است و ثانیاً به این دلیل که آنها به طور کامل تمام مزایای استفاده از فرمول INDEX MATCH در اکسل را درک نمی کنند. بدون چنین درک، هیچ کس حاضر نیست زمان خود را برای یادگیری سرمایه گذاری کندیک نحو پیچیدهتر.
در زیر، به مزایای کلیدی MATCH INDEX نسبت به VLOOKUP اشاره میکنم و شما تصمیم میگیرید که آیا آن افزودنی ارزشمند به زرادخانه اکسل شما است یا خیر.
4 دلیل اصلی برای استفاده INDEX MATCH به جای VLOOKUP
- جستجو از راست به چپ. همانطور که هر کاربر تحصیل کرده ای می داند، VLOOKUP نمی تواند به سمت چپ خود نگاه کند، به این معنی که مقدار جستجوی شما همیشه باید در سمت چپ ترین ستون قرار داشته باشد. میز. INDEX MATCH می تواند جستجوی چپ را به راحتی انجام دهد! مثال زیر آن را در عمل نشان می دهد: نحوه Vlookup یک مقدار در سمت چپ در اکسل.
- درج یا حذف ستون ها به صورت ایمن. فرمول های VLOOKUP شکسته می شوند یا نتایج نادرستی ارائه می دهند زمانی که یک ستون جدید وجود دارد. از یک جدول جستجو حذف شده یا به آن اضافه شده است زیرا نحو VLOOKUP نیاز به مشخص کردن شماره فهرست ستونی دارد که می خواهید داده ها را از آن بیرون بکشید. به طور طبیعی، هنگامی که ستون ها را اضافه یا حذف می کنید، شماره فهرست تغییر می کند.
با INDEX MATCH، شما محدوده ستون بازگشتی را مشخص می کنید، نه یک عدد شاخص. در نتیجه، میتوانید بدون نگرانی در مورد بهروزرسانی هر فرمول مرتبط، هر تعداد ستون را که میخواهید وارد و حذف کنید.
- هیچ محدودیتی برای اندازه مقدار جستجو وجود ندارد. هنگام استفاده از تابع VLOOKUP، طول کل معیارهای جستجوی شما نمی تواند از 255 کاراکتر تجاوز کند، در غیر این صورت در نهایت مقدار #VALUE را خواهید داشت. ! خطا بنابراین، اگر مجموعه داده شما شامل رشته های طولانی باشد، INDEX MATCH تنها راه حلی است که کار می کندراه حل.
- سرعت پردازش بالاتر. اگر جداول شما نسبتا کوچک باشد، به سختی تفاوت قابل توجهی در عملکرد اکسل وجود خواهد داشت. اما اگر کاربرگهای شما شامل صدها یا هزاران ردیف و در نتیجه صدها یا هزاران فرمول باشد، MATCH INDEX بسیار سریعتر از VLOOKUP کار میکند، زیرا اکسل باید به جای کل آرایه جدول، فقط ستونهای جستجو و بازگشت را پردازش کند.
تأثیر VLOOKUP بر عملکرد اکسل ممکن است به ویژه قابل توجه باشد اگر کتاب کار شما حاوی فرمول های آرایه پیچیده مانند VLOOKUP و SUM باشد. نکته این است که بررسی هر مقدار در آرایه نیاز به فراخوانی جداگانه تابع VLOOKUP دارد. بنابراین، هرچه مقادیر بیشتری آرایه شما داشته باشد و فرمول های آرایه بیشتری در یک کتاب کار داشته باشید، عملکرد اکسل کندتر است.
Excel INDEX MATCH - مثال های فرمول
دانستن دلایل یادگیری تابع MATCH INDEX، اجازه دهید به جالب ترین قسمت برسیم و ببینیم چگونه می توانید دانش نظری را در عمل به کار ببرید.
فرمول INDEX MATCH برای نگاه کردن از راست به چپ
به عنوان قبلاً ذکر شد، VLOOKUP نمی تواند به سمت چپ خود نگاه کند. بنابراین، مگر اینکه مقادیر جستجوی شما در سمت چپ ترین ستون باشد، هیچ شانسی وجود ندارد که فرمول Vlookup نتیجه مورد نظر شما را به ارمغان بیاورد. تابع INDEX MATCH در اکسل همه کاره تر است و واقعاً اهمیتی نمی دهد که ستون های جستجو و بازگشت در کجا قرار دارند.
برای این مثال،ما ستون Rank را در سمت چپ جدول نمونه خود اضافه می کنیم و سعی می کنیم بفهمیم که پایتخت روسیه، مسکو، چگونه از نظر جمعیت رتبه بندی می کند.
با مقدار جستجو در G1، از فرمول زیر برای جستجو استفاده کنید. در C2:C10 و مقدار مربوطه را از A2:A10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
برگردانید. اگر قصد دارید از فرمول INDEX MATCH خود برای بیش از یک سلول استفاده کنید، مطمئن شوید که هر دو محدوده را با ارجاعات سلولی مطلق قفل کنید (مانند $A$2:$A$10 و $C$2:4C$10) تا زمانی که آنها تحریف نشوند کپی کردن فرمول.
INDEX MATCH MATCH برای جستجو در ردیف ها و ستون ها
در مثال های بالا، ما از INDEX MATCH به عنوان جایگزینی برای VLOOKUP کلاسیک برای برگرداندن مقداری از یک ستون از پیش تعریف شده استفاده کردیم. دامنه. اما اگر بخواهید در سطرها و ستون های متعدد جستجو کنید چه؟ به عبارت دیگر، اگر بخواهید به اصطلاح جستجوی ماتریس یا دو طرفه را انجام دهید چه؟
ممکن است مشکل به نظر برسد، اما فرمول بسیار مشابه است. به تابع اصلی Excel INDEX MATCH، تنها با یک تفاوت. حدس بزنید؟
به سادگی، از دو تابع MATCH استفاده کنید - یکی برای به دست آوردن شماره ردیف و دیگری برای به دست آوردن شماره ستون. و من به کسانی از شما که درست حدس زده اند تبریک می گویم :)
INDEX (آرایه، MATCH ( مقدار vlookup، ستون برای جستجو در مقابل، 0)، MATCH ( مقدار hlookup، ردیف برای جستجو در برابر، 0))و اکنون، لطفاً به جدول زیر نگاهی بیندازید و بیایید یک INDEX MATCH MATCH بسازیمفرمول یافتن جمعیت (به میلیون ها) در یک کشور معین برای یک سال معین.
با کشور هدف در G1 (مقدار vlookup) و سال هدف در G2 (مقدار hlookup)، فرمول این شکل را به خود می گیرد. :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
این فرمول چگونه کار می کند
هر زمان که نیاز به درک یک فرمول پیچیده اکسل دارید، آن را به قسمت های کوچکتر تقسیم کنید و ببینید هر تابع مجزا چه کاری انجام می دهد:
MATCH(G1,A2:A11,0)
- از طریق A2:A11 مقدار موجود در سلول G1 ("چین") را جستجو می کند و موقعیت خود را که 2 است برمی گرداند.
MATCH(G2,B1:D1,0))
- جستجو از طریق B1:D1 برای به دست آوردن موقعیت مقدار در سلول G2 ("2015")، که 3 است.
اعداد ردیف و ستون بالا به آرگومان های مربوط به تابع INDEX می روند:
INDEX(B2:D11, 2, 3)
در نتیجه، مقداری در تقاطع ردیف دوم و ستون 3 در محدوده B2:D11 دریافت می کنید که مقدار موجود در سلول D3 است. آسان؟ بله!
Excel INDEX MATCH برای جستجوی چندین معیار
اگر فرصتی برای خواندن آموزش VLOOKUP اکسل ما داشتید، احتمالاً قبلاً فرمولی را برای Vlookup با چندین معیار آزمایش کرده اید. با این حال، محدودیت قابل توجه آن رویکرد، لزوم اضافه کردن یک ستون کمکی است. خبر خوب این است که تابع INDEX MATCH اکسل میتواند با دو یا چند معیار نیز جستجو کند، بدون تغییر یا تغییر ساختار دادههای منبع شما!
در اینجا فرمول عمومی INDEX MATCH با چندین معیار است:
{=INDEX( بازه_بازگشت، MATCH(1،