বাল্ক ডেটা থেকে নির্দিষ্ট তথ্য পৃথক করার সময় আমরা সাধারণত মাইক্রোসফট এক্সেলের ফিল্টার ফিচারটি ব্যবহার করি। অ্যাডভান্সড ফিল্টার কিছু অতিরিক্ত সুবিধা যোগ করে। এক্সেল VBA-তে এই অ্যাডভান্সড ফিল্টার অপশনটি রয়েছে। এখানে আমরা এক্সেল VBA-র সাথে অ্যাডভান্সড ফিল্টার ক্রাইটেরিয়ার সংক্রান্ত কিছু উদাহরণ দেখাব।
ক্রাইটেরিয়ারসহ এক্সেল VBA অ্যাডভান্সড ফিল্টারের ৬টি উদাহরণ
এই সেকশনে এক্সেল VBA অ্যাডভান্সড ফিল্টার ক্রাইটেরিয়ার সম্পর্কে ৬টি উদাহরণ দেখানো হবে। এই উদ্দেশ্যে আমরা নিচের ডেটাসেটটি ব্যবহার করব।

উদাহরণ ১: বর্তমান অবস্থানে ডেটা ফিল্টার করতে এক্সেল VBA
ক্রাইটেরিয়ার অনুযায়ী ডেটা ফিল্টার করে ফিল্টার করা ডেটাটি বর্তমান লোকেশনে রাখতে VBA ম্যাক্রো প্রয়োগ করব।

B16:E17 রেঞ্জে আমরা ক্রাইটেরিয়ার সেট করেছি।
ধাপ ১:
- প্রথমে Developer ট্যাবে যান।
- রিবন থেকে Record Macro-তে ক্লিক করুন।
- একটি নতুন ডায়ালগ বক্স আসবে। সেখানে ম্যাক্রোর জন্য একটি নাম দিয়ে OK চাপুন।

ধাপ ২:
- এখন রিবনে Macros-এ ক্লিক করুন।
- Macro বেছে নিয়ে Step Into করুন।

ধাপ ৩:
- নিচের VBA কোডটি কপি করে কমান্ড মডিউলে পেস্ট করুন।
Sub Filter_Criteria()
Dim data As Range
Dim criteria As Range
Set data = Range("B4:E14")
Set criteria = Range("B16:E17")
data.AdvancedFilter xlFilterInPlace, criteria
End Sub

ধাপ ৪:
- এখন F5 বাটন চাপিয়ে কোডটি রান করুন।

আমরা শুধু শিকাগো স্টোরের বিক্রয় দেখানোর জন্য ক্রাইটেরিয়ার সেট করেছিলাম এবং ফলাফলটি এখানে দেওয়া হলো।
এখানে আমাদের ডেটা এবং ক্রাইটেরিয়ার একই শীটে রয়েছে।
আরও পড়ুন: এক্সেলে অন্য লোকেশনে কপি করতে অ্যাডভান্সড ফিল্টার কীভাবে প্রয়োগ করবেন
উদাহরণ ২: ডেটা এবং ক্রাইটেরিয়ার আলাদা শীটে থাকলে এক্সেল VBA অ্যাডভান্সড ফিল্টার
এই উদাহরণে আমরা দেখাব কীভাবে পরিস্থিতি মোকাবিলা করতে হয় যখন আমাদের ক্রাইটেরিয়ার এবং ডেটা আলাদা শীটে থাকে।

আমাদের ডেটা Criteria_Different_Sheet নামে শীটে আছে এবং ক্রাইটেরিয়ার Criteria শীটে দেওয়া আছে।
ধাপ ১:
- Alt+F11 চাপিয়ে কমান্ড মডিউলে প্রবেশ করুন।
- নিচের কোডটি কমান্ড মডিউলে পেস্ট করুন।
Sub Filter_Criteria_2()
Dim data As Range
Dim criteria As Range
Set data = Sheets("Criteria_Different_Sheet").Range("B4:E14")
Set criteria = Sheets("Criteria").Range("B4:E5")
data.AdvancedFilter xlFilterInPlace, criteria
End Sub

ধাপ ২:
- F5 চাপিয়ে কোডটি রান করুন।

এই পদ্ধতিতে ক্রাইটেরিয়ার অন্য শীটে থাকলেও ডেটা ফিল্টার করা সম্ভব।
আরও পড়ুন: এক্সেলে এক কলামে একাধিক ক্রাইটেরিয়ার বেসড অ্যাডভান্সড ফিল্টার প্রয়োগ
উদাহরণ ৩: একই শীটের আলাদা লোকেশনে ডেটা ফিল্টার ও পেস্ট করতে এক্সেল VBA
যদি আপনি ফিল্টার করা ডেটা অন্য লোকেশনে পেস্ট করতে চান, তবে নিচের ধাপগুলো অনুসরণ করুন।
ধাপ ১:
- Alt+F11 চাপিয়ে কমান্ড মডিউলে যান।
- নিচের কোডটি কমান্ড মডিউলে লিখুন।
Sub Filter_Criteria_3()
Dim data As Range
Dim criteria As Range
Set data = Range("B4:E14")
Set criteria = Range("B16:E17")
data.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=criteria, CopyToRange:=Range("G4:J14")
End Sub

ধাপ ২:
- F5 বাটন চাপুন এবং কোডটি রান হবে।

ফিল্টার করা ডেটা অন্য লোকেশনে পেস্ট হয়েছে। CopyToRange কমান্ড ডেটা পেস্ট করার জন্য ভিন্ন লোকেশন নির্দিষ্ট করে।
সম্পর্কিত কন্টেন্ট: এক্সেলে অন্য শীটে ডেটা কপি করতে অ্যাডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন
সদৃশ পড়াশোনা:
- এক্সেল VBA: একটি রেঞ্জে একাধিক ক্রাইটেরিয়ারসহ অ্যাডভান্সড ফিল্টার (৫ পদ্ধতি)
- এক্সেলে ব্ল্যাংক সেল বাদ দিয়ে অ্যাডভান্সড ফিল্টার ব্যবহার (৩ সহজ টিপস)
- এক্সেল অ্যাডভান্সড ফিল্টার [একাধিক কলাম ও ক্রাইটেরিয়ার, ফর্মুলা ও ওয়াইল্ডকার্ডসহ]
উদাহরণ ৪: শুধুমাত্র ইউনিক ডেটা ফিল্টার করতে এক্সেল VBA
এই এক্সেল VBA অ্যাডভান্সড ফিল্টারের মাধ্যমে আমরা ইউনিক ডেটা পেতে পারি। এই প্রক্রিয়ায় শুধু প্রথম অকিউরেন্স ডেটাসেটে থাকবে এবং দ্বিতীয় বা পরবর্তী অকিউরেন্সগুলো রিমুভ হয়ে যাবে।
ধাপ ১:
- Alt+F11 চাপিয়ে কমান্ড মডিউলে প্রবেশ করুন।
- নিচের কোডটি কমান্ড মডিউলে পেস্ট করুন।
Sub Filter_Criteria_4()
Dim data As Range
Dim criteria As Range
Set data = Range("B4:E14")
Set criteria = Range("B16:E17")
data.AdvancedFilter xlFilterInPlace, criteria, , True
End Sub

ধাপ ২:
- এখন F5 চাপিয়ে কোডটি রান করুন।

আমরা প্রথম অকিউরেন্সকে সবুজ রঙে এবং দ্বিতীয় অকিউরেন্সকে হলদে রঙে চিহ্নিত করেছি। কোড রান করার পর হলদে রঙের সেলটি রিমুভ হয়ে গেছে।
আরও পড়ুন: শুধু ইউনিক রেকর্ডের জন্য এক্সেলে অ্যাডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন
উদাহরণ ৫: ক্রাইটেরিয়ার ছাড়াই ডুপ্লিকেট ফিল্টার ও রিমুভ করতে এক্সেল VBA
কোনো ক্রাইটেরিয়ার সেট আপ না করেই আমরা ডুপ্লিকেট রিমুভ করতে পারি। নিচের ধাপগুলো দেখুন।
ধাপ ১:
- Alt+F11 চাপিয়ে VBA কমান্ড মডিউলে যান।
- নিচের কোডটি কপি করে কমান্ড মডিউলে পেস্ট করুন।
Sub Filter_Criteria_5()
Dim data As Range
Dim criteria As Range
Set data = Range("B4:E14")
data.AdvancedFilter xlFilterInPlace, , , True
End Sub

ধাপ ২:
- F5 কী চাপুন এবং কোডটি রান হবে।

ডেটাসেটে ডুপ্লিকেটগুলো চিহ্নিত করা হয়েছে। কোড প্রয়োগ করার পর প্রথম অকিউরেন্স ডেটাসেটে থাকবে এবং বাকিগুলো রিমুভ হয়ে যাবে।
আরও পড়ুন: এক্সেল অ্যাডভান্সড ফিল্টার কাজ করছে না (২ কারণ ও সমাধান)
উদাহরণ ৬: ডেটা ফিল্টার করতে ক্রাইটেরিয়ারে অপারেটর সাইন যোগ করা
ক্রাইটেরিয়ারে অপারেটর ব্যবহার করে আমরা আমাদের ডেটা ফিল্টার করতে পারি। তার জন্য নিচের ধাপগুলো অনুসরণ করুন।
ধাপ ১:
- Alt+F11 চাপিয়ে কমান্ড মডিউলে প্রবেশ করুন।
- নিচের কোডটি মডিউলে পেস্ট করুন।
Sub Filter_Criteria_7()
Dim data As Range
Dim criteria As Range
Set data = Range("B4:E14")
Set criteria = Range("B16:E17")
data.AdvancedFilter xlFilterCopy, criteria, Range("G4:J14")
End Sub

ধাপ ২:
- F5 চাপিয়ে কোডটি রান করুন।

ফলাফলে আমরা $১.০০-র চেয়ে বড় মানগুলো পাচ্ছি।
আরও পড়ুন: VBA-তে অ্যাডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন (স্টেপ-বাই-স্টেপ গাইডলাইন)
মনে রাখবেন
- প্রতিটি ডেটা কলামের অবশ্যই একটি уникаল হেডিং থাকতে হবে।
- ডেটাসেটে কোনো ব্ল্যাংক সারি থাকতে পারবে না।
উপসংহার
এই আর্টিকেলে আমরা ৬টি এক্সেল VBA অ্যাডভান্সড ফিল্টার ক্রাইটেরিয়ার উদাহরণ দেখিয়েছি। আশা করি এটি আপনার প্রয়োজন পূরণ করবে। দয়া করে আমাদের ওয়েবসাইট Exceldemy.com দেখুন এবং কমেন্ট বক্সে আপনার सुझাব দিন।
সম্পর্কিত আর্টিকেলসমূহ
- এক্সেলে একাধিক ক্রাইটেরিয়ারসহ অ্যাডভান্সড ফিল্টার (১৫ উপযুক্ত উদাহরণ)
- ডাইনামিক অ্যাডভান্সড ফিল্টার এক্সেল (VBA ও ম্যাক্রো)
- ক্রাইটেরিয়ার রেঞ্জসহ এক্সেলে অ্যাডভান্সড ফিল্টার (১৮ অ্যাপ্লিকেশন)
- ক্রাইটেরিয়ার রেঞ্জ টেক্সট কন্টেইন করলে এক্সেলে অ্যাডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন
- এক্সেল অ্যাডভান্সড ফিল্টার: "Does Not Contain" প্রয়োগ (২ পদ্ধতি)