Excel VBA দিয়ে আপনার Vlookups স্বয়ংক্রিয় করতে শিখুন

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

Vlookup Excel এর মধ্যে একটি অপরিহার্য ফাংশন এবং এটি ডেটা প্রক্রিয়াকরণের একটি গুরুত্বপূর্ণ অংশ হয়ে উঠেছে। এটি এমন কিছু কার্যকারিতা প্রদান করে যা আপনি সাধারণত একটি পূর্ণ-বিকশিত ডাটাবেসের সাথে যুক্ত করতে পারেন।





কিন্তু যদি আপনি এই ফাংশন স্বয়ংক্রিয় করতে চান? হ্যাঁ, এটা সম্ভব, বিশেষ করে যদি আপনি এক্সেলের নেটিভ অটোমেশন ল্যাঙ্গুয়েজ VBA ব্যবহার করতে জানেন। এখানে আপনি কিভাবে এক্সেল VBA তে ভলুকআপ ফাংশন স্বয়ংক্রিয় করতে পারেন।





দিনের মেকইউজের ভিডিও

ভ্লুকআপের সিনট্যাক্স

Vlookup ফাংশনের সিনট্যাক্সটি বেশ সহজ, তবে এটির চারটি দিক রয়েছে যা আপনাকে অবশ্যই ফোকাস করতে হবে, এমনকি এটি Excel VBA তে স্বয়ংক্রিয় করার সময়ও।





 =vlookup(lookup_value, lookup_array, column_index, exact_match/partial_match)

ফাংশনের আর্গুমেন্টগুলির নিম্নলিখিত অর্থ রয়েছে:

  • দেখার মূল্য: এটি হল প্রাথমিক মান যা আপনি লুকআপ অ্যারে থেকে দেখতে চান।
  • lookup_array: এটি হল উৎস ডেটা, যা lookup_value একটি রেফারেন্স হিসাবে ব্যবহার করবে।
  • column_index: যে কলাম থেকে মান ফেরত দিতে হবে।
  • exact_match/partial_match: ম্যাচের ধরন নির্ধারণ করতে 0 বা 1 ব্যবহার করুন।

ডেটা প্রস্তুতি

এই ডেটাসেটের দুটি অংশ রয়েছে: একটি লুকআপ টেবিল এবং গন্তব্য ডেটা পয়েন্ট।



উপ-শ্রেণি এবং পণ্যের নাম ক্ষেত্রগুলিকে পূর্ণ করে ডেটা সহ লুকআপ টেবিলে তিনটি কলাম রয়েছে:

  MS Excel-এ প্রাক-জনবহুল সারি সহ ডেটা টেবিল

গন্তব্য সারণীতে কোনো উপ-বিভাগ বা পণ্যের নামের ডেটা ছাড়াই মিলিত কলাম রয়েছে। লক্ষ্য করুন যে এর অর্ডার আইডি কলামের মানগুলিও লুকআপ টেবিলের একই কলামে উপস্থিত রয়েছে:





  একটি এক্সেল স্প্রেডশীটে মান দেখুন

এক্সেল স্প্রেডশীটে সরাসরি Vlookup ব্যবহার করা

গন্তব্য কলাম, B এবং C পূরণ করতে, আপনি করতে পারেন এক্সেলের ভলুকআপ ফাংশন ব্যবহার করুন .

কোষে B2 , নিম্নলিখিত সূত্র লিখুন:





 =VLOOKUP($A2, $F:$H, 2, 0)

একইভাবে, কোষে C2 , এই সূত্র লিখুন:

 =VLOOKUP($A2, $F:$H, 3, 0)

আপনি কলামের শেষ পর্যন্ত B17 সেল B2 থেকে সূত্রটি নিচে টেনে আনতে পারেন। কলাম C এর জন্যও এই প্রক্রিয়াটি পুনরাবৃত্তি করুন। প্রতিটি পরবর্তী এন্ট্রির মান উভয় কলামে স্বয়ংক্রিয়ভাবে আপডেট হবে।

vlookup ফাংশনে আপনি যে মানগুলি পাস করেন তা হল:

  • A2 : লুকআপ মান এই ঘরে রয়েছে।
  • F3:H17 : এটি লুকআপ পরিসীমা নিয়ে গঠিত।
  • 23 : যে রেফারেন্স কলাম থেকে মান আনতে হবে।
  • 0 : একটি সঠিক মিল নির্দেশ করে।

এক্সেল VBA এর Vlookup ফাংশন

vlookup ফাংশনের অনেক মিল রয়েছে আপনি এটি সরাসরি এক্সেল বা VBA এর মাধ্যমে ব্যবহার করছেন। আপনি ডেটার সারি নিয়ে কাজ করা একজন ডেটা বিশ্লেষক বা ইনভেন্টরি ম্যানেজার যিনি নিয়মিত নতুন পণ্য নিয়ে কাজ করেন না কেন, আপনি vlookup ব্যবহার করে উপকৃত হতে পারেন।

একটি ডায়নামিক লুক-আপ রেঞ্জের সাথে কাজ করার সময়, এক্সেলের মধ্যে বারবার সূত্র প্রয়োগ করা এড়াতে আপনার সূত্রগুলিকে স্বয়ংক্রিয় করা সর্বদা ভাল৷ VBA তে আপনার Vlookup ফাংশন স্বয়ংক্রিয় করে, আপনি একটি একক ক্লিকে বহু-কলাম গণনা করতে পারেন।

1. প্রয়োজনীয় সেটআপ সম্পাদন করুন

কোডিং সম্পাদক খোলার মাধ্যমে শুরু করুন (টিপুন Alt + F11 অথবা নেভিগেট করুন বিকাশকারী ট্যাব) একটি নতুন এক্সেল ওয়ার্কবুকে এবং আপনার কোড লেখা শুরু করতে একটি মডিউল যোগ করুন। কোড এডিটরের মধ্যে, একটি সাব-রুটিন তৈরি করতে কোডিং উইন্ডোর শীর্ষে নিম্নলিখিত লাইনগুলি যোগ করুন:

  Sub vlookup_fn1()End Sub

সাব-রুটিন আপনার VBA কোডের জন্য একটি ধারক এবং এটি সফলভাবে চালানোর জন্য গুরুত্বপূর্ণ। একটি বিকল্প হল একটি VBA ব্যবহারকারী ফর্ম তৈরি করুন আপনার UI আরও ইন্টারেক্টিভ করতে।

2. আপনার ভেরিয়েবল ঘোষণা করুন এবং আপনার রেফারেন্স রেঞ্জ তৈরি করুন

প্রথমত, আপনাকে ব্যবহার করে ভেরিয়েবল ডেটা টাইপ ঘোষণা করতে হবে আবছা বিবৃতি:

  Dim i as integer, lastrow as long

পরবর্তী, একটি তৈরি করুন শেষ সারি পরিবর্তনশীল, আপনার লুকআপ রেঞ্জের মধ্যে শেষ জনবহুল সারির মান সংরক্ষণ করতে। lastrow ফাংশন ব্যবহার করে শেষ (xldown) নির্দিষ্ট পরিসরের মধ্যে শেষ সারি রেফারেন্স গণনা করার ফাংশন।

এই ক্ষেত্রে, লাস্টরো ভেরিয়েবল লুকআপ রেঞ্জের শেষ জনবহুল সারি মান সংরক্ষণ করে, 17।

  lastrow = Sheets("Sheet2").Range("F3").End(xlDown).Row

উপরের উদাহরণে, গন্তব্য টেবিল থেকে প্রসারিত হয় A2:C17 , যখন উত্স টেবিল থেকে প্রসারিত F2:H17 . vlookup সূত্রটি কলাম A এর মধ্যে সংরক্ষিত প্রতিটি মান লুপ করবে, এটিকে উত্স টেবিলের মধ্যে দেখবে এবং কলাম B এবং C-তে মিলিত এন্ট্রিগুলি পেস্ট করবে।

যাইহোক, লুপে জাম্প করার আগে, আপনাকে অবশ্যই একটি নতুন ভেরিয়েবলের মধ্যে পরিসরের মানগুলি সংরক্ষণ করতে হবে ( আমার_পরিসর ), নিম্নরূপ:

  my_range = Sheets("Sheet2").Range("F3:H" & lastrow)

আপনাকে অবশ্যই স্পষ্টভাবে প্রারম্ভিক সেল রেফারেন্স ( F3 ) এবং শেষ কলাম রেফারেন্স ( এইচ ) VBA স্বয়ংক্রিয়ভাবে লুকআপ অ্যারে সম্পূর্ণ করতে সারি মান যুক্ত করে।

  একটি VBA সম্পাদক উইন্ডোতে VBA কোড

3. প্রতিটি লুকআপ মানের মাধ্যমে সাইকেল করার জন্য একটি লুপ লিখুন

লুপ লেখার আগে, প্রারম্ভিক সারি মান নির্ধারণ করুন, 2 . আপনার লুপের জন্য একটি প্রারম্ভিক মান সংজ্ঞায়িত করা অপরিহার্য কারণ আপনি গতিশীল উপাদানগুলির সাথে কাজ করছেন। গন্তব্য টেবিলে, সারি 2 হল ডেটার প্রথম সারি। আপনার ডেটা অন্য সারিতে শুরু হলে এই মানটি পরিবর্তন করুন।

  i = 2

আপনি একটি ব্যবহার করতে পারেন যখন না প্রতিটি সারি প্রক্রিয়া করার জন্য লুপ করুন, সারি 2 থেকে শুরু করে 17 সারিতে শেষ হয়। বাকি কোডের মতো, এই দিকটি গতিশীল; শর্ত মিথ্যা না হওয়া পর্যন্ত লুপ চলবে। বর্তমান সারির প্রথম ঘরে একটি অ-খালি মান পরীক্ষা করতে শর্তটি ব্যবহার করুন।

  Do While len(Sheets("Sheet2").Cells(i, 1).value) <> 0

লুপের ভিতরে, আপনি কোষগুলি পূরণ করতে VLookup ফাংশনকে কল করতে পারেন:

ইলাস্ট্রেটারে কিভাবে ইমেজকে ভেক্টরে রূপান্তর করা যায়
  Sheets("Sheet2").Cells(i, 2).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 2, False)Sheets("Sheet2").Cells(i, 3).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 3, False)

এই বিবৃতিগুলি বর্তমান সারিতে ঘরের মান যথাক্রমে 2 এবং 3 কলামে সেট করে। তারা ব্যবহার ওয়ার্কশীট ফাংশন কল করতে আপত্তি VLookup ফাংশন, অনুসন্ধান করতে কলাম 1 থেকে সংশ্লিষ্ট মান পাস করে। তারা আপনার পূর্বে সংজ্ঞায়িত পরিসীমা এবং প্রাসঙ্গিক কলামের সূচী থেকে চূড়ান্ত মান আনতে পাস করে।

vlookup কোড প্রস্তুত, কিন্তু আপনাকে এখনও লুপের চারপাশে প্রতিবার সারি পরিবর্তনশীল বাড়াতে হবে:

  i = i + 1

প্রতিবার লুপ চালানোর সাথে সাথে এর মান বৃদ্ধি পায় i 1 দ্বারা। মনে রাখবেন, প্রারম্ভিক সারির মান হল 2, এবং প্রতিবার লুপ চালানোর সময় বৃদ্ধি ঘটবে। ব্যবহার লুপ লুপের কোড ব্লকের শেষ সেট করতে কীওয়ার্ড।

আপনি যখন পুরো কোডটি চালান, তখন এটি উত্স টেবিলের মানগুলির উপর ভিত্তি করে উভয় কলামে ফলাফলগুলিকে পপুলেট করবে।

  এক্সেল স্প্রেডশীটে ট্যাবুলার আউটপুট

এখানে রেফারেন্সের জন্য সম্পূর্ণ কোড:

  Sub vlookup_fn1() Dim i As Integer lastrow = Sheets("Sheet2").Range("F3").End(xlDown).Row my_range = Sheets("Sheet2").Range("F3:H" & lastrow) i = 2 Do While Len(Sheets("Sheet2").Cells(i, 1).Value) <> 0 On Error Resume Next Sheets("Sheet2").Cells(i, 2).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells(i, 3).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 3, False) i = i + 1 LoopEnd Sub

4. কোড চালানোর জন্য একটি বোতাম তৈরি করুন

কোড আউট হয়ে গেলে, আপনি আপনার এক্সেল ওয়ার্কবুকে একটি বোতাম তৈরি করতে পারেন যাতে এটি একক ক্লিকে চালানো যায়। একটি ফাঁকা এক্সেল শীটে আপনার পছন্দের আকৃতি ঢোকান, এটিতে ডান-ক্লিক করুন এবং ক্লিক করুন ম্যাক্রো বরাদ্দ করুন বিকল্প

  এক্সেল স্প্রেডশীটে বিকল্পগুলির একটি তালিকা সহ আয়তক্ষেত্র বোতাম

ডায়ালগ বক্সের মধ্যে, আপনার সাব-রুটিনের নাম নির্বাচন করুন এবং ক্লিক করুন ঠিক আছে .

  একটি এক্সেল স্প্রেডশীটে ম্যাক্রো বক্স খোলা

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

লুকআপ ফাংশন স্বয়ংক্রিয় করতে এক্সেল VBA ব্যবহার করে

এক্সেল ভিবিএ হল একটি নমনীয় ভাষা, যা এমএস এক্সেলের বিভিন্ন দিকগুলির মধ্যে অটোমেশনকে সহজ করার দিকে ভালভাবে সুরক্ষিত। MS Excel VBA-তে এক্সেল ফাংশন স্বয়ংক্রিয়করণ থেকে শুরু করে স্বয়ংক্রিয়ভাবে বিস্তৃত পিভট টেবিল তৈরি করা পর্যন্ত অনেকগুলি বিকল্প বিদ্যমান।

বিভিন্ন এক্সেল সেগমেন্টের সাথে কাজ করার সময়, আপনি আপনার জীবনকে সহজ এবং আরও দক্ষ করার জন্য বিভিন্ন বিকল্পের সাথে পরীক্ষা করতে পারেন।