সুচিপত্র
যখন আমাদের কাছে প্রচুর পরিমাণে ডেটা থাকে তখন কখনও কখনও ডেটাসেট থেকে কোনও নির্দিষ্ট ডেটা বের করা কঠিন হয়। একসাথে Excel এর INDEX এবং MATCH ফাংশনগুলি একটি বিশাল ডেটাসেটেও যে কোনও ধরণের ডেটা পুনরুদ্ধার করতে পারে। এক্সেলের যেকোনো অপারেশন চালানোর জন্য VBA প্রয়োগ করা সবচেয়ে কার্যকর, দ্রুততম এবং নিরাপদ পদ্ধতি। এই নিবন্ধে, আমরা আপনাকে এক্সেলের VBA ম্যাক্রো সহ একাধিক মানদণ্ডের উপর ভিত্তি করে INDEX MATCH কিভাবে সম্পাদন করতে হয় তার 3টি ভিন্ন পদ্ধতি দেখাব।
ডাউনলোড করুন ওয়ার্কবুক
আপনি এখান থেকে বিনামূল্যে অনুশীলন এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
VBA INDEX MATCH মাল্টিপল Criteria.xlsm এর উপর ভিত্তি করে<4 এক্সেলের একাধিক মানদণ্ডের উপর ভিত্তি করে VBA INDEX MATCH সহ 3 পদ্ধতি
নিম্নলিখিত বিভাগে, আমরা আপনাকে দেখাব কিভাবে একটি পরিসরের একাধিক মানদণ্ডের উপর ভিত্তি করে INDEX ম্যাচ সম্পাদন করতে হয় , একটি নির্দিষ্ট নির্বাচনের জন্য এবং একটি টেবিলের জন্য এক্সেলের সাথে VBA ।
উপরে আমাদের কাছে ডেটাসেট আছে যা এই নিবন্ধটি অনুসরণ করবে। আমাদের কাছে ডেটাসেটে প্রতিটি ছাত্রের ছাত্রের নাম , স্টুডেন্ট আইডি, এবং পরীক্ষার মার্কস আছে। আমরা অন্য দুটি কলামের শর্তের উপর ভিত্তি করে একটি কলামে থাকা একটি নির্দিষ্ট ফলাফল বের করব।
মাপদণ্ড – 1: এক্সেলের একাধিক (দুই) ডাইমেনশনাল লুকআপের জন্য INDEX ম্যাচের সাথে VBA এম্বেড করুন
নিম্নলিখিত চিত্রটি বিবেচনা করুন। আমরা একটি নির্দিষ্ট ছাত্রের নাম “ Edge” সেলে সংরক্ষণ করেছিG4 ; এবং যে কলামটিতে আমরা ফলাফল , পরীক্ষার মার্কস অনুসন্ধান করব, সেটি সেল G5 এ সংরক্ষিত আছে। আমরা পরীক্ষার মার্কস কলামে অনুসন্ধান করব এবং মার্কস সংরক্ষণ করব যা “ এজ” সেল G6 এ পেয়েছে।
<0লুকআপ করার পদক্ষেপগুলি VBA এর সাথে এক্সেলের INDEX এবং MATCH সহ একটি দ্বি-মাত্রিক অ্যারে দেখায় নিচে দেওয়া আছে।
পদক্ষেপ:
- শুরুতে, আপনার কীবোর্ডে Alt + F11 চাপুন বা এখানে যান ট্যাব ডেভেলপার -> ভিজ্যুয়াল বেসিক খুলতে ভিজ্যুয়াল বেসিক এডিটর ।
>12>
- তারপর, নিচের কোডটি কপি করুন এবং কোডে পেস্ট করুন উইন্ডো৷
8109
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
- এখন, আপনার উপর F5 চাপুন কীবোর্ড বা মেনু বার থেকে চালান -> সাব/ইউজারফর্ম চালান। এছাড়াও আপনি ম্যাক্রো চালানোর জন্য সাব-মেনু বারে ছোট রান আইকনে ক্লিক করতে পারেন।
কোড কার্যকর করার পরে, ফলাফল দেখতে নিচের জিআইএফটি দেখুন।
এর ফলে, মার্কস যেটি “ Edge” পেয়েছে পরীক্ষা, 67 , সেল G7 এ পুনরুদ্ধার করা হয়েছে।
VBA কোড ব্যাখ্যা
2618
ওয়ার্কশীটের ভেরিয়েবল সংজ্ঞায়িত করা।
5022
ওয়ার্কশীটের নাম সংরক্ষণ করুন। আমাদের শীটের নাম হল “টু ডাইমেনশন”, আপনাকে দিতে হবেআপনার স্প্রেডশীট অনুযায়ী নাম।
4265
কোডের এই অংশটি লুকআপ পরিসর হিসেবে C5:D14 পরিসর নির্বাচন করে। তারপরে G4 পরিসরে B5:B14 কক্ষে সংরক্ষিত মিলটি অনুসন্ধান করুন এবং G5 পরিসরে কক্ষে সংরক্ষিত মিলটি অনুসন্ধান করুন। C4:D4 এবং সেল G6 ফলাফলটি পাস করুন।
আরও পড়ুন: তারিখ সীমার জন্য একাধিক মানদণ্ডের সাথে INDEX ম্যাচ কীভাবে ব্যবহার করবেন
মাপদণ্ড – 2: ব্যবহারকারী-সংজ্ঞায়িত ফাংশন (UDF) সহ INDEX দ্বারা মিল মান খুঁজে পেতে ম্যাক্রো প্রয়োগ করুন
আপনি একটি ডেটাসেট থেকে মিলিত মানগুলি বের করতে পারেন ব্যবহারকারী-সংজ্ঞায়িত ফাংশন (UDF) । নিম্নলিখিত চিত্র থেকে, আমরা যা করতে যাচ্ছি তা হল, আমরা একটি নির্দিষ্ট ছাত্রের ছাত্র আইডি এবং পরীক্ষার মার্কস পাস করব এবং ফাংশনটি আমাদের নাম<নিক্ষেপ করবে। সেই নির্দিষ্ট স্টুডেন্টের 2>।
দেখা যাক কিভাবে VBA সহ ছাত্রের নাম “ফিন” এর জন্য এটি অর্জন করা যায়।
পদক্ষেপ:
- আগে দেখানো হয়েছে, ডেভেলপার ট্যাব এবং থেকে ভিজ্যুয়াল বেসিক এডিটর খুলুন কোড উইন্ডোতে একটি মডিউল ঢোকান।
- তারপর, কোড উইন্ডোতে, নিচের কোডটি কপি করুন এবং পেস্ট করুন ।
1413
- এই কোডটি চালাবেন না, সেভ করুন এটি।
- এখন, আগ্রহের ওয়ার্কশীটে ফিরে যান । আপনি ফলাফল সঞ্চয় করতে চান এমন কোনও সেল বেছে নিন । আমাদের ক্ষেত্রে, এটি হল সেল F5 ।
- সেই ঘরে, লিখুন UDF আপনিএইমাত্র কোড তৈরি করেছেন ( MatchByIndex ) এবং ফাংশনের বন্ধনীর ভিতরে নির্দিষ্ট ছাত্রের স্টুডেন্ট আইডি এবং পরীক্ষার মার্কস পাস করুন।
যেমন আমরা তার আইডি (105) এবং মার্কস (84) থেকে “ ফিন” নামটি বের করার চেষ্টা করছি, তাই আমাদের ক্ষেত্রে সূত্রটি হয়ে যায়,
=MatchByIndex(105,84)
- তারপর, এন্টার টিপুন।
নিম্নলিখিত চিত্রটি দেখুন৷
সেলে F5 , আমরা সফলভাবে " ফিন"<2 নামটি পুনরুদ্ধার করেছি আমরা VBA কোডে যে ফাংশনটি তৈরি করেছি তার ভিতরে তার ID এবং মার্কস পাস করে।
VBA কোড ব্যাখ্যা
6531
একটি নতুন ফাংশন তৈরি করা এবং এর ভিতরে ভেরিয়েবল পাস করা। আপনি ফাংশনের যেকোনো নাম সংজ্ঞায়িত করতে পারেন।
6574
আমাদের সারিটি সারি নম্বর 4 থেকে শুরু হয়। আপনাকে অবশ্যই সেই সারি নম্বর দিতে হবে যেখান থেকে আপনার ডেটাসেট শুরু হয়।
4686
ভেরিয়েবলের সংজ্ঞা।
7601
প্রথমে, ওয়ার্কশীটটির সাথে কাজ করার জন্য সংজ্ঞায়িত করুন। আমাদের পত্রকের নাম হল “UDF”, আপনার স্প্রেডশীট অনুযায়ী নাম দিতে হবে। তারপর প্রথম সারি থেকে C:D রেঞ্জে অনুসন্ধান করা শুরু করুন যা আমরা শেষ সারি পর্যন্ত সংজ্ঞায়িত করেছি।
1218
প্রথম সারি থেকে শেষ সারিতে পুনরাবৃত্তি করা শুরু করুন। আমরা ফাংশনের ভিতরে যে প্রথম মানটি পাস করব তা যদি C কলামের মধ্যে পড়ে এবং ফাংশনের ভিতরে যে দ্বিতীয় মানটি আমরা পাস করব সেটি যদি D কলামের মধ্যে পড়ে তবে এটি ফিরে আসবে দ্য B কলাম থেকে মিল। অন্যথায়, ফাংশন থেকে প্রস্থান করুন, সমস্ত বিবৃতি শেষ করুন এবং পরবর্তী লাইনে যান।
8620
যদি কার্যকর করার সময় পূর্ববর্তী শর্ত পূরণ না হয়, তাহলে "ডেটা পাওয়া যায়নি" বার্তাটি ফিরে আসবে এবং কোড ফাংশন ছেড়ে যাবে।
আরও পড়ুন: এক্সেলের আংশিক পাঠ্যের জন্য একাধিক মানদণ্ড সহ INDEX-MATCH (2 উপায়)
মাপদণ্ড – 3: এক্সেলের একাধিক ডেটা সহ একটি টেবিল থেকে ম্যাচ মান ফেরাতে VBA প্রয়োগ করুন
এই বিভাগে, আমরা শিখব কিভাবে একটি টেবিল থেকে সূচী দ্বারা একটি মিলিত মান ফেরত দিতে হয় MsgBox এ VBA Excel এ।
আসুন দেখি কিভাবে আমাদের দেখানো টেবিল থেকে মার্কস বের করতে হয় কোডের ভিতরে নাম এবং আইডি প্রদান করে একটি নির্দিষ্ট শিক্ষার্থীর ডেটাসেট ( T সক্ষম নাম: টেবিলম্যাচ )। আমাদের ক্ষেত্রে, নাম এবং আইডি যথাক্রমে ফিন এবং 105 হবে৷
পদক্ষেপগুলি :
- প্রথমে, ডেভেলপার ট্যাব থেকে ভিজ্যুয়াল বেসিক এডিটর খুলুন এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, নিচের কোডটি কপি করুন এবং পেস্ট করুন কোড উইন্ডোতে।
6100
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
- পরে, এই কোডটি চালান এবং ফলস্বরূপ কী ঘটেছে তা দেখতে নিম্নলিখিত চিত্রটি দেখুন৷
আপনি উপরের ছবিটি থেকে দেখতে পাচ্ছেন, একটি মাইক্রোসফ্ট এক্সেল পপ-আপ মেসেজ বক্সে আপনাকে আইডি: 105 এবং নাম: ফিন এর মার্কস: 84 দেখানো হচ্ছে যা আমরা কোডের ভিতরে দিয়েছি।
<7VBA কোড ব্যাখ্যা
7792
ভেরিয়েবলের সংজ্ঞা।
6696
ভেরিয়েবলের ভিতরে শীটের নাম এবং টেবিলের নাম সেট করা।
8543
স্টোরিং অনুসন্ধানের জন্য লুকআপ মান এবং লুকআপ কলাম।
9410
কোডের এই অংশটি সাবস্ক্রিপ্টের শুরু থেকে শেষ পর্যন্ত স্ক্যান করে এবং যদি এটি অনুসন্ধান কলামে সংজ্ঞায়িত আইডি এবং নামের মিল খুঁজে পায় তাহলে ফলাফল সংরক্ষণ করুন এবং সমস্ত বিবৃতি বন্ধ করুন। এছাড়াও, পুনরাবৃত্তি থেকে প্রস্থান করুন এবং কোডের পরবর্তী অংশে যান।
9734
ফলাফলটি MsgBox-এ ফেলে দেয়।
আরও পড়ুন: লুকআপ এবং রিটার্ন এক্সেলের এক কক্ষে একাধিক মান একত্রিত হয়েছে
উপসংহার
উপসংহারে, এই নিবন্ধটি আপনাকে INDEX ম্যাচ ভিত্তিক কিভাবে সম্পাদন করতে হয় তার 3টি ভিন্ন পদ্ধতি দেখিয়েছে একাধিক মানদণ্ডে এক্সেলের সাথে VBA ম্যাক্রো । আমি আশা করি এই নিবন্ধটি আপনার জন্য খুব উপকারী হয়েছে. বিষয় সম্পর্কিত যেকোনো প্রশ্ন নির্দ্বিধায় করুন।