এই আর্টিকেলে আমরা দেখাব কিভাবে VBA ব্যবহার করে এক্সেলে ডেটাসেট থেকে একাধিক ক্রাইটেরিয়া ফিল্টার করা যায়। আপনি AND টাইপ এবং OR টাইপ একাধিক ক্রাইটেরিয়া ফিল্টার করা শিখবেন।
VBA দিয়ে এক্সেলে একাধিক ক্রাইটেরিয়া ফিল্টার করার ২টি সহজ পদ্ধতি
এখানে আমাদের একটি ডেটাসেট আছে যার মধ্যে একটি বুক শপ Martin Bookstore-এর বইয়ের নাম, বইয়ের টাইপ এবং দাম রয়েছে।

আজ আমাদের উদ্দেশ্য এই ডেটাসেট থেকে Visual Basic for Applications (VBA) ব্যবহার করে একাধিক ক্রাইটেরিয়া ফিল্টার করা।
১. VBA দিয়ে AND টাইপ একাধিক ক্রাইটেরিয়া ফিল্টার করুন
প্রথমে আমরা যেকোনো ডেটাসেটের জন্য AND টাইপ একাধিক ক্রাইটেরিয়া ফিল্টার করার একটি Macro তৈরি করব।
উদাহরণস্বরূপ, যেসব বই নভেল এবং দাম $25.00-এর চেয়ে বেশি বা সমান সেগুলো ফিল্টার করতে চাই।
⧭ VBA কোড:
Sub Filter_Multiple_Criteria_AND_Type() Count = 1 For i = 1 To Selection.Rows.Count If Selection.Cells(i, 2) = "Novel" And Selection.Cells(i, 3) >= 25 Then For j = 1 To Selection.Columns.Count Range("F4").Cells(Count, j) = Selection.Cells(i, j) Next j Count = Count + 1 End If Next i End Sub

⧭ আউটপুট:
ওয়ার্কশিট থেকে ডেটাসেট সিলেক্ট করে এই Macro রান করুন (Filter_Multiple_Criteria_AND_Type)।

এটি নভেল এবং $25.00-এর চেয়ে বেশি বা সমান দামের বইগুলো F4 সেল থেকে শুরু করে একটি নতুন রেঞ্জে ফিল্টার করবে।

⧭ নোটস:
- কোডের ৪র্থ লাইনে আমরা ব্যবহার করলাম Cells(i, 2) = "Novel" এবং Selection.Cells(i, 3) >=25।

- এখানে আমরা চাইছিলাম ২য় কলাম (Book Type)-এর ভ্যালু "Novel" হবে এবং ৩য় কলাম (Price)-এর ভ্যালু $25.00-এর চেয়ে বেশি বা সমান হবে।
- আপনার প্রয়োজন অনুযায়ী এগুলো পরিবর্তন করুন।
- উদাহরণস্বরূপ, যদি আপনি চান দাম $20.00-এর চেয়ে বেশি বা সমান কিন্তু $30.00-এর চেয়ে কম বা সমান, তবে ব্যবহার করুন Selection.Cells(i, 3) >=20 এবং Selection.Cells(i, 3) <=30।
- এছাড়া লাইন ৬-এ আমরা Range("F4") ব্যবহার করলাম কারণ ফিল্টার্ড ডেটা F4 সেল থেকে শুরু করতে চাইছিলাম।

- আপনার প্রয়োজন অনুযায়ী এটিও পরিবর্তন করুন।
আরও পড়ুন: এক্সেলে একাধিক ক্রাইটেরিয়া ফিল্টার করা
সদৃশ পড়ুন
- এক্সেলে কাস্টম ফিল্টার করা (৫টি পদ্ধতি)
- এক্সেলে ফিল্টার যোগ করা (৪টি পদ্ধতি)
- এক্সেল ফিল্টারের শর্টকাট (৩টি কুইক ব্যবহার উদাহরণসহ)
- এক্সেলে টেক্সট ফিল্টার ব্যবহার (৫টি উদাহরণ)
২. VBA দিয়ে OR টাইপ একাধিক ক্রাইটেরিয়া ফিল্টার করুন
এখন যেকোনো ডেটাসেটের জন্য OR টাইপ একাধিক ক্রাইটেরিয়া ফিল্টার করার একটি Macro তৈরি করব।
উদাহরণস্বরূপ, এইবার যেসব বই নভেল অথবা দাম $25.00-এর চেয়ে বেশি সেগুলো ফিল্টার করব।
⧭ VBA কোড:
Sub Filter_Multiple_Criteria_Or_Type() Count = 1 For i = 1 To Selection.Rows.Count If Selection.Cells(i, 2) = "Novel" Or Selection.Cells(i, 3) >= 25 Then For j = 1 To Selection.Columns.Count Range("F4").Cells(Count, j) = Selection.Cells(i, j) Next j Count = Count + 1 End If Next i End Sub

⧭ আউটপুট:
ওয়ার্কশিট থেকে ডেটাসেট সিলেক্ট করে এই Macro রান করুন (Filter_Multiple_Criteria_OR_Type)।

এটি নভেল অথবা $25.00-এর চেয়ে বেশি দামের বইগুলো F4 সেল থেকে শুরু করে একটি নতুন রেঞ্জে ফিল্টার করবে।

⧭ নোটস:
- কোডের ৪র্থ লাইনে আমরা ব্যবহার করলাম Selection.Cells(i, 2) = "Novel" Or Selection.Cells(i, 3) >=25।

- এখানে আমরা চাইছিলাম ২য় কলাম (Book Type)-এর ভ্যালু "Novel" হবে অথবা ৩য় কলাম (Price)-এর ভ্যালু $25.00-এর চেয়ে বেশি বা সমান হবে।
- আপনার প্রয়োজন অনুযায়ী এগুলো পরিবর্তন করুন।
- এছাড়া লাইন ৬-এ আমরা Range("F4") ব্যবহার করলাম কারণ ফিল্টার্ড ডেটা F4 সেল থেকে শুরু করতে চাইছিলাম।

আরও পড়ুন: এক্সেলে একাধিক ফিল্টার প্রয়োগ [পদ্ধতি + VBA]
মনে রাখার বিষয়সমূহ
এখানে আমরা একাধিক ক্রাইটেরিয়ার জন্য দুটি ক্রাইটেরিয়া ব্যবহার করলাম। আপনি যত চাইতেই ক্রাইটেরিয়া ব্যবহার করতে পারেন। শুধু সব ক্রাইটেরিয়া And বা Or দিয়ে জয়েন করুন শর্ত অনুযায়ী।
উপসংহার
এই পদ্ধতিগুলো ব্যবহার করে আপনি এক্সেলে VBA দিয়ে AND এবং OR উভয় টাইপের একাধিক ক্রাইটেরিয়া ফিল্টার করতে পারেন। কোনো প্রশ্ন থাকলে জিজ্ঞেস করুন। এবং আরও পোস্ট এবং আপডেটের জন্য আমাদের সাইট ExcelDemy ভিজিট করতে ভুলবেন না।
আরও পড়ুন
- এক্সেলে একাধিক কলাম স্বতন্ত্রভাবে ফিল্টার করা
- এক্সেল ফিল্টারে একাধিক আইটেম সার্চ (২টি পদ্ধতি)
- এক্সেলে ফিল্টার রিমUভ করা (৫টি সহজ ও কুইক পদ্ধতি)
- এক্সেলে তারিখ অনুযায়ী ফিল্টার (৪টি কুইক পদ্ধতি)