বড় পরিমাণ ডেটার সাথে কাজ করার সময় এবং একসাথে একাধিক ফিল্টার সেট করার প্রয়োজন হলে, এডভান্সড ফিল্টারিং এক্সেল-এ খুব কাজে আসে। এটি ডেটা পরিষ্কার করতে ডুপ্লিকেট সরাতে ও ব্যবহার করা যায়। এডভান্সড ফিল্টার প্রয়োগ করার সময়, VBA কোড খুব সহজে এক্সিকিউট করা যায়। এই টিউটোরিয়ালে আমরা দেখাব কিভাবে VBA এডভান্সড ফিল্টার একাধিক ক্রাইটেরিয়া রেঞ্জের জন্য এক্সেল-এ প্রয়োগ করতে হয়।
এক্সেলে রেঞ্জে একাধিক ক্রাইটেরিয়ারসহ VBA এডভান্সড ফিল্টারের ৫টি কার্যকর পদ্ধতি
নিচের বিভাগগুলোতে আমরা VBA এডভান্সড ফিল্টার একাধিক ক্রাইটেরিয়ার জন্য ব্যবহার করার ৫টি পদ্ধতি আলোচনা করব। প্রথমে আপনাকে VBA এডভান্সড ফিল্টার-এর সিনট্যাক্স জানতে হতে পারে।
VBA এডভান্সড ফিল্টার সিনট্যাক্স:

- AdvancedFilter: একটি রেঞ্জ অবজেক্ট রেফার করে। আপনি যেখানে ফিল্টার প্রয়োগ করতে চান সেটি সেট করুন।
- Action: একটি বাধ্যতামূলক আর্গুমেন্ট যাতে দুটি অপশন থাকে, xlFilterInPlace বা xlFilterCopy। xlFilterInPlace ডেটাসেট যেখানে আছে সেখানে ফিল্টার করতে ব্যবহৃত হয়। xlFilterCopy ফিল্টার করা মান অন্য একটি কাঙ্ক্ষিত লোকেশনে পাওয়ার জন্য ব্যবহৃত হয়।
- CriteriaRange: সেই ক্রাইটেরিয়া নির্দেশ করে যার ভিত্তিতে মান ফিল্টার হবে।
- CopyToRange: যে লোকেশন যেখানে আপনি ফিল্টার ফলাফল সংরক্ষণ করবেন।
- Unique: একটি ঐচ্ছিক আর্গুমেন্ট। শুধু ইউনিক মান ফিল্টার করতে True আর্গুমেন্ট ব্যবহার করুন। ডিফল্টভাবে এটি False মाना হয়।
নিচের ছবিতে একটি নমুনা ডেটা সেট দেওয়া আছে जिसमे আমরা সব ফিল্টার প্রয়োগ করব।

১. এক্সেলে রেঞ্জে OR ক্রাইটেরিয়ার জন্য VBA এডভান্সড ফিল্টার প্রয়োগ
প্রথম পদ্ধতিতে আমরা VBA এডভান্সড ফিল্টার ব্যবহার করে OR ক্রাইটেরিয়া প্রয়োগ করব। ধরে নিন, আমরা Cookies এবং Chocolate পণ্যের নামের জন্য ডেটা ফিল্টার করতে চাই। OR ক্রাইটেরিয়া প্রয়োগ করতে হলে মানগুলো ভিন্ন সারিতে রাখতে হয়। নিচের আউटलাইন করা ধাপগুলো অনুসরণ করুন।

ধাপ ১:
- Alt + F11 চাপে VBA Macro খুলুন।
- Insert-এ ক্লিক করুন।
- Module বেছে নিন।

ধাপ ২:
- তারপর OR ক্রাইটেরিয়া প্রয়োগের জন্য নিচের VBA কোডটি পেস্ট করুন।
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of datase range and criteria range Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub

ধাপ ৩:
- তারপর প্রোগ্রামটি সেভ করে F5 চাপে রান করুন।
- তাহলে নিচের ছবির মতো ফিল্টার করা ফলাফল পাওয়া যাবে।

নোট। প্রক্রিয়া উল্টানো বা সব ফিল্টার সরাতে VBA প্রোগ্রাম পেস্ট করে রান করুন।
Sub Remove_All_Filter() On Error Resume Next 'command to remove all the filter to show the previous dataset ActiveSheet.ShowAllData End Sub

- ফলস্বরূপ আপনি আপনার ডেটা সেটের পূর্বের সংস্করণ পাবেন।

আরও পড়ুন: ক্রাইটেরিয়ারসহ এক্সেল VBA এডভান্সড ফিল্টার উদাহরণ (৬টি ক্রাইটেরিয়া)
২. এক্সেলে রেঞ্জে AND ক্রাইটেরিয়ার জন্য VBA এডভান্সড ফিল্টার প্রয়োগ
পূর্বের পদ্ধতির অনুরূপ, এখন আমরা VBA এডভান্সড ফিল্টার AND ক্রাইটেরিয়ার জন্য প্রয়োগ করব। ধরে নিন আমরা $0.65 দামवाले কুকিজ জানতে চাই, যেমন স্ক্রিনশটে দেখানো। OR ক্রাইটেরিয়ার প্রয়োগের জন্য মানগুলো ভিন্ন সারিতে রাখতে হয়। AND ক্রাইটেরিয়ার প্রয়োগ করতে নিচের নির্দেশনা অনুসরণ করুন।

ধাপ ১:
- VBA Macro খোলার জন্য Alt + F11 চাপুন।
- VBA Macro খোলার পর একটি নতুন মডিউলে নিচের VBA কোডগুলো পেস্ট করুন।
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub

ধাপ ২:
- প্রোগ্রাম সেভ করার পর F5 চাপে রান করুন।
- শেষে ফিল্টার করা ফলাফল পান।

আরও পড়ুন: এক্সেলে এডভান্সড ফিল্টার দিয়ে অন্য শিটে ডেটা কপি করতে VBA
৩. এক্সেলে রেঞ্জে OR এবং AND ক্রাইটেরিয়ারসহ VBA এডভান্সড ফিল্টার ব্যবহার
আপনি OR এবং AND ক্রাইটেরিয়া দুটোই একসাথে প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, আপনি Cookies বা Chocolates এর মান চান, কিন্তু Cookies-এর জন্য অন্য একটি ক্রাইটেরিয়া দাম $0.65 প্রয়োগ হবে। নিচের প্রক্রিয়াগুলো অনুসরণ করে এটি করুন।

ধাপ ১:
- VBA Macro খুলার পর নিচের VBA কোডগুলো পেস্ট করুন।
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub

ধাপ ২:
- তারপর প্রোগ্রামটি সেভ করে F5 চাপে রান করুন।
- ফলস্বরূপ, আপনি নির্দিষ্ট AND ও OR ক্রাইটেরিয়ার অনুযায়ী মানগুলো পাবেন।

আরও পড়ুন: এক্সেলে একটি কলামে একাধিক ক্রাইটেরিয়ার ভিত্তিক এডভান্সড ফিল্টার প্রয়োগ
সদৃশ পাঠ্য:
- এক্সেলে একাধিক ক্রাইটেরিয়ারসহ এডভান্সড ফিল্টার (১৫ উপযুক্ত উদাহরণ)
- ডাইনামিক এডভান্সড ফিল্টার এক্সেল (VBA ও ম্যাক্রো)
- VBA-এ এডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন (স্টেপ-বাই-স্টেপ গাইডলাইন)
- ক্রাইটেরিয়া রেঞ্জসহ এক্সেল এডভান্সড ফিল্টার (১৮ অ্যাপ্লিকেশন)
- এক্সেল এডভান্সড ফিল্টার কাজ না করলে (২ কারণ ও সমাধান)
৪. এক্সেলে একাধিক ক্রাইটেরিয়ারসহ ইউনিক ভ্যালুর জন্য VBA এডভান্সড ফিল্টার ব্যবহার
আরো, যদি আপনার ডেটা সেটে ডুপ্লিকেট থাকে, তবে ফিল্টার করার সময় সেগুলো সরিয়ে ফেলা যায়। আমরা Unique আর্গুমেন্টকে True সেট করে শুধু ইউনিক মান পাব এবং ডুপ্লিকেটগুলো মুছে ফেলব। নিচের নির্দেশনা অনুসরণ করুন।

ধাপ ১:
- প্রথমে Alt + F11 চাপে VBA ম্যাক্রো খুলুন।
- এক নতুন মডিউলে নিচের VBA কোডগুলো পেস্ট করুন।
Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub

ধাপ ২:
- তারপর সেভ করার পর F5 চাপে প্রোগ্রাম রান করুন।
- তাহলে আপনি শুধু ইউনিক মানগুলোর জন্য ফলাফল পাবেন।

আরও পড়ুন: এক্সেলে শুধু ইউনিক রেকর্ডের জন্য এডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন
৫. কন্ডিশনাল কেসের জন্য VBA এডভান্সড ফিল্টার প্রয়োগ
পূর্বের পদ্ধতিগুলোর পাশাপাশি, আপনি ফর্মুলা সহ শর্তও প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, আমরা চাই Total prices যেগুলো $100-এর বেশি। এটি সম্পন্ন করতে সহজ ধাপগুলো অনুসরণ করুন।

ধাপ ১:
- প্রথমে VBA Macro খোলার জন্য Alt + F11 চাপুন।
- এক নতুন Module নির্বাচন করুন এবং নিচের VBA codes পেস্ট করুন।
Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub

ধাপ ২:
- দ্বিতীয়ভাবে, প্রোগ্রাম সেভ করে F5 বাটন চাপে ফলাফল দেখুন।
নোট। অতিরিক্তভাবে, আপনি ফলাফল একটি সুবিধাজনক স্পেসে পেতে পারেন, चाहে নতুন রেঞ্জে হোক বা নতুন ওয়ার্কশিটে, xlFilterCopy অ্যাকশন প্রয়োগ করে। সাদা VBA কোডগুলো পেস্ট করে রান করুন Sheet6-এ রেঞ্জ B4:E11-এ ফলাফল পাওয়ার জন্য।
'Declare Variable for dataset range and for criteria range Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Set the location and range of dataset range and criteria range Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Apply Advanced Filter to filter the dataset using the criteria Dataset_Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub

- ফলস্বরূপ, নতুন ওয়ার্কশিট ‘Sheet6’-এ চূড়ান্ত ফলাফল দেখুন।

আরও পড়ুন: এক্সেলে যদি ক্রাইটেরিয়া রেঞ্জে টেক্সট থাকে তবে এডভান্সড ফিল্টার কীভাবে ব্যবহার করবেন
উপসংহার
সংক্ষেপে, আশা করি আপনি এখন বুঝতে পেরেছেন কিভাবে VBA এডভান্সড ফিল্টার এক্সেল-এ ব্যবহার করে একাধিক ক্রাইটেরিয়া রেঞ্জ ফিল্টার করতে হয়। এই সব পদ্ধতি আপনার ডেটার সাথে শিখে এবং অনুশীলন করলে উপযোগী হবে। অনুশীলন বইটি দেখুন এবং আপনি যা শিখেছেন তা প্রয়োগ করুন। আপনার ব.'
যদি আপনার কোনো প্রশ্ন থাকে, তবে সঃকোচ ছাড়া আমাদের সাথে যোগাযোগ করুন। কমেন্ট সেকশনে আপনার মতামত জানাতে ভুলবেন না।
Exceldemy টিম আপনার প্রশ্নগুলোর উত্তর দ্রুতম সম্ভব সময়ে দেবে।
আমাদের সাথে থাকুন এবং শিখতে থাকুন।
সম্পর্কিত নিবন্ধসমূহ
- এক্সেল এডভান্সড ফিল্টার [একাধিক কলাম ও ক্রাইটেরিয়া, ফর্মুলা ও ওয়াইল্ডকার্ডসহ]
- এক্সেলে এডভান্সড ফিল্টার ব্যবহার করে খালি সেল বাদ দেওয়া (৩টি সহজ কৌশল)
- এক্সেল VBA: একটি রেঞ্জে একাধিক ক্রাইটেরিয়ারসহ এডভান্সড ফিল্টার (৫ পদ্ধতি)
- এক্সেলে এডভান্সড ফিল্টার প্রয়োগ করে অন্য লোকেশনে কপি করা