এক্সেল: একসাথে একাধিক মান খুঁজুন এবং প্রতিস্থাপন করুন

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

সুচিপত্র

এই টিউটোরিয়ালে, আমরা একাধিক শব্দ, স্ট্রিং, বা পৃথক অক্ষর খুঁজে বের করার এবং প্রতিস্থাপন করার বিভিন্ন উপায় দেখব, যাতে আপনি আপনার প্রয়োজন অনুসারে সবচেয়ে উপযুক্ত একটি চয়ন করতে পারেন৷

কিভাবে মানুষ সাধারণত Excel এ অনুসন্ধান করে? বেশিরভাগ ক্ষেত্রে, Find & বৈশিষ্ট্য প্রতিস্থাপন করুন, যা একক মানগুলির জন্য সূক্ষ্ম কাজ করে। কিন্তু আপনার যদি দশ বা এমনকি শত শত আইটেম প্রতিস্থাপন করার জন্য থাকে? নিশ্চিতভাবে, কেউই এই সমস্ত প্রতিস্থাপন ম্যানুয়ালি একের পর এক করতে চাইবে না, এবং তারপরে যখন ডেটা পরিবর্তিত হয় তখন এটি আবার করতে হবে। সৌভাগ্যবশত, Excel-এ ভর প্রতিস্থাপন করার জন্য আরও কয়েকটি কার্যকর পদ্ধতি রয়েছে এবং আমরা সেগুলির প্রত্যেকটি বিস্তারিতভাবে তদন্ত করতে যাচ্ছি৷

    নেস্টেড SUBSTITUTE দিয়ে একাধিক মান খুঁজুন এবং প্রতিস্থাপন করুন<7

    এক্সেলে একাধিক এন্ট্রি খুঁজে বের করার এবং প্রতিস্থাপন করার সবচেয়ে সহজ উপায় হল SUBSTITUTE ফাংশন ব্যবহার করা৷

    সূত্রটির যুক্তি খুবই সহজ: আপনি একটি পুরানো মানকে একটি নতুন দিয়ে প্রতিস্থাপন করতে কয়েকটি পৃথক ফাংশন লিখুন৷ . এবং তারপরে, আপনি সেই ফাংশনগুলিকে একে অপরের মধ্যে নেস্ট করেন, যাতে প্রতিটি পরবর্তী SUBSTITUTE পরবর্তী মান খোঁজার জন্য পূর্ববর্তী SUBSTITUTE এর আউটপুট ব্যবহার করে৷

    SUBSTITUTE(SUBSTITUTE( text , old_text1 , new_text1 ), old_text2 , new_text2 ), old_text3 , new_text3 )

    A2:A10-এ অবস্থানের তালিকায়, ধরুন আপনি সংক্ষিপ্ত দেশের নামগুলি (যেমন FR , UK এবং USA ) সম্পূর্ণভাবে প্রতিস্থাপন করতে চান MassReplace ফাংশনটি শুধুমাত্র সেই ওয়ার্কবুকে কাজ করবে যেখানে আপনি কোডটি সন্নিবেশ করেছেন। আপনি যদি নিশ্চিত না হন কিভাবে এটি সঠিকভাবে করতে হয়, তাহলে অনুগ্রহ করে Excel এ VBA কোড কিভাবে সন্নিবেশ করা যায় তাতে বর্ণিত ধাপগুলি অনুসরণ করুন।

    কোডটি আপনার ওয়ার্কবুকে যোগ হয়ে গেলে, ফাংশনটি ফর্মুলা ইন্টেলিসেন্সে প্রদর্শিত হবে - শুধুমাত্র ফাংশনের নাম, আর্গুমেন্ট নয়! যদিও, আমি বিশ্বাস করি সিনট্যাক্স মনে রাখা কোন বড় ব্যাপার নয়:

    MassReplace(input_range, find_range, replace_range)

    কোথায়:

    • Input_range - উৎস পরিসর যেখানে আপনি মানগুলি প্রতিস্থাপন করতে চান৷
    • Find_range - যে অক্ষর, স্ট্রিং বা শব্দগুলির জন্য অনুসন্ধান করতে হবে৷
    • প্রতিস্থাপন_রেঞ্জ - অক্ষর, স্ট্রিং অথবা শব্দের সাথে প্রতিস্থাপন করতে হবে।

    এক্সেল 365-এ, ডাইনামিক অ্যারেগুলির সমর্থনের কারণে, এটি একটি সাধারণ সূত্র হিসাবে কাজ করে, যা শুধুমাত্র উপরের কক্ষে (B2):

    =MassReplace(A2:A10, D2:D4, E2:E4)

    প্রি-ডাইনামিক এক্সেলে, এটি একটি পুরানো-স্টাইলের CSE অ্যারে সূত্র হিসাবে কাজ করে: আপনি সমগ্র উৎস পরিসর (B2:B10) নির্বাচন করুন, টাইপ করুন সূত্র, এবং এটি সম্পূর্ণ করতে একই সাথে Ctrl + Shift + Enter কী টিপুন৷

    সুবিধাগুলি : Excel 2019-এ একটি কাস্টম LAMBDA ফাংশনের একটি উপযুক্ত বিকল্প , Excel 2016 এবং পূর্ববর্তী সংস্করণগুলি

    অসুবিধাগুলি : ওয়ার্কবুকটিকে অবশ্যই একটি ম্যাক্রো-সক্ষম .xlsm ফাইল হিসাবে সংরক্ষণ করতে হবে

    VBA ম্যাক্রো

    <এর সাথে এক্সেলের মধ্যে বাল্ক প্রতিস্থাপন করুন 0>আপনি যদি অটো পছন্দ করেন ম্যাক্রোর সাথে সাধারণ কাজগুলি সঙ্গম করুন, তারপরে আপনিএকটি পরিসরে একাধিক মান খুঁজে পেতে এবং প্রতিস্থাপন করতে নিম্নলিখিত VBA কোড ব্যবহার করতে পারেন। Sub BulkReplace() Dim Rng As Range, SourceRng As Range, ReplaceRng As Range On Error Resume Next Set SourceRng = Application.InputBox( "উৎস ডেটা: " , "Bulk Replace" , Application.Selection.Address, Type :=8) Err.Clear যদি SourceRng কিছুই না হয় তাহলে ReplaceRng = Application.InputBox ("রিপ্লেস রেঞ্জ:" , "বাল্ক রিপ্লেস" , টাইপ :=8) সেট করুন Err.Clear ReplaceRng কিছুই না হলে Application.ScreenUpdating = False প্রতিটি Rng-এর জন্য ReplaceRng.Columns(1).Cells SourceRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1)।মান পরবর্তী Application.ScreenUpdating = True End If End If End Sub

    এখনই ম্যাক্রো ব্যবহার করতে, আপনি কোড সম্বলিত আমাদের নমুনা ওয়ার্কবুক ডাউনলোড করতে পারেন। অথবা আপনি আপনার নিজের ওয়ার্কবুকে কোডটি সন্নিবেশ করতে পারেন।

    ম্যাক্রো কীভাবে ব্যবহার করবেন

    ম্যাক্রো চালানোর আগে, নীচের ছবিতে দেখানো হিসাবে দুটি সংলগ্ন কলামে পুরানো এবং নতুন মান টাইপ করুন ( C2:D4)।

    এবং তারপরে, আপনার সোর্স ডেটা নির্বাচন করুন, Alt + F8 টিপুন, BulkReplace ম্যাক্রো বেছে নিন এবং Run ক্লিক করুন।

    <0

    যেহেতু উৎস রাগ পূর্বনির্বাচিত হয়, শুধু রেফারেন্স যাচাই করুন, এবং ঠিক আছে ক্লিক করুন:

    এর পরে, প্রতিস্থাপন পরিসীমা নির্বাচন করুন, এবং ঠিক আছে ক্লিক করুন:

    সম্পন্ন!

    সুবিধা : একবার সেটআপ করুন, যেকোনো সময় পুনরায় ব্যবহার করুন

    অসুবিধা : প্রতিটি ডেটার সাথে ম্যাক্রো চালানো দরকারপরিবর্তন

    সাবস্ট্রিং টুলের মাধ্যমে এক্সেলে একাধিক খুঁজুন এবং প্রতিস্থাপন করুন

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

    আপনার ওয়ার্কশীটে ভর প্রতিস্থাপন করতে, Ablebits ডেটা ট্যাবে যান এবং সাবস্ট্রিং টুলস > এ ক্লিক করুন সাবস্ট্রিংগুলি প্রতিস্থাপন করুন

    সাবস্ট্রিংগুলি প্রতিস্থাপন করুন ডায়ালগ বক্সটি আপনাকে উৎস পরিসর এবং <1 নির্ধারণ করতে বলবে।>সাবস্ট্রিংস পরিসর।

    দুটি রেঞ্জ নির্বাচন করে, প্রতিস্থাপন বোতামে ক্লিক করুন এবং ডানদিকে ঢোকানো একটি নতুন কলামে ফলাফলগুলি খুঁজুন মূল তথ্যের। হ্যাঁ, এটা খুবই সহজ!

    টিপ। প্রতিস্থাপন ক্লিক করার আগে, আপনার বিবেচনা করার জন্য একটি গুরুত্বপূর্ণ বিষয় রয়েছে - কেস-সংবেদনশীল বক্স। আপনি যদি বড় হাতের এবং ছোট হাতের অক্ষরগুলিকে ভিন্ন অক্ষর হিসাবে পরিচালনা করতে চান তবে এটি নির্বাচন করতে ভুলবেন না। এই উদাহরণে, আমরা এই বিকল্পটিতে টিক দিয়েছি কারণ আমরা কেবলমাত্র ক্যাপিটালাইজড স্ট্রিংগুলি প্রতিস্থাপন করতে চাই এবং অন্যান্য শব্দের মধ্যে "fr", "uk" বা "ak" এর মতো সাবস্ট্রিংগুলিকে অক্ষত রাখতে চাই।

    আপনি যদি জানতে আগ্রহী হন যে স্ট্রিংগুলিতে অন্যান্য বাল্ক অপারেশনগুলি কী করা যেতে পারে, আমাদের আলটিমেট স্যুটের সাথে অন্তর্ভুক্ত অন্যান্য সাবস্ট্রিং সরঞ্জামগুলি দেখুন৷ অথবা আরও ভাল, নীচের মূল্যায়ন সংস্করণ ডাউনলোড করুন এবং এটি ব্যবহার করে দেখুন!

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

    উপলভ্য ডাউনলোড

    এক্সেল (.xlsm ফাইল) এ একাধিক খুঁজুন এবং প্রতিস্থাপন করুন

    আলটিমেট স্যুট 14 -দিন সম্পূর্ণরূপে কার্যকরী সংস্করণ (.exe ফাইল)

    নাম।

    এটি সম্পন্ন করতে, D2:D4-এ পুরানো মান এবং E2:E4-এ নতুন মান লিখুন যেমন নীচের স্ক্রিনশটে দেখানো হয়েছে। এবং তারপর, নীচের সূত্রটি B2-এ রাখুন এবং এন্টার টিপুন:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)

    …এবং আপনি একবারে সমস্ত প্রতিস্থাপন করতে পারবেন:

    অনুগ্রহ করে মনে রাখবেন, উপরের পদ্ধতিটি শুধুমাত্র Excel 365 -এ কাজ করে যা গতিশীল অ্যারে সমর্থন করে।

    Excel 2019, Excel 2016 এবং তার আগের সংস্করণের প্রাক-ডাইনামিক সংস্করণে, সূত্রটি হওয়া প্রয়োজন শীর্ষস্থানীয় সেল (B2) এর জন্য লেখা, এবং তারপর নীচের কক্ষগুলিতে অনুলিপি করা হয়েছে:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)

    দয়া করে মনোযোগ দিন যে, এই ক্ষেত্রে, আমরা পরম সেল রেফারেন্স সহ প্রতিস্থাপনের মানগুলিকে লক করি, তাই সূত্রটি কপি করার সময় তারা স্থানান্তরিত হবে না।

    দ্রষ্টব্য। SUBSTITUTE ফাংশনটি হল কেস-সংবেদনশীল , যার অর্থ আপনার পুরানো মানগুলি ( old_text ) একই অক্ষরের ক্ষেত্রে টাইপ করা উচিত যেভাবে সেগুলি মূল ডেটাতে প্রদর্শিত হয়৷

    যতটা সহজ হতে পারে, এই পদ্ধতির একটি উল্লেখযোগ্য ত্রুটি রয়েছে - যখন আপনার প্রতিস্থাপন করার জন্য কয়েক ডজন আইটেম থাকে, তখন নেস্টেড ফাংশনগুলি পরিচালনা করা বেশ কঠিন হয়ে যায়৷

    সুবিধাগুলি : সহজ -বাস্তবায়ন; সমস্ত এক্সেল সংস্করণে সমর্থিত

    অসুবিধা : সীমিত সংখ্যক মান খুঁজে/প্রতিস্থাপনের জন্য ব্যবহার করা সর্বোত্তম

    XLOOKUP দিয়ে একাধিক এন্ট্রি অনুসন্ধান করুন এবং প্রতিস্থাপন করুন

    <0 যখন আপনি সম্পূর্ণ সেল সামগ্রী প্রতিস্থাপন করতে চান, তার অংশ নয়, XLOOKUP ফাংশনটি কাজে আসে৷

    আসুনবলুন আপনার কলাম A এ দেশের একটি তালিকা রয়েছে এবং সংশ্লিষ্ট পূর্ণ নামের সাথে সমস্ত সংক্ষিপ্ত রূপ প্রতিস্থাপন করার লক্ষ্য রাখুন। আগের উদাহরণের মতো, আপনি আলাদা কলামে (যথাক্রমে D এবং E) আইটেমগুলি "খুঁজুন" এবং "প্রতিস্থাপন" ইনপুট দিয়ে শুরু করুন এবং তারপরে এই সূত্রটি B2:

    =XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)

    এ প্রবেশ করুন। এক্সেল ভাষা থেকে মানব ভাষায় অনুবাদ করা হয়েছে, সূত্রটি যা করে তা এখানে:

    D2:D4 (lookup_array) এ A2 মান (lookup_value) অনুসন্ধান করুন এবং E2:E4 (return_array) থেকে একটি মিল ফেরত দিন। যদি না পাওয়া যায়, A2 থেকে আসল মান টানুন।

    নিচের ঘরে ফর্মুলা কপি করতে ফিল হ্যান্ডেলে ডাবল-ক্লিক করুন এবং ফলাফল আপনাকে অপেক্ষায় রাখবে না:

    যেহেতু XLOOKUP ফাংশন শুধুমাত্র Excel 365-এ উপলব্ধ, উপরের সূত্রটি আগের সংস্করণে কাজ করবে না। যাইহোক, আপনি সহজেই IFERROR বা IFNA এবং VLOOKUP:

    =IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)

    নোটের সংমিশ্রণে এই আচরণটি অনুকরণ করতে পারেন। SUBSTITUTE-এর বিপরীতে, XLOOKUP এবং VLOOKUP ফাংশনগুলি কেস-সংবেদনশীল নয় , অর্থাৎ তারা অক্ষরের কেস উপেক্ষা করে লুকআপ মানগুলি অনুসন্ধান করে৷ উদাহরণস্বরূপ, আমাদের সূত্র FR এবং fr উভয়কেই France দিয়ে প্রতিস্থাপন করবে।

    সুবিধা : স্বাভাবিক ফাংশনের অস্বাভাবিক ব্যবহার; সমস্ত এক্সেল সংস্করণে কাজ করে

    অসুবিধা : একটি সেল স্তরে কাজ করে, সেল সামগ্রীর অংশ প্রতিস্থাপন করতে পারে না

    পুনরাবৃত্ত LAMBDA ফাংশন ব্যবহার করে একাধিক প্রতিস্থাপন

    মাইক্রোসফটের জন্য365 গ্রাহক, এক্সেল একটি বিশেষ ফাংশন প্রদান করে যা একটি ঐতিহ্যগত সূত্র ভাষা ব্যবহার করে কাস্টম ফাংশন তৈরি করতে দেয়। হ্যাঁ, আমি LAMBDA এর কথা বলছি। এই পদ্ধতির সৌন্দর্য হল যে এটি একটি খুব দীর্ঘ এবং জটিল সূত্রকে একটি খুব কমপ্যাক্ট এবং সহজ ফর্মুলাতে রূপান্তর করতে পারে। তাছাড়া, এটি আপনাকে আপনার নিজস্ব ফাংশন তৈরি করতে দেয় যা এক্সেলে বিদ্যমান নেই, এমন কিছু যা আগে সম্ভব ছিল শুধুমাত্র VBA দিয়ে।

    কাস্টম LAMBDA ফাংশন তৈরি এবং ব্যবহার করার বিষয়ে বিস্তারিত তথ্যের জন্য, অনুগ্রহ করে এই টিউটোরিয়ালটি দেখুন: কিভাবে এক্সেলে LAMBDA ফাংশন লিখতে। এখানে, আমরা কয়েকটি ব্যবহারিক উদাহরণ নিয়ে আলোচনা করব।

    সুবিধা : ফলাফলটি একটি মার্জিত এবং আশ্চর্যজনকভাবে ফাংশন ব্যবহার করার জন্য সহজ, প্রতিস্থাপন জোড়ার সংখ্যা নির্বিশেষে

    খারাপগুলি : শুধুমাত্র Excel 365-এ উপলব্ধ; ওয়ার্কবুক-নির্দিষ্ট এবং বিভিন্ন ওয়ার্কবুক জুড়ে পুনরায় ব্যবহার করা যাবে না

    উদাহরণ 1. একাধিক শব্দ / স্ট্রিং একবারে অনুসন্ধান করুন এবং প্রতিস্থাপন করুন

    একবারে একাধিক শব্দ বা পাঠ্য প্রতিস্থাপন করতে, আমরা একটি কাস্টম তৈরি করেছি LAMBDA ফাংশন, নাম MultiReplace , যা এই ফর্মগুলির মধ্যে একটি নিতে পারে:

    =LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))

    বা

    =LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))

    উভয়টিই পুনরাবৃত্তিমূলক ফাংশন যে নিজেদের কল. পার্থক্য শুধুমাত্র কিভাবে প্রস্থান বিন্দু প্রতিষ্ঠিত হয়।

    প্রথম সূত্রে, IF ফাংশন চেক করে যে পুরাতন তালিকাটি ফাঁকা নয় (পুরানো"")। যদি সত্য হয়, MultiReplace ফাংশনটিকে বলা হয়। FALSE হলে, ফাংশন টেক্সট এটির বর্তমান ফর্ম ফেরত দেয় এবং প্রস্থান করে।

    দ্বিতীয় সূত্রটি বিপরীত যুক্তি ব্যবহার করে: যদি পুরাতন ফাঁকা হয় (old=""), তাহলে <1 ফেরত দিন>টেক্সট এবং প্রস্থান করুন; অন্যথায় MultiReplace কল করুন।

    সবচেয়ে জটিল অংশটি সম্পন্ন হয়েছে! নিচের স্ক্রিনশটে দেখানো মতো নেম ম্যানেজারে MultiReplace ফাংশনের নাম দেওয়া আপনার জন্য বাকি আছে। বিস্তারিত নির্দেশিকাগুলির জন্য, অনুগ্রহ করে একটি LAMBDA ফাংশনের নাম কীভাবে রাখবেন তা দেখুন৷

    একবার ফাংশনটির একটি নাম হয়ে গেলে, আপনি এটিকে অন্য যেকোনো ইনবিল্ট ফাংশনের মতোই ব্যবহার করতে পারেন৷

    আপনি যে দুটি সূত্রের বৈচিত্র বেছে নিন, শেষ-ব্যবহারকারীর দৃষ্টিকোণ থেকে, সিনট্যাক্সটি এইরকম সহজ:

    মাল্টি-রিপ্লেস(টেক্সট, পুরানো, নতুন)

    কোথায়:

    • টেক্সট - উৎস ডেটা
    • পুরানো - যে মানগুলি খুঁজে বের করতে হবে
    • নতুন - যে মানগুলির সাথে প্রতিস্থাপন করতে হবে

    আগের উদাহরণটিকে একটু এগিয়ে নিয়ে যাওয়া যাক, শুধু দেশের সংক্ষিপ্ত রূপই নয়, রাষ্ট্রীয় সংক্ষিপ্ত রূপও প্রতিস্থাপন করা যাক। এর জন্য, D2 থেকে শুরু হওয়া কলাম D-এ সংক্ষেপণ ( পুরানো মান) এবং E2 থেকে শুরু হওয়া কলাম E-তে সম্পূর্ণ নাম ( নতুন মান) টাইপ করুন।

    এ B2, MultiReplace ফাংশন লিখুন:

    =MultiReplace(A2:A10, D2, E2)

    এন্টার টিপুন এবং ফলাফল উপভোগ করুন :)

    এই সূত্রটি কীভাবে কাজ করে

    সূত্রটি বোঝার সূত্র হল পুনরাবৃত্তি বোঝা। এটি জটিল শোনাতে পারে, তবে নীতিটি বেশ সহজ। প্রত্যেকটির সাথেপুনরাবৃত্তি, একটি পুনরাবৃত্ত ফাংশন একটি বড় সমস্যার একটি ছোট উদাহরণ সমাধান করে। আমাদের ক্ষেত্রে, MultiReplace ফাংশনটি পুরানো এবং নতুন মানগুলির মাধ্যমে লুপ করে এবং প্রতিটি লুপের সাথে একটি প্রতিস্থাপন সম্পাদন করে:

    MultiReplace (SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))

    নেস্টেড SUBSTITUTE ফাংশনগুলির মতো, পূর্ববর্তী SUBSTITUTE-এর ফলাফল পরবর্তী SUBSTITUTE-এর জন্য text প্যারামিটারে পরিণত হয়। অন্য কথায়, MultiReplace -এর প্রতিটি পরবর্তী কলে, SUBSTITUTE ফাংশনটি মূল পাঠ্য স্ট্রিং নয়, পূর্ববর্তী কলের আউটপুট প্রক্রিয়া করে।

    <1-এ সমস্ত আইটেম পরিচালনা করতে>পুরাতন তালিকা, আমরা শীর্ষস্থানীয় সেল দিয়ে শুরু করি, এবং প্রতিটি ইন্টারঅ্যাকশনের সাথে 1 সারি নিচে সরানোর জন্য অফসেট ফাংশন ব্যবহার করি:

    OFFSET(old, 1, 0)

    এটি এর জন্য করা হয় new তালিকা:

    OFFSET(new, 1, 0)

    গুরুত্বপূর্ণ বিষয় হল একটি প্রস্থানের বিন্দু প্রদান করা যাতে রিকার্সিভ কলগুলিকে চিরতরে চলতে না দেওয়া। এটি IF ফাংশনের সাহায্যে করা হয় - যদি পুরনো সেলটি খালি থাকে, ফাংশনটি টেক্সট এটিকে তার বর্তমান রূপে ফিরিয়ে দেয় এবং প্রস্থান করে:

    =LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))

    বা

    =LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))

    উদাহরণ 2. এক্সেলের একাধিক অক্ষর প্রতিস্থাপন করুন

    নীতিগতভাবে, আগের উদাহরণে আলোচিত MultiReplace ফাংশন পৃথক অক্ষরগুলিও পরিচালনা করুন, তবে শর্ত থাকে যে প্রতিটি পুরানো এবং নতুন অক্ষর একটি পৃথক কক্ষে প্রবেশ করানো হয়, ঠিক উপরের স্ক্রিনশটগুলিতে সংক্ষিপ্ত এবং সম্পূর্ণ নামের মতো৷

    আপনি যদি পুরানোটি ইনপুট করতে চানএকটি কক্ষে অক্ষর এবং অন্য কক্ষে নতুন অক্ষর, অথবা তাদের সরাসরি সূত্রে টাইপ করুন, তারপর আপনি এই সূত্রগুলির একটি ব্যবহার করে প্রতিস্থাপনচরস নামে আরেকটি কাস্টম ফাংশন তৈরি করতে পারেন:

    =LAMBDA(text, old_chars, new_chars, IF(old_chars"", ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1)), text))

    বা

    =LAMBDA(text, old_chars, new_chars, IF(old_chars="", text, ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))))

    > এবং আপনার নতুন কাস্টম ফাংশন ব্যবহারের জন্য প্রস্তুত: ReplaceChars(text, old_chars, new_chars)

    কোথায়:

    • Text - আসল স্ট্রিং
    • পুরাতন - যে অক্ষরগুলি অনুসন্ধান করতে হবে
    • নতুন - যে অক্ষরগুলিকে

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

    প্রথমে, আমরা D2 তে স্মার্ট কোট এবং স্মার্ট অ্যাপোস্ট্রফি, সোজা উদ্ধৃতি এবং E2 তে সোজা অ্যাপোস্ট্রফি ইনপুট করি৷ , ভাল পঠনযোগ্যতার জন্য অক্ষরগুলিকে স্পেস দিয়ে আলাদা করা। (যেহেতু আমরা উভয় কক্ষে একই ডিলিমিটার ব্যবহার করি, এটি ফলাফলের উপর কোন প্রভাব ফেলবে না - এক্সেল কেবল একটি স্থানকে একটি স্পেস দিয়ে প্রতিস্থাপন করবে।)

    এর পরে, আমরা এই সূত্রটি B2 এ প্রবেশ করি:

    =ReplaceChars(A2:A4, D2, E2)

    এবং আমরা যে ফলাফলগুলি খুঁজছিলাম ঠিক সেই ফলাফলগুলি পান:

    অক্ষরগুলি সরাসরি সূত্রে টাইপ করাও সম্ভব। আমাদের ক্ষেত্রে, এইরকম সোজা উদ্ধৃতিগুলিকে "ডুপ্লিকেট" করতে মনে রাখবেন:

    =ReplaceChars(A2:A4, "“ ” ’", """ "" '")

    এই সূত্রটি কীভাবে কাজ করে

    The ReplaceChars ফাংশন চক্র পুরাতন_অক্ষর এবং নতুন_অক্ষর স্ট্রিং এর মাধ্যমে এবং বাম দিকের প্রথম অক্ষর থেকে শুরু করে একবারে একটি প্রতিস্থাপন করে। এই অংশটি SUBSTITUTE ফাংশন দ্বারা সম্পন্ন করা হয়:

    SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))

    প্রতিটি পুনরাবৃত্তির সাথে, RIGHT ফাংশনটি old_chars এবং উভয়ের বাম দিক থেকে একটি অক্ষর সরিয়ে দেয়। new_chars স্ট্রিং, যাতে LEFT প্রতিস্থাপনের জন্য পরবর্তী জোড়া অক্ষর আনতে পারে:

    ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))

    প্রতিটি পুনরাবৃত্ত কলের আগে, IF ফাংশন old_chars স্ট্রিংকে মূল্যায়ন করে . এটি খালি না হলে, ফাংশনটি নিজেই কল করে। শেষ অক্ষরটি প্রতিস্থাপিত হওয়ার সাথে সাথে, পুনরাবৃত্তি প্রক্রিয়াটি শেষ হয়, সূত্রটি পাঠ্য এটির বর্তমান ফর্মটি ফিরিয়ে দেয় এবং প্রস্থান করে।

    দ্রষ্টব্য। কারণ আমাদের মূল সূত্রগুলিতে ব্যবহৃত SUBSTITUTE ফাংশনটি কেস-সংবেদনশীল , উভয় ল্যাম্বডাস ( MultiReplace এবং ReplaceChars ) বড় হাতের এবং ছোট হাতের অক্ষরগুলিকে আলাদা অক্ষর হিসাবে বিবেচনা করে।

    UDF দিয়ে ব্যাপকভাবে সন্ধান করুন এবং প্রতিস্থাপন করুন

    আপনার এক্সেলে LAMBDA ফাংশন উপলব্ধ না থাকলে, আপনি VBA ব্যবহার করে একটি ঐতিহ্যগত উপায়ে বহু-প্রতিস্থাপনের জন্য একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন লিখতে পারেন।

    LAMBDA-সংজ্ঞায়িত MultiReplace ফাংশন থেকে UDF আলাদা করতে, আমরা একে আলাদাভাবে নাম দিতে যাচ্ছি, বলুন MassReplace । ফাংশনের কোডটি নিম্নরূপ:

    ফাংশন MassReplace(InputRng As Range, FindRng As Range, ReplaceRng As Range) ভেরিয়েন্ট হিসাবে () DimarRes() ভেরিয়েন্ট 'অ্যারে' ফলাফল সংরক্ষণ করতে Dim arSearchReplace(), sTmp স্ট্রিং 'অ্যারে যেখানে খুঁজে/প্রতিস্থাপন জোড়া সংরক্ষণ করতে হবে, অস্থায়ী স্ট্রিং Dim iFindCurRow, cntFindRows As Long' সূচক সার্চরিপ্লেস অ্যারের বর্তমান সারির সূচক, গণনা করুন সারিগুলির ম্লান iInputCurRow, iInputCurCol, cntInputRows, cntInputCols দীর্ঘ 'উৎস পরিসরে বর্তমান সারির সূচক, উৎস পরিসরে বর্তমান কলামের সূচী, সারিগুলির গণনা, কলামের গণনা cntInputRows = InputRng.Rongs = InputRng.Rows .Columns.Count cntFindRows = FindRng.Rows.Count ReDim arRes(1 থেকে cntInputRows, 1 থেকে cntInputCols) রিডিম করুন arSearchReplace(1 থেকে cntFindRows, 1 থেকে 2) ' iFindRow এর জন্য find/replace জোড়ার অ্যারে প্রস্তুত করা হচ্ছে iFindCurRow, 1) = FindRng.Cells(iFindCurRow, 1)।মান arSearchReplace(iFindCurRow, 2) = ReplaceRng.Cells(iFindCurRow, 1)।মান পরবর্তী ' iCnowRow = iInCownt-এর জন্য iInCownt-এর জন্য উৎস পরিসরে অনুসন্ধান এবং প্রতিস্থাপন 1 cntInputCols sTm করতে p = InputRng.Cells(iInputCurRow, iInputCurCol)। মান 'প্রতিটি কক্ষে সমস্ত ফাইন্ড/প্রতিস্থাপন জোড়া প্রতিস্থাপন করা হচ্ছে (iInputCurRow, iInputCurCol) = sTmp পরবর্তী পরবর্তী MassReplace = arRes এন্ড ফাংশন

    LAMBDA-সংজ্ঞায়িত ফাংশনের মতো, UDFগুলি হল ওয়ার্কবুক-ওয়াইড । মানে

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