এক্সেলের অটোফিল্টার বৈশিষ্ট্য নির্দিষ্ট শর্তের উপর ভিত্তি করে ডেটা বের করতে সত্যিই দক্ষ। VBA বাস্তবায়ন করা হচ্ছে এক্সেলে যেকোনো অপারেশন চালানোর জন্য সবচেয়ে কার্যকর, দ্রুততম এবং নিরাপদ পদ্ধতি। এই নিবন্ধে, আমরা আপনাকে একই ক্ষেত্রে (কলাম) একাধিক মানদণ্ড সহ অটোফিল্টার করার জন্য 4টি পদ্ধতি দেখাব VBA ম্যাক্রো সহ Excel-এ .
ওয়ার্কবুক ডাউনলোড করুন
আপনি এখান থেকে বিনামূল্যে অনুশীলন এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
এক্সেলের একই ক্ষেত্রের (কলাম) একাধিক মানদণ্ড সহ VBA থেকে স্বয়ংক্রিয় ফিল্টার 4 পদ্ধতি
এই বিভাগটি অনুসরণ করে, আপনি শিখবেন কিভাবে AND অপারেটর এবং OR অপারেটর সহ একাধিক পাঠ্য এবং সাংখ্যিক মান সহ অটোফিল্টার করতে হয় একই কলামে এক্সেল এ VBA এর সাথে 4টি ভিন্ন মাপকাঠিতে৷
৷1. একই কলামে একাধিক সংখ্যাসূচক মানদণ্ড সহ অটোফিল্টারে VBA এম্বেড করুন
নিম্নলিখিত ডেটাসেট বিবেচনা করুন। কলাম B কিছু এলোমেলো সংখ্যা নিয়ে গঠিত , যেখানে কলাম D শুধুমাত্র বিজোড় সংখ্যা ধারণ করে . আমরা এখানে যা করতে যাচ্ছি তা হল, আমরা কলাম ডি-তে থাকা মানদণ্ডের ভিত্তিতে কলাম B ফিল্টার করব; তার মানে, এলোমেলো সংখ্যা (কলাম B ) বিজোড় সংখ্যা দ্বারা ফিল্টার করা হবে কলাম D-এ থাকা সংখ্যাগুলি সহ এবং এর মধ্যে এর মানদণ্ডের সাথে .
চলুন দেখি কিভাবে VBA দিয়ে তা করতে হয় এক্সেলে।
পদক্ষেপ:
- শুরুতে, Alt + F11 টিপুন আপনার কীবোর্ডে বা ট্যাবে যান ডেভেলপার -> ভিজ্যুয়াল বেসিক ভিজ্যুয়াল বেসিক এডিটর খুলতে .
- এরপর, পপ-আপ কোড উইন্ডোতে, মেনু বার থেকে, ঢোকান -> মডিউল ক্লিক করুন .
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub AutoFilterWithMultipleCriteriaOnSameColumn()
Dim iArray As Variant
With ThisWorkbook.Worksheets("Column")
iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))
.Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- এখন, F5 টিপুন আপনার কীবোর্ডে বা মেনু বার থেকে চালান -> সাব/ইউজারফর্ম চালান নির্বাচন করুন . এছাড়াও আপনি ছোট রান আইকনে ক্লিক করতে পারেন৷ ম্যাক্রো চালানোর জন্য সাব-মেনু বারে।
সফল কোড এক্সিকিউশনের পরে, ফলাফলটি দেখতে নিম্নলিখিত চিত্রটি দেখুন।
আপনি উপরের ছবিটি থেকে দেখতে পাচ্ছেন, কলাম B এখন ফিল্টার করা হয়েছে৷ শুধুমাত্র বিজোড় সংখ্যা দিয়ে .
আপনি জোড় সংখ্যার উপর ভিত্তি করে ডেটা ফিল্টার করতে একই কোড সম্পাদন করতে পারেন . সেক্ষেত্রে, আপনাকে বিজোড় সংখ্যার পরিবর্তে অন্য কলামে জোড় সংখ্যা সংরক্ষণ করতে হবে।
VBA কোড ব্যাখ্যা
Dim iArray As Variant
ভেরিয়েবল সংজ্ঞায়িত করুন অ্যারে-এর জন্য .
With ThisWorkbook.Worksheets("Column")
ওয়ার্কশীটের নাম ঘোষণা করুন (“কলাম ” হল আমাদের ডেটাসেটের শীটের নাম)। আপনার ডেটাসেট অনুযায়ী আপনাকে শিটের নাম লিখতে হবে।
iArray = Split(Join(Application.Transpose(.Range(.Cells(5, 4), .Cells(.Range("D:D").Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, 4)).Value)))
সংজ্ঞায়িত অ্যারে পূরণ করুন এ সঞ্চিত মানদণ্ডের সাথে কলাম D৷ সেল D5 থেকে শুরু .
.Range("B4").AutoFilter Field:=1, Criteria1:=iArray, Operator:=xlFilterValues
End With
- ফিল্টার কলাম B সেল B4 থেকে শুরু হয় সংরক্ষিত একাধিক মানদণ্ড অনুযায়ী সংজ্ঞায়িত অ্যারে-এ .
- তার পরে, ছেড়ে যায় ওয়ার্কশীট .
আরো পড়ুন: অটোফিল্টার চালু আছে কিনা তা পরীক্ষা করতে এক্সেল VBA (4টি সহজ উপায়)
2. এক্সেলের একই কলামে AND অপারেটরের সাথে অটোফিল্টারে VBA প্রয়োগ করুন
xlAND এক্সেলের অপারেটর দুটি মানদণ্ডের সাথে কাজ করে। এটি সেই মানগুলি প্রদান করে যা উভয় মানদণ্ড পূরণ করে .
এখন, নিম্নলিখিত ডেটাসেট বিবেচনা করুন। কলাম B এলোমেলো সংখ্যা, নিয়ে গঠিত এবং আমরা D4:E5 পরিসরে দুটি শর্ত সন্নিবেশিত করেছি . শর্তগুলি হল কলাম B ফিল্টার করতে হবে যে সংখ্যাগুলি 2 এর চেয়ে বেশি বা সমান (মান সেল E4-এ সংরক্ষিত ) এবং 9 এর চেয়ে কম বা সমান (মান সেল E5-এ সংরক্ষিত ) আমরা কলাম B ফিল্টার করব AND অপারেটর-এর সাথে সেই শর্ত অনুসারে৷ Excel VBA-এ .
এটি পাওয়ার পদক্ষেপগুলি নীচে দেওয়া হল৷
৷পদক্ষেপ:
- আগের মতই, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub AutoFilterOnSameColumnWithAND()
With ThisWorkbook.Worksheets("AND")
.Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- তার পরে, চালান ম্যাক্রো যেমন আমরা আপনাকে উপরের বিভাগে দেখিয়েছি। ফলাফল নিচের ছবিতে দেখানো হয়েছে।
সফল কোড এক্সিকিউশনের পরে, কলাম B 2 থেকে 9 মান দিয়ে ফিল্টার করা হয় , যা উভয় শর্ত পূরণ করে।
VBA কোড ব্যাখ্যা
With ThisWorkbook.Worksheets("AND")
.Range("B4").AutoFilter Field:=1, Criteria1:=">=" & .Range("E4").Value, Operator:=xlAnd, Criteria2:="<=" & .Range("E5").Value
End With
কোডের এই টুকরো,
- প্রথমে ওয়ার্কশীটের নাম ঘোষণা করে যার সাথে আমরা কাজ করব (“এবং ” হল আমাদের ডেটাসেটের শীটের নাম)। আপনার ডেটাসেট অনুযায়ী আপনাকে শিটের নাম লিখতে হবে।
- এর পর, কলাম B ফিল্টার করুন সেল B4 থেকে শুরু হয় সংরক্ষিত একাধিক মানদণ্ড অনুযায়ী সেল E4-এ এবং E5 xlAnd এর সাথে অপারেটর।
- তারপর, ছেড়ে যায় ওয়ার্কশীট .
আরো পড়ুন: [ফিক্স]:রেঞ্জ ক্লাসের অটোফিল্টার পদ্ধতি ব্যর্থ (5টি সমাধান)
3. এক্সেলের একই কলামে OR অপারেটরের সাথে অটোফিল্টারে ম্যাক্রো প্রয়োগ করুন
xlOR এক্সেলের অপারেটর দুটি মানদণ্ডের সাথে কাজ করে। xlAND থেকে ভিন্ন , এটি সেই মানগুলি প্রদান করে যা যেকোনও মানদণ্ড পূরণ করে .
এখন, নিম্নলিখিত ডেটাসেট বিবেচনা করুন। কলাম B এলোমেলো সংখ্যা, নিয়ে গঠিত এবং আমরা D4:E5 পরিসরে দুটি শর্ত সন্নিবেশিত করেছি . শর্তগুলি হল কলাম B 12 এর চেয়ে বড় বা সমান সংখ্যা দিয়ে ফিল্টার করতে হবে (মান সেল E4-এ সংরক্ষিত ) বা 7 এর চেয়ে কম বা সমান (মান সেল E5-এ সংরক্ষিত ) আমরা কলাম B ফিল্টার করব বা অপারেটর এর সাথে সেই শর্ত অনুসারে Excel VBA-এ .
আসুন এটি কীভাবে করবেন তার পদক্ষেপগুলি দেখুন।
পদক্ষেপ:
- আগে দেখানো হয়েছে, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub AutoFilterOnSameColumnWithOR()
With ThisWorkbook.Worksheets("OR")
.Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- পরে, চালান ম্যাক্রো এবং আউটপুট দেখতে নিম্নলিখিত চিত্রটি দেখুন।
সফল কোড এক্সিকিউশনের পরে, কলাম B 12 এর চেয়ে বড় বা সমান বা 7 এর থেকে কম বা সমান মান দিয়ে ফিল্টার করা হয় .
VBA কোড ব্যাখ্যা
With ThisWorkbook.Worksheets("OR")
.Range("B4").AutoFilter Field:=1, Criteria1:="<" & .Range("E5").Value, Operator:=xlOr, Criteria2:=">" & .Range("E4").Value
End With
কোডের এই টুকরো,
- প্রথমে ওয়ার্কশীটের নাম ঘোষণা করে যার সাথে আমরা কাজ করব (“বা ” হল আমাদের ডেটাসেটের শীটের নাম)। আপনার ডেটাসেট অনুযায়ী আপনাকে শিটের নাম লিখতে হবে।
- এর পর, কলাম B ফিল্টার করুন সেল B4 থেকে শুরু হয় সংরক্ষিত একাধিক মানদণ্ড অনুযায়ী সেল E4-এ এবং E5 xlOr এর সাথে অপারেটর।
- তারপর, ছেড়ে যায় ওয়ার্কশীট .
আরো পড়ুন: এক্সেল VBA এর মাধ্যমে কিভাবে স্বতঃফিল্টার এবং দৃশ্যমান সারিগুলি অনুলিপি করবেন
4. একই ফিল্ডে একাধিক পাঠ্য মানের উপর ভিত্তি করে অটোফিল্টারে VBA এম্বেড করুন
নিম্নলিখিত ডেটাসেট দেখুন। কলাম B দেশের নাম নিয়ে গঠিত . আমরা ম্যাক্রোতে যে দেশের হার্ডকোড করব তার উপর ভিত্তি করে আমরা এই কলামটি ফিল্টার করব। আমরা কলামটি স্বয়ংক্রিয়ভাবে ফিল্টার করব দুটি দেশের নামের উপর ভিত্তি করে, অস্ট্রেলিয়া এবং ইংল্যান্ড .
কার্যকর করার পদক্ষেপগুলি নীচে দেওয়া হল।
পদক্ষেপ:
- প্রথমে, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub AutoFilterOnSameColumnWithMultipleTexts()
Dim iArray As Variant
iArray = Array("Australia", "England")
Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- পরবর্তী, চালান ম্যাক্রো এখন, ফলাফল দেখতে নিম্নলিখিত চিত্রটি দেখুন৷
ফলস্বরূপ, কলাম B যা অনেক দেশ দিয়ে পূর্ণ ছিল এখন ফিল্টার করা হয়েছে শুধুমাত্র দুটি দেশের নামের সাথে – অস্ট্রেলিয়া এবং ইংল্যান্ড – যা আমরা কোডে দিয়েছি।
VBA কোড ব্যাখ্যা
Dim iArray As Variant
ভেরিয়েবল সংজ্ঞায়িত করুন অ্যারে-এর জন্য .
iArray = Array("Australia", "England")
স্টোর টেক্সট মানদণ্ড যার উপর ভিত্তি করে ফিল্টারিং সংজ্ঞায়িত অ্যারেতে সঞ্চালিত হবে .
Range("B4", Range("B" & Rows.Count).End(xlUp)).AutoFilter 1, iArray, xlFilterValues, , 0
ফিল্টার কলাম৷ B সেল B4 থেকে শুরু হয় একাধিক পাঠ্য মানদণ্ড হার্ডকোডেড অনুযায়ী৷ সংজ্ঞায়িত অ্যারে-এ .
আরো পড়ুন: এক্সেলে VBA এর সাথে একটি নির্দিষ্ট মানের সমান নয় এমন মানগুলি কীভাবে অটোফিল্টার করবেন
উপসংহার
উপসংহারে, এই নিবন্ধটি আপনাকে একই ক্ষেত্রের (কলাম) একাধিক মানদণ্ডের সাথে স্বয়ংক্রিয় ফিল্টার করার জন্য 4টি পদ্ধতি দেখিয়েছে VBA ম্যাক্রো সহ Excel-এ . আমি আশা করি এই নিবন্ধটি আপনার জন্য খুব উপকারী হয়েছে. বিষয় সম্পর্কিত যেকোনো প্রশ্ন নির্দ্বিধায় করুন।
সম্পর্কিত প্রবন্ধ
- VBA অটোফিল্টার:সবচেয়ে ছোট থেকে বড় (3টি পদ্ধতি) সাজান
- এক্সেল ভিবিএ:অটোফিল্টার সরান যদি এটি থাকে (৭টি উদাহরণ)