فهرست مطالب
وقتی حجم زیادی از داده داریم، گاهی اوقات استخراج هر داده خاص از مجموعه داده دشوار است. همراه با توابع INDEX و MATCH اکسل می تواند هر نوع داده ای را حتی در یک مجموعه داده عظیم بازیابی کند. پیاده سازی VBA موثرترین، سریع ترین و ایمن ترین روش برای اجرای هر عملیاتی در اکسل است. در این مقاله، ما 3 روش مختلف برای انجام INDEX MATCH بر اساس معیارهای متعدد در اکسل با ماکرو VBA را به شما نشان خواهیم داد.
دانلود Workbook
می توانید کتاب تمرین رایگان Excel را از اینجا دانلود کنید.
VBA INDEX MATCH بر اساس معیارهای چندگانه.xlsm
3 روش با VBA INDEX MATCH بر اساس معیارهای چندگانه در اکسل
در بخش های بعدی به شما نشان خواهیم داد که چگونه INDEX MATCH را بر اساس چندین معیار برای یک محدوده انجام دهید ، برای یک انتخاب خاص و برای یک جدول در اکسل با VBA .
بالا ما مجموعه داده ای را داریم که این مقاله دنبال خواهد کرد. ما نام دانشجو ، شناسه دانشجو، و نمرات امتحان هر دانش آموز را در مجموعه داده داریم. ما یک نتیجه مشخص در یک ستون را بر اساس شرایط از دو ستون دیگر استخراج خواهیم کرد.
معیار - 1: جاسازی VBA با INDEX MATCH برای جستجوی چند بعدی (دو بعدی) در اکسل
تصویر زیر را در نظر بگیرید. ما نام یک دانش آموز خاص " Edge" را در Cell ذخیره کرده ایمG4 ; و ستونی که نتیجه را در آن جستجو می کنیم، نمرات امتحان ، در Cell G5 ذخیره می شود. ما در ستون Exam Marks جستجو می کنیم و Marks را که " Edge" در Cell G6 دریافت کرده است ذخیره می کنیم.
مراحل جستجو منجر به آرایه دو بعدی با INDEX و MATCH در اکسل با VBA میشود. در زیر آورده شده است.
مراحل:
- در ابتدا، Alt + F11 را روی صفحه کلید خود فشار دهید یا به برگه برنامهنویس -> Visual Basic برای باز کردن Visual Basic Editor .
- بعد، در پنجره کد پاپ آپ، از نوار منو، روی Insert -> ماژول .
- سپس، کد زیر را کپی و در کد چسب کنید پنجره.
4430
کد شما اکنون آماده اجرا است.
- اکنون، F5 را فشار دهید صفحه کلید یا از نوار منو Run -> Sub/UserForm را اجرا کنید. همچنین میتوانید روی آیکون Run کوچک در نوار منوی فرعی کلیک کنید تا ماکرو اجرا شود.
پس از اجرای کد، برای دیدن نتیجه به گیف زیر نگاه کنید.
در نتیجه، علامتهای که " Edge" در exam، 67 ، در Cell G7 بازیابی شده است.
شرح کد VBA
3105
تعریف متغیر Worksheet.
9278
نام کاربرگ را ذخیره کنید. نام برگه ما "دو بعدی" است، شما باید ارائه دهیدنام مطابق صفحه گسترده شما.
5779
این قطعه کد محدوده C5:D14 را به عنوان محدوده جستجو انتخاب می کند. سپس مطابقت ذخیره شده در سلول G4 در محدوده B5:B14 را جستجو کنید و مطابقت ذخیره شده در سلول G5 در محدوده را جستجو کنید. C4:D4 و نتیجه را به سلول G6 منتقل کنید.
بیشتر بخوانید: نحوه استفاده از INDEX MATCH با چند معیار برای محدوده تاریخ
معیار - 2: اعمال ماکرو برای یافتن مقدار MATCH توسط INDEX با تابع تعریف شده توسط کاربر (UDF)
شما می توانید مقادیر منطبق را از یک مجموعه داده با یک عملکرد تعریف شده توسط کاربر (UDF) . از تصویر زیر، کاری که میخواهیم انجام دهیم این است که شناسه دانشجویی و نمرات امتحان یک دانشآموز خاص را پاس میکنیم و تابع به ما Name<میاندازد. 2> از آن دانش آموز خاص.
بیایید ببینیم چگونه برای نام دانش آموز "فین" با VBA به آن دست یابیم.
مراحل:
- همانطور که قبلا نشان داده شد، Visual Basic Editor را از برگه Developer باز کنید و یک Module را در پنجره کد وارد کنید.
- سپس، در پنجره کد، کد زیر را کپی کنید و آن را جایگذاری کنید .
5211
- این کد را اجرا نکنید ، آن را ذخیره کنید.
- اکنون به کاربرگ مورد علاقه برگردید. هر سلولی را انتخاب کنید که می خواهید نتیجه را ذخیره کنید. در مورد ما، Cell F5 است.
- در آن سلول، UDF را بنویسیدفقط در کد ( MatchByIndex ) ایجاد کردهاید و شناسه دانشجویی و نمرات امتحانی دانشآموز را در داخل پرانتز تابع پاس کنید.
به عنوان ما سعی می کنیم نام " Finn" را از ID (105) و علامت های (84) او استخراج کنیم، بنابراین برای مورد ما فرمول تبدیل می شود،
=MatchByIndex(105,84)
- سپس، Enter را فشار دهید.
به تصویر زیر نگاه کنید.
در Cell F5 ، نام " Finn" را با موفقیت بازیابی کردیم با عبور دادن ID و علامت های او در داخل تابعی که در کد VBA ایجاد کردیم.
<. 1>شرح کد VBA
3915
ایجاد یک تابع جدید و ارسال متغیرهای داخل آن. شما می توانید هر نامی را برای تابع تعریف کنید.
1875
ردیف ما از ردیف شماره 4 شروع می شود. شما باید شماره ردیفی را که مجموعه داده شما از آن شروع می شود ارائه دهید.
2632
تعریف متغیرها.
8232
ابتدا کاربرگ را برای کار با آن تعریف کنید. نام برگه ما "UDF" است، شما باید نام را مطابق صفحه گسترده خود ارائه دهید. سپس شروع به جستجو در محدوده C:D از اولین ردیفی که تعریف کردیم تا آخرین سطر.
8655
از اولین سطر تا آخرین سطر شروع به جستجو کنید. اگر اولین مقداری که در داخل تابع ارسال می کنیم در ستون C و اگر مقدار دومی که در داخل تابع ارسال می کنیم در ستون D بیفتد، باز می گردد. رامطابقت از ستون B . در غیر این صورت، از تابع خارج شوید، تمام عبارات را پایان دهید و به خط بعدی بروید.
7778
اگر شرط قبلی در حین اجرا برآورده نشد، پیام "داده ها یافت نشد" برگردانده می شود و کد تابع را ترک می کند.
بیشتر بخوانید: INDEX-MATCH با معیارهای چندگانه برای متن جزئی در اکسل (2 روش)
معیار - 3: پیاده سازی VBA برای برگرداندن مقدار MATCH از یک جدول با داده های چندگانه در اکسل
در این بخش، نحوه برگرداندن یک مقدار مطابق با شاخص های یک جدول را یاد خواهیم گرفت. در MsgBox در VBA Excel.
بیایید ببینیم که چگونه Marks را از جدول نشان داده شده در ما استخراج کنیم. مجموعه داده ( T able Name: TableMatch ) یک دانش آموز خاص با ارائه Name و ID در داخل کد. برای مورد ما، Name و ID به ترتیب Finn و 105 خواهند بود.
مراحل :
- ابتدا، Visual Basic Editor را از تب Developer و Insert a Module<2 را باز کنید> در پنجره کد.
- سپس، کد زیر را کپی و آن را در پنجره کد جایگذاری کنید .
7623
کد شما اکنون آماده اجرا است.
- بعد، این کد را اجرا کنید و به تصویر زیر نگاه کنید تا ببینید نتیجه چه شد.
همانطور که از تصویر بالا می بینید، یک پاپ Microsoft Excel وجود دارد.جعبه پیام بالا که علامتها: 84 از ID: 105 و Name: Finn را که در داخل کد ارائه کردهایم به شما نشان میدهد.
شرح کد VBA
9771
تعریف متغیرها.
5145
تنظیم نام برگه و نام جدول در داخل متغیرها.
6286
ذخیره مقادیر جستجو و ستون های جستجو برای جستجو.
8979
این قطعه کد از ابتدا تا انتهای زیرنویس را اسکن می کند و اگر مطابقت شناسه تعریف شده و نام را در ستون های جستجو پیدا کند، سپس نتیجه را ذخیره کنید و تمام عبارات را ببندید. همچنین، از تکرار خارج شده و به قسمت بعدی کد بروید.
7450
نتیجه را در MsgBox می اندازد.
بیشتر بخوانید: جستجو و بازگشت چندین مقدار در یک سلول در اکسل ادغام شده اند
نتیجه گیری
برای نتیجه گیری، این مقاله 3 روش مختلف در مورد نحوه انجام INDEX MATCH را به شما نشان می دهد. در چند معیار در اکسل با ماکرو VBA . امیدوارم این مقاله برای شما بسیار مفید بوده باشد. هر گونه سوالی در مورد موضوع بپرسید.