এক্সেলে রেজেক্স মাস্টারিং: একটি ব্যাপক গাইড
রেগুলার এক্সপ্রেশন, সাধারণত Regex নামে পরিচিত, প্যাটার্ন ম্যাচিং এবং স্ট্রিং ম্যানিপুলেশনের জন্য শক্তিশালী টুল। মাইক্রোসফ্ট এক্সেলে, আপনি ডাটা ম্যানিপুলেশন ক্ষমতা বাড়ানোর জন্য রেজেক্সের সুবিধা নিতে পারেন, জটিল পাঠ্য প্রক্রিয়াকরণের কাজগুলি পরিচালনা করা সহজ করে তোলে।
এই নির্দেশিকাটি এক্সপ্লোর করবে কিভাবে এক্সেল-এ Regex ব্যবহার করতে হয়, ইন-সেলে এবং VBA লুপের মাধ্যমে, প্যাটার্ন বের করতে, মেলাতে এবং প্রতিস্থাপন করতে। আমরা প্রয়োজনীয় সেটআপ, এক্সেলে রেজেক্সের জন্য বিশেষ অক্ষর এবং বাম, মধ্য, ডান এবং ইনস্ট্রের মত বিকল্প অন্তর্নির্মিত ফাংশন নিয়েও আলোচনা করব।
আদেশ | বর্ণনা |
---|---|
CreateObject("VBScript.RegExp") | নিয়মিত এক্সপ্রেশন পরিচালনা করতে একটি RegExp অবজেক্ট তৈরি করে। |
regex.Pattern | টেক্সটে অনুসন্ধান করার জন্য প্যাটার্ন সংজ্ঞায়িত করে। |
regex.Global | রেজেক্সের সমস্ত মিল (সত্য) বা শুধুমাত্র প্রথম (ফলস) খুঁজে পাওয়া উচিত কিনা তা নির্দিষ্ট করে। |
regex.Test(cell.Value) | সেল মান রেজেক্স প্যাটার্নের সাথে মেলে কিনা তা পরীক্ষা করে। |
regex.Execute(cell.Value) | সেল মানের উপর regex প্যাটার্ন কার্যকর করে এবং মিলগুলি প্রদান করে। |
cell.Offset(0, 1).Value | বর্তমান কক্ষের ডানদিকে একটি কলামে প্রবেশ করে। |
For Each cell In Selection | নির্বাচিত পরিসরে প্রতিটি কক্ষের মধ্য দিয়ে লুপ করে। |
এক্সেল-এ Regex-এর জন্য VBA-তে গভীরভাবে ডুব দিন
উপরে প্রদত্ত স্ক্রিপ্টগুলি কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করে Regex মাইক্রোসফ্ট এক্সেল ব্যবহার করে VBA (অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিক)। প্রথম স্ক্রিপ্ট, Sub RegexInCell(), আরম্ভ করে একটি RegExp বস্তু ব্যবহার করে CreateObject("VBScript.RegExp"). এই বস্তুটি একটি প্যাটার্ন দিয়ে কনফিগার করা হয়, এই ক্ষেত্রে, \d{4}, একটি 4-সংখ্যার সংখ্যার সাথে মেলে। দ্য Global সম্পত্তি সেট করা হয় True কক্ষের মানের সমস্ত মিল পাওয়া যায় তা নিশ্চিত করতে। তারপর স্ক্রিপ্টটি ব্যবহার করে নির্বাচিত পরিসরের প্রতিটি ঘরের মধ্য দিয়ে লুপ করে For Each cell In Selection. যদি regex.Test(cell.Value) মেথড সত্য রিটার্ন করে, একটি মিল নির্দেশ করে, মিলিত মানটি ব্যবহার করে সন্নিহিত কক্ষে স্থাপন করা হয় cell.Offset(0, 1).Value. যদি কোনো মিল না পাওয়া যায়, তাহলে পাশের ঘরে "কোনও মিল নেই" বসানো হয়।
দ্বিতীয় স্ক্রিপ্ট, Sub ExtractPatterns(), অনুরূপ কিন্তু একটি নির্দিষ্ট পরিসর লক্ষ্য করে, Range("A1:A10"), একটি পূর্বনির্ধারিত এলাকায় প্যাটার্ন নিষ্কাশন প্রদর্শন. এটি প্যাটার্ন ব্যবহার করে [A-Za-z]+ অক্ষর দিয়ে গঠিত যেকোন শব্দের সাথে মেলে। এই স্ক্রিপ্ট এছাড়াও ব্যবহার করে regex.Test এবং regex.Execute মিল খুঁজে বের করার পদ্ধতি এবং সংলগ্ন কক্ষে প্রথম মিল স্থাপন করে। এই স্ক্রিপ্টগুলি এর শক্তিশালী সংমিশ্রণকে চিত্রিত করে Regex এবং Excel VBA টেক্সট ম্যানিপুলেশনের জন্য, জটিল অনুসন্ধান এবং ডেটা নিষ্কাশন করার জন্য একটি পদ্ধতি প্রদান করে যা একা Excel এর অন্তর্নির্মিত ফাংশনগুলির সাথে কষ্টকর হবে।
এক্সেলে রেজেক্সের জন্য VBA ব্যবহার করা: ইন-সেল ফাংশন এবং লুপিং
VBA ব্যবহার করা (অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিক)
Sub RegexInCell()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\d{4}" ' Example pattern: Match a 4-digit number
regex.Global = True
Dim cell As Range
For Each cell In Selection
If regex.Test(cell.Value) Then
cell.Offset(0, 1).Value = regex.Execute(cell.Value)(0)
Else
cell.Offset(0, 1).Value = "No match"
End If
Next cell
End Sub
এক্সেল VBA-তে Regex ব্যবহার করে প্যাটার্ন বের করা
VBA ব্যবহার করা (অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিক)
Sub ExtractPatterns()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "[A-Za-z]+" ' Example pattern: Match words
regex.Global = True
Dim cell As Range
For Each cell In Range("A1:A10") ' Adjust range as needed
If regex.Test(cell.Value) Then
cell.Offset(0, 1).Value = regex.Execute(cell.Value)(0)
Else
cell.Offset(0, 1).Value = "No match"
End If
Next cell
End Sub
এক্সেলে রেজেক্সের জন্য VBA ব্যবহার করা: ইন-সেল ফাংশন এবং লুপিং
VBA ব্যবহার করা (অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিক)
Sub RegexInCell()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\d{4}" ' Example pattern: Match a 4-digit number
regex.Global = True
Dim cell As Range
For Each cell In Selection
If regex.Test(cell.Value) Then
cell.Offset(0, 1).Value = regex.Execute(cell.Value)(0)
Else
cell.Offset(0, 1).Value = "No match"
End If
Next cell
End Sub
এক্সেল VBA-তে Regex ব্যবহার করে প্যাটার্ন বের করা
VBA ব্যবহার করা (অ্যাপ্লিকেশনের জন্য ভিজ্যুয়াল বেসিক)
Sub ExtractPatterns()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "[A-Za-z]+" ' Example pattern: Match words
regex.Global = True
Dim cell As Range
For Each cell In Range("A1:A10") ' Adjust range as needed
If regex.Test(cell.Value) Then
cell.Offset(0, 1).Value = regex.Execute(cell.Value)(0)
Else
cell.Offset(0, 1).Value = "No match"
End If
Next cell
End Sub
Regex এবং VBA এর সাথে Excel উন্নত করা
যদিও এক্সেল শক্তিশালী বিল্ট-ইন ফাংশন দিয়ে সজ্জিত যেমন LEFT, MID, RIGHT, এবং INSTR, VBA এর সাথে রেগুলার এক্সপ্রেশন (Regex) একীভূত করা Excel এর টেক্সট ম্যানিপুলেশন ক্ষমতাকে উল্লেখযোগ্যভাবে প্রসারিত করতে পারে। Regex জটিল প্যাটার্ন ম্যাচিং এবং পাঠ্য নিষ্কাশনের জন্য অনুমতি দেয় যা একা স্ট্যান্ডার্ড এক্সেল ফাংশনগুলির সাথে অর্জন করা চ্যালেঞ্জিং হবে। উদাহরণস্বরূপ, আপনি বড় ডেটাসেট থেকে ইমেল ঠিকানা, ফোন নম্বর বা নির্দিষ্ট বিন্যাস বের করতে Regex ব্যবহার করতে পারেন। এটি ডেটা পরিষ্কার এবং মানককরণে বিশেষভাবে উপযোগী হতে পারে, যেখানে নির্দিষ্ট নিদর্শনগুলি সনাক্ত করা এবং দক্ষতার সাথে বের করা প্রয়োজন।
এক্সেলে রেজেক্স সেট আপ করার জন্য VBA ব্যবহার করা প্রয়োজন, কারণ এক্সেল নেটিভভাবে সেলগুলিতে রেজেক্স ফাংশন সমর্থন করে না। একটি VBA ম্যাক্রো তৈরি করে, আপনি ডেটা নিষ্কাশন এবং ম্যানিপুলেশন প্রক্রিয়া স্বয়ংক্রিয় করে নির্বাচিত রেঞ্জ বা সম্পূর্ণ কলামগুলিতে Regex প্যাটার্ন প্রয়োগ করতে পারেন। এই পদ্ধতিটি কেবল সময় বাঁচায় না তবে ম্যানুয়াল ডেটা পরিচালনার সাথে সম্পর্কিত ত্রুটির ঝুঁকিও হ্রাস করে। অতিরিক্তভাবে, VBA-এর সাথে Regex-এর সংমিশ্রণ আরও গতিশীল এবং নমনীয় ডেটা প্রসেসিংয়ের অনুমতি দেয়, ব্যবহারকারীদের তাদের স্ক্রিপ্টগুলি নির্দিষ্ট প্রয়োজনীয়তা এবং ডেটাসেটের জন্য উপযুক্ত করতে সক্ষম করে।
এক্সেলে রেজেক্স ব্যবহার সম্পর্কে সাধারণ প্রশ্ন এবং উত্তর
- কিভাবে আমি এক্সেলে VBA সক্ষম করব?
- আপনি বিকাশকারী ট্যাবে গিয়ে এবং ভিবিএ সম্পাদক খুলতে ভিজ্যুয়াল বেসিকে ক্লিক করে এক্সেলে VBA সক্ষম করতে পারেন।
- আমি এক্সেল সূত্রে সরাসরি Regex ব্যবহার করতে পারি?
- না, Regex এক্সেল সূত্রে স্থানীয়ভাবে সমর্থিত নয়। এক্সেলে রেজেক্স ব্যবহার করতে আপনাকে VBA ব্যবহার করতে হবে।
- বিল্ট-ইন ফাংশনগুলির উপর রেজেক্স ব্যবহার করার সুবিধা কী?
- বিল্ট-ইন ফাংশনের তুলনায় Regex প্যাটার্ন ম্যাচিং এবং টেক্সট এক্সট্রাকশনে আরও নমনীয়তা এবং শক্তি প্রদান করে LEFT, MID, এবং RIGHT.
- কিভাবে আমি এক্সেলে রেজেক্স ব্যবহার করে ইমেল ঠিকানা বের করতে পারি?
- আপনি যেমন একটি Regex প্যাটার্ন ব্যবহার করতে পারেন [\w\.-]+@[\w\.-]+\.\w{2,4} একটি ডেটাসেট থেকে ইমেল ঠিকানা বের করতে একটি VBA স্ক্রিপ্টে।
- এক্সেলে রেজেক্সের জন্য একটি ব্যবহারিক ব্যবহারের ক্ষেত্রে কী?
- এক্সেলে Regex-এর ব্যবহারিক ক্ষেত্রে ফোন নম্বর পরিষ্কার করা এবং মানসম্মত করা বা একটি বড় ডেটাসেট থেকে নির্দিষ্ট ডেটা ফরম্যাট বের করা।
- VBA তে Regex কেস-সংবেদনশীল?
- ডিফল্টরূপে, VBA-তে Regex কেস-সংবেদনশীল, কিন্তু আপনি সেট করতে পারেন IgnoreCase সম্পত্তি True এটি কেস-সংবেদনশীল করতে।
- রেজেক্স ব্যবহার করে আমি কীভাবে একটি ঘরে একাধিক ম্যাচ পরিচালনা করব?
- আপনি সেট করতে পারেন Global Regex অবজেক্টের সম্পত্তি True একটি ঘর মান সব মিল খুঁজে পেতে.
- কিছু সাধারণ Regex নিদর্শন কি কি?
- সাধারণ Regex নিদর্শন অন্তর্ভুক্ত \d+ অঙ্কের জন্য, \w+ শব্দের জন্য, এবং [A-Za-z] চিঠির জন্য।
- আমি কি VBA তে Regex ব্যবহার করে পাঠ্য প্রতিস্থাপন করতে পারি?
- হ্যাঁ, আপনি ব্যবহার করতে পারেন regex.Replace VBA-তে নতুন পাঠ্যের সাথে মিলে যাওয়া নিদর্শনগুলি প্রতিস্থাপন করার পদ্ধতি।
র্যাপিং আপ: এক্সেলে রেজেক্সের শক্তি
VBA স্ক্রিপ্টের মাধ্যমে এক্সেলে রেজেক্সের ব্যবহার উল্লেখযোগ্যভাবে ডেটা ম্যানিপুলেশন ক্ষমতা বাড়ায়, জটিল পাঠ্য প্রক্রিয়াকরণ পরিচালনা করা সহজ করে তোলে। এই স্ক্রিপ্টগুলিকে একীভূত করার মাধ্যমে, ব্যবহারকারীরা ডেটাসেটের মধ্যে নির্দিষ্ট প্যাটার্নের নিষ্কাশন এবং প্রতিস্থাপন স্বয়ংক্রিয়ভাবে করতে পারে, দক্ষতা এবং নির্ভুলতা বৃদ্ধি করে৷ শক্তিশালী হলেও, বিভিন্ন টেক্সট ম্যানিপুলেশন কাজের জন্য সর্বোত্তম কার্যকারিতা নিশ্চিত করতে এক্সেলের অন্তর্নির্মিত ফাংশনগুলির পাশাপাশি Regex-এর ব্যবহার করা উচিত।