রেগুলার এক্সপ্রেশন ব্যবহার করে এক্সেল ডেটা ভ্যালিডেশন (Regex)

  • এই শেয়ার করুন
Michael Brown

টিউটোরিয়ালটি দেখায় কিভাবে একটি কাস্টম RegexMatch ফাংশনের সাহায্যে রেগুলার এক্সপ্রেশন ব্যবহার করে এক্সেলে ডেটা ভ্যালিডেশন করতে হয়।

এক্সেল ওয়ার্কশীটে ব্যবহারকারীর ইনপুট সীমাবদ্ধ করার ক্ষেত্রে, ডেটা যাচাইকরণ অপরিহার্য। একটি প্রদত্ত কক্ষে শুধুমাত্র সংখ্যা বা তারিখের অনুমতি দিতে চান? অথবা একটি নির্দিষ্ট দৈর্ঘ্য পাঠ্য মান সীমিত? অথবা হয়ত একটি প্রদত্ত সীমার বাইরে বার অননুমোদিত? কোন সমস্যা নেই, এই সব সহজে প্রিসেট বা কাস্টম বৈধতা মানদণ্ডের সাথে করা যেতে পারে। কিন্তু যদি আমি শুধুমাত্র বৈধ ইমেল ঠিকানা বা স্ট্রিংগুলিকে অনুমতি দিতে চাই যা একটি নির্দিষ্ট প্যাটার্নের সাথে মেলে? হায়রে, এটা সম্ভব নয়। Regex আপনি বলেন? হুম... এটা কাজ করতে পারে!

    রেজেক্সের সাথে এক্সেল ডেটা যাচাইকরণ কীভাবে করবেন

    দুঃখের বিষয়, এক্সেলের অন্তর্নির্মিত বৈশিষ্ট্যগুলির কোনওটিই রেজেক্স সমর্থন করে না এবং ডেটা যাচাইকরণ কোনও নয় ব্যতিক্রম রেগুলার এক্সপ্রেশন ব্যবহার করে সেল ইনপুট যাচাই করতে সক্ষম হতে, আপনাকে প্রথমে একটি কাস্টম Regex ফাংশন তৈরি করতে হবে। আরেকটি জটিলতা হল যে VBA ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি সরাসরি ডেটা যাচাইকরণে পরিবেশন করা যায় না - আপনাকে একটি নামযুক্ত সূত্র আকারে একজন মধ্যস্থতাকারীর প্রয়োজন হবে৷

    উপরেরটি বিবেচনা করে, আসুন সংক্ষিপ্তভাবে গৃহীত পদক্ষেপগুলির রূপরেখা দিই৷ রেজেক্স ব্যবহার করে এক্সেলে ডেটা যাচাই করতে:

    1. একটি কাস্টম রেজেক্স ফাংশন তৈরি করুন যা একটি ইনপুট মান রেগুলার এক্সপ্রেশনের সাথে মেলে কিনা তা পরীক্ষা করে।
    2. আপনার রেজেক্স সূত্রের জন্য একটি নাম সংজ্ঞায়িত করুন।
    3. নামিত সূত্রের উপর ভিত্তি করে একটি ডেটা যাচাইকরণ নিয়ম কনফিগার করুন।
    4. কপি করুনআপনি যতগুলো কক্ষ চান বৈধতা সেটিংস।

    একটি পরিকল্পনার মত শোনাচ্ছে? চলুন এটি অনুশীলনে প্রয়োগ করার চেষ্টা করি!

    কাস্টম রেগুলার এক্সপ্রেশন ব্যবহার করে এক্সেল ডেটা যাচাইকরণ

    এই উদাহরণটি একটি খুব সাধারণ ক্ষেত্রে সম্বোধন করে - কীভাবে শুধুমাত্র একটি নির্দিষ্ট প্যাটার্নের মানগুলিকে অনুমতি দেওয়া যায়।

    ধরুন আপনি আপনার ওয়ার্কশীটে কিছু SKU কোড রেখেছেন এবং নিশ্চিত হতে চান যে শুধুমাত্র একটি প্রদত্ত প্যাটার্নের সাথে মিলে যাওয়া কোডগুলিই তালিকায় প্রবেশ করবে। শর্ত থাকে যে প্রতিটি SKU-তে হাইফেন দিয়ে আলাদা করা অক্ষরগুলির 2টি গ্রুপ থাকে, প্রথম গ্রুপে 3টি বড় অক্ষর এবং দ্বিতীয় গ্রুপ - 3টি সংখ্যা, আপনি নীচের রেজেক্স ব্যবহার করে এই ধরনের মানগুলি সনাক্ত করতে পারেন৷

    প্যাটার্ন : ^[A-Z]{3}-\d{3}$

    অনুগ্রহ করে লক্ষ্য করুন যে স্ট্রিংয়ের শুরু (^) এবং শেষ ($) নোঙ্গর করা হয়েছে, তাই স্ট্রিং ছাড়া অন্য কোনো অক্ষর নেই প্যাটার্ন একটি কক্ষে প্রবেশ করা যেতে পারে৷

    1. একটি কাস্টম Regex ম্যাচ ফাংশন যোগ করুন

    আপনার ওয়ার্কবুকে RegExpMatch ফাংশন সন্নিবেশ করা শুরু করুন। কোডটি ইতিমধ্যেই আমাদের এক্সেল গুরুদের দ্বারা লেখা হয়েছে, তাই আপনাকে এটিকে উপরের লিঙ্কযুক্ত পৃষ্ঠা থেকে কপি করতে হবে এবং আপনার VBA সম্পাদকে পেস্ট করতে হবে৷

    আপনার রেফারেন্সের জন্য এখানে ফাংশনের সিনট্যাক্স রয়েছে:

    RegExpMatch(টেক্সট , প্যাটার্ন, [match_case])

    কোথায়:

    • টেক্সট (প্রয়োজনীয়) - একটি উৎস স্ট্রিং (আমাদের প্রসঙ্গে - একটি বৈধ সেল)।
    • <9 প্যাটার্ন (প্রয়োজনীয়) - ম্যাচ করার জন্য একটি রেগুলার এক্সপ্রেশন।
    • Match_case (ঐচ্ছিক) - ম্যাচের ধরন। সত্য বা বাদ দেওয়া - কেস-সংবেদনশীল; মিথ্যা - অক্ষর-সংবেদনশীল।

    টিপ। আপনি যদি আমাদের আলটিমেট স্যুটের একজন ব্যবহারকারী হন, তাহলে আপনি আপনার ওয়ার্কবুকে কোনো VBA কোড যোগ না করেই Excel-এ Regex ডেটা যাচাইকরণ করতে পারেন। শুধু আমাদের Regex টুলের সাথে অন্তর্ভুক্ত একটি কাস্টম AblebitsRegexMatch ফাংশন ব্যবহার করুন।

    2। একটি নামযুক্ত সূত্র তৈরি করুন

    আপনার টার্গেট ওয়ার্কশীটে, সেল A1 নির্বাচন করুন (এর বিষয়বস্তু নির্বিশেষে এবং আপনি আসলে কোন সেলটি যাচাই করতে যাচ্ছেন তা বিবেচনা না করে), নাম ম্যানেজার খুলতে Ctrl + F3 টিপুন এবং একটি নাম নির্ধারণ করুন এই সূত্রের জন্য:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    অথবা আপনি কিছু ঘরে রেজেক্স লিখতে পারেন (এই উদাহরণে A2) এবং দ্বিতীয় আর্গুমেন্টে $A$2 সরবরাহ করতে পারেন:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    সূত্রটি সঠিকভাবে কাজ করার জন্য, টেক্সট আর্গুমেন্ট (A1) এর জন্য একটি আপেক্ষিক রেফারেন্স এবং প্যাটার্ন ($A$2) এর জন্য পরম রেফারেন্স ব্যবহার করতে ভুলবেন না। 3>

    প্রদত্ত যে আমাদের সূত্রটি SKU নম্বরগুলিকে যাচাই করার উদ্দেশ্যে, আমরা সেই অনুসারে এটির নাম রাখি: Validate_SKU

    গুরুত্বপূর্ণ নোট! সূত্রটি সংজ্ঞায়িত করার সময়, অনুগ্রহ করে দুবার চেক করুন যে প্রথম আর্গুমেন্টটি বর্তমানে নির্বাচিত ঘরকে বোঝায় , অন্যথায় সূত্রটি কাজ করবে না। উদাহরণস্বরূপ, যদি শীটে A1 সেল নির্বাচন করা হয়, তাহলে প্রথম আর্গুমেন্টে A1 রাখুন (আমাদের সুপারিশ অনুযায়ী); যদি B2 নির্বাচন করা হয়, তাহলে প্রথম আর্গুমেন্টের জন্য B2 ব্যবহার করুন এবং তাই একটি। আপনি কোন নির্দিষ্ট রেফারেন্স ব্যবহার করেন তা আসলেই গুরুত্বপূর্ণ নয় যতক্ষণ না এটি বর্তমানে নির্বাচিত ঘরের সাথে মেলে৷

    ধাপে ধাপেনির্দেশাবলী, অনুগ্রহ করে দেখুন কিভাবে Excel এ একটি নামকৃত সূত্র তৈরি করবেন।

    3. ডেটা ভ্যালিডেশন সেট আপ করুন

    চেক করার জন্য প্রথম ঘরটি নির্বাচন করুন (আমাদের ক্ষেত্রে A5) এবং নাম দেওয়া সূত্রের উপর ভিত্তি করে একটি কাস্টম ডেটা যাচাইকরণ নিয়ম তৈরি করুন। এর জন্য, নিম্নলিখিতগুলি করুন:

    1. ডেটা ট্যাবে ক্লিক করুন > ডেটা যাচাইকরণ
    2. এতে অনুমতি দিন ড্রপ-ডাউন তালিকা, কাস্টম নির্বাচন করুন।
    3. সংশ্লিষ্ট বাক্সে নীচের সূত্রটি লিখুন।

      =Validate_SKU

    4. খালি উপেক্ষা করুন বিকল্পটি বাদ দিন, অন্যথায় আপনার নিয়ম কাজ করবে না।

    ঐচ্ছিকভাবে, আপনি টাইপ করতে পারেন একটি কক্ষে অবৈধ তথ্য প্রবেশ করানো হলে একটি কাস্টম ত্রুটি বার্তা প্রদর্শিত হবে৷

    আপনি যদি মনে করেন যে আপনার বিস্তারিত পদক্ষেপের প্রয়োজন, তাহলে আপনি এখানে যান: কিভাবে Excel এ কাস্টম ডেটা যাচাইকরণ সেট আপ করবেন।

    4. আরও কক্ষে ডেটা যাচাইকরণ অনুলিপি করুন

    অধিক কোষে বৈধতা সেটিংস অনুলিপি করতে, আপনাকে এটি করতে হবে:

    1. ডেটা যাচাইকরণ সহ ঘরটি নির্বাচন করুন এবং Ctrl + C টিপুন এটি অনুলিপি করুন।
    2. আপনি যাচাই করতে চান এমন অন্যান্য সেল নির্বাচন করুন, সেগুলিতে ডান ক্লিক করুন, স্পেশাল পেস্ট করুন এ ক্লিক করুন এবং বৈধকরণ বিকল্পটি বেছে নিন।
    3. ঠিক আছে ক্লিক করুন।

    ডেটা ভ্যালিডেশন কিভাবে কপি করতে হয় তাতে আরও তথ্য পাওয়া যাবে।

    এখন, যখনই কেউ যাচাই করা কক্ষগুলির মধ্যে একটি অবৈধ SKU প্রবেশ করার চেষ্টা করে, নিম্নলিখিতগুলি সতর্কতা বার্তা প্রদর্শিত হবে:

    রেজেক্সের সাথে ইমেল যাচাইকরণ

    ইমেল যাচাইকরণ করতে, আপনি শুরু করুনএকটি নিয়মিত অভিব্যক্তি লেখার সাথে যা একটি ইমেল ঠিকানার সাথে মেলে।

    প্যাটার্ন : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    সিনট্যাক্সের বিস্তারিত ব্যাখ্যার জন্য, অনুগ্রহ করে বৈধ ইমেল ঠিকানা মেলানোর জন্য Regex দেখুন৷

    এবং এখন, ইতিমধ্যে পরিচিত পদক্ষেপগুলি সম্পাদন করে বৈধতার মানদণ্ড নির্দিষ্ট করুন:

    1. B2 এ উপরের রেজেক্স লিখুন৷
    2. সেল A1 নির্বাচন করুন এবং Validate_Email নামক একটি নাম সংজ্ঞায়িত করুন যা উল্লেখ করে:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. সেল B5 এর জন্য, নীচের সূত্রটি ব্যবহার করে কাস্টম ডেটা বৈধতা প্রয়োগ করুন। এটি অপরিহার্য যে খালি উপেক্ষা করুন বিকল্পটি অনির্বাচিত হওয়া উচিত।

      =Validate_Email

      উপরন্তু, আপনি একটি কাস্টম ত্রুটি বার্তা কনফিগার করতে পারেন যা ব্যবহারকারীকে একটি বৈধ ইমেল ঠিকানা লিখতে অনুরোধ করে।

    4. নিচের কক্ষে নিয়মটি অনুলিপি করুন৷

    যদি আপনি একটি বৈধ কক্ষে প্রবেশ করান একটি ইমেল ঠিকানা একটি regex প্যাটার্নের সাথে মেলে না, তাহলে নিম্নলিখিত সতর্কতা হবে পপ আপ:

    রেগুলার এক্সপ্রেশন ব্যবহার করে পাসওয়ার্ড যাচাই করা

    পাসওয়ার্ড যাচাইকরণের জন্য regex ব্যবহার করার সময়, আপনার রেগুলার এক্সপ্রেশনটি ঠিক কী পরীক্ষা করা উচিত তা নির্ধারণ করার জন্য প্রথমেই সিদ্ধান্ত নিতে হবে। এখানে কিছু উদাহরণ রয়েছে যা আপনাকে সঠিক পথে সেট করতে পারে৷

    একটি পাসওয়ার্ড কমপক্ষে 6 অক্ষর দীর্ঘ হতে হবে এবং শুধুমাত্র অক্ষর (বড় হাতের বা ছোট হাতের) এবং সংখ্যা থাকতে পারে:

    প্যাটার্ন : ^[A-Za-z0-9]{6,}$

    একটি পাসওয়ার্ড ন্যূনতম 6 অক্ষর দীর্ঘ হতে হবে এবং কমপক্ষে একটি অক্ষর এবং অন্তর্ভুক্ত করতে হবেএকটি সংখ্যা:

    প্যাটার্ন : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    একটি পাসওয়ার্ড অবশ্যই কমপক্ষে 6 অক্ষর দীর্ঘ হতে হবে এবং এতে কমপক্ষে একটি বড় হাতের অক্ষর, একটি ছোট হাতের অক্ষর এবং একটি সংখ্যা অন্তর্ভুক্ত থাকতে হবে:

    প্যাটার্ন : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    একটি পাসওয়ার্ড অবশ্যই কমপক্ষে 6 অক্ষরের হতে হবে দীর্ঘ এবং অন্তত একটি অক্ষর, একটি সংখ্যা এবং একটি বিশেষ অক্ষর অন্তর্ভুক্ত করুন:

    প্যাটার্ন : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    প্রতিষ্ঠিত প্যাটার্নের সাথে, আপনি ডেটা যাচাইকরণ সেট আপ করতে যেতে পারেন:

    1. C2 এ আপনার পাসওয়ার্ড রেজেক্স লিখুন।
    2. সেল A1 নির্বাচন করুন এবং নামে একটি নামযুক্ত সূত্র তৈরি করুন Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. সেলে C5 এর জন্য, নিচের সূত্র দিয়ে একটি কাস্টম বৈধকরণ নিয়ম তৈরি করুন। খালি উপেক্ষা করুন চেক বক্সটি অনির্বাচন করতে ভুলবেন না।

      =Validate_Password

    4. নিয়মটি যতগুলো ঘরে চান কপি করুন।

    এখন, আপনি নিরাপদে তালিকায় নতুন পাসওয়ার্ড যোগ করতে পারেন। যদি একটি ইনপুট স্ট্রিং রেজেক্সের সাথে মেলে না, তাহলে নিম্নলিখিত সতর্কতা আপনাকে মনে করিয়ে দেবে কোন ধরণের মান গ্রহণ করা হয়েছে:

    রেজেক্স ডেটা যাচাইকরণ কাজ করছে না

    যদি আপনার এক্সেলে রেজেক্স ডেটা যাচাইকরণ কাজ না করে , সম্ভবত এটি নিম্নলিখিত কারণগুলির মধ্যে একটির কারণে।

    RegExpMatch ফাংশন অনুপস্থিত

    ডেটা যাচাইকরণ প্রয়োগ করার আগে, আপনার ওয়ার্কবুকে RegExpMatch ফাংশনের কোড সন্নিবেশ করতে ভুলবেন না।

    ভুল নিয়মিতএক্সপ্রেশন

    আপনার regex আশানুরূপ কাজ করছে তা নিশ্চিত করতে, আপনি কিছু ঘরে একটি RegExpMatch সূত্র লিখতে পারেন এবং ফলাফলগুলি পরীক্ষা করতে পারেন। আরও তথ্যের জন্য, অনুগ্রহ করে এক্সেল রেগুলার এক্সপ্রেশন দেখুন উদাহরণের সাথে মিলছে।

    আপনার রেগুলার এক্সপ্রেশন বিশ্লেষণ এবং ডিবাগ করতে, আপনি বিনামূল্যে অনলাইন রেজেক্স টেস্টিং পরিষেবাগুলি যেমন RegEx101 বা RegExr ব্যবহার করতে পারেন।

    ভুল নামের সূত্র

    ডেটা যাচাইকরণ ব্যর্থতার একটি খুব সাধারণ কারণ হল রেজেক্স নামের একটি সূত্র যা একটি ভুল কক্ষকে নির্দেশ করে। সমস্ত উদাহরণে, আমরা A1 উল্লেখ করে একটি সূত্র সংজ্ঞায়িত করার সুপারিশ করেছি:

    =RegExpMatch(A1, regex)

    এটি শুধুমাত্র তখনই কাজ করে যখন সেল A1 সক্রিয় থাকে একটি নাম এবং একটি <15 সংজ্ঞায়িত করার সময়>আপেক্ষিক রেফারেন্স ($ চিহ্ন ছাড়া) ব্যবহার করা হয়।

    ধারণা হল যে সূত্রে (A1) নির্দিষ্ট করা একটি আপেক্ষিক রেফারেন্স স্বয়ংক্রিয়ভাবে যাচাইকৃত ঘরের আপেক্ষিক অবস্থানের উপর ভিত্তি করে পরিবর্তিত হবে। অন্য কথায়, সেল A1 শুধুমাত্র সুবিধা এবং সামঞ্জস্যের জন্য বেছে নেওয়া হয়েছে। আসলে, আপনি সেল B1 নির্বাচন করতে পারেন এবং B1 উল্লেখ করতে পারেন, সেল C1 নির্বাচন করতে পারেন এবং C1 উল্লেখ করতে পারেন, ইত্যাদি। মূল বিষয় হল যে উল্লেখিত সেল টি সক্রিয় সেল হওয়া উচিত।

    আপনার নামযুক্ত সূত্রটি সঠিক কিনা তা পরীক্ষা করতে, আপনার ওয়ার্কশীটে যেকোন সেল নির্বাচন করুন, খুলুন নাম ম্যানেজার, এবং দেখুন সূত্রটি কোন ঘরে নির্দেশ করে। যদি এটি বর্তমানে নির্বাচিত ঘরকে নির্দেশ করে, সূত্রটি সঠিক। অন্যথায়, আপনাকে প্রথম আর্গুমেন্টে রেফারেন্স পরিবর্তন করতে হবে।

    স্ক্রিনশটেনীচে, সেল A7 নির্বাচন করা হয়েছে, যার অর্থ একটি নামযুক্ত সূত্রের প্রথম আর্গুমেন্টে A7 থাকা উচিত। দ্বিতীয় আর্গুমেন্ট ($A$2) রেজেক্সকে বোঝায় - এই রেফারেন্সটি স্থির থাকার কথা, তাই এটি $ চিহ্ন দিয়ে লক করা আছে।

    নির্বাচিত ফাঁকা বিকল্প উপেক্ষা করুন

    একটি কাস্টম ডেটা যাচাইকরণ নিয়ম সেট আপ করার সময়, খালি উপেক্ষা করুন চেক বক্সটি অনির্বাচন করা গুরুত্বপূর্ণ। অন্যথায়, নিয়মটি নিম্নলিখিত কারণে কাজ করবে না:

    যদি একটি মিল পাওয়া না যায়, RegExpMatch ফাংশনটি FALSE প্রদান করে। খালি উপেক্ষা করুন বিকল্পটি নির্বাচিত হলে, FALSE শূন্যের সমান হয় এবং উপেক্ষা করা হয়।

    একটি বিকল্প সমাধান স্পষ্টভাবে বলছে যে সূত্রটি সত্য ফিরে আসবে:

    =RegExpMatch(…)=TRUE

    এভাবে রেগুলার এক্সপ্রেশন ব্যবহার করে এক্সেলে ডেটা ভ্যালিডেশন করতে হয়। আমি পড়ার জন্য আপনাকে ধন্যবাদ এবং আগামী সপ্তাহে আমাদের ব্লগে আপনাকে দেখার জন্য অপেক্ষা করছি!

    ডাউনলোডের জন্য অনুশীলন ওয়ার্কবুক

    রেজেক্স ডেটা যাচাইকরণের উদাহরণ (.xlsm ফাইল)

    <3 >>>>>

    মাইকেল ব্রাউন হল সফ্টওয়্যার সরঞ্জাম ব্যবহার করে জটিল প্রক্রিয়াগুলিকে সরল করার আবেগের সাথে একজন উত্সর্গীকৃত প্রযুক্তি উত্সাহী৷ প্রযুক্তি শিল্পে এক দশকেরও বেশি অভিজ্ঞতার সাথে, তিনি মাইক্রোসফ্ট এক্সেল এবং আউটলুক, সেইসাথে Google পত্রক এবং ডক্সে তার দক্ষতাকে সম্মানিত করেছেন। মাইকেলের ব্লগটি তার জ্ঞান এবং দক্ষতা অন্যদের সাথে ভাগ করে নেওয়ার জন্য নিবেদিত, উত্পাদনশীলতা এবং দক্ষতার উন্নতির জন্য সহজে অনুসরণযোগ্য টিপস এবং টিউটোরিয়াল প্রদান করে৷ আপনি একজন অভিজ্ঞ পেশাদার বা একজন শিক্ষানবিসই হোন না কেন, মাইকেলের ব্লগ এই প্রয়োজনীয় সফ্টওয়্যার সরঞ্জামগুলি থেকে সর্বাধিক পাওয়ার জন্য মূল্যবান অন্তর্দৃষ্টি এবং ব্যবহারিক পরামর্শ প্রদান করে৷