Microsoft Excel-এ কখনো কখনো আমাদের যেকোনো ওয়ার্কশিট থেকে অন্য ওয়ার্কশিটে ভিন্ন শর্তের ভিত্তিতে রো কপি করতে হয়। এই আর্টিকেলে আমি এক্সেলে শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে রো কপি করার বিভিন্ন উপায় দেখাব।
প্র্যাকটিস ওয়ার্কবুক ডাউনলোড করুন
আপনি ওয়ার্কবুকটি ডাউনলোড করে প্র্যাকটিস করতে পারেন।
এক্সেলে শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে রো কপি করার ৬টি পদ্ধতি
আপনি এক্সেলে রো কপি করার ছয়টি খুব সহজ পদ্ধতি খুঁজে পাবেন। সেগুলো সব খুবই উপযোগী। আপনি আপনার কাজ पूरा করতে যেকোনো একটি বেছে নিতে পারেন। আরও দেরি না করে, প্রতিটি পদ্ধতিটি আলাদা আলাদা بررسی করি শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে রো কপি করতে এক্সেলে।
১. এক্সেল ফিল্টার অপশন ব্যবহার করে একটি শীট থেকে অন্য শীটে রো কপি করুন
এই প্রক্রিয়া প্রদর্শনের জন্য একটি ডেটাসেট বিবেচনা করি কিছু ফলের সাথে তাদের ইউনিট প্রাইস, ওজন, এবং টোটাল প্রাইস। এই পুরো টেবিল আমাদের ওয়ার্কবুকে Filter Op. নামক শীটে সংরক্ষিত। এখন, আমরা Filter Op.- থেকে রো কপি করব এবং Result1 শীটে সংরক্ষণ করব, Filtering এবং Copying অপশন ব্যবহার করে।

ধাপগুলো:
- প্রথমে ডেটা সিলেক্ট করুন।
- দ্বিতীয়, রিবনে থেকে Data ট্যাবে যান।
- তৃতীয়, Sort & Filter গ্রুপের অধীনে Filter অপশনে ক্লিক করুন।

- ইচ্ছিত কলাম সিলেক্ট করুন যেটিতে রো কপি করতে চান। এখানে আমি Fruits কলাম সিলেক্ট করেছি।
- তারপর সেই রো সিলেক্ট করুন যা আপনি এই ওয়ার্কশিট থেকে কপি করতে চান। উদাহরণস্বরূপ এখানে Mango রো সিলেক্ট করেছি। শুধু সিলেক্টেড আইটেমের রো কপি হবে। আপনি যদি এই কলামের সব রো কপি করতে চান তবে Select All অপশন সিলেক্ট করতে পারেন।

- ডেটা সিলেক্ট করে Ctrl+C চাপে পুরো ডেটা Copy করুন।

- নিচে প্লাস (+) চিহ্নে ক্লিক করে নতুন ওয়ার্কশিট তৈরি করুন অথবা কীবোর্ড শর্টকাট SHIFT+F11 ব্যবহার করুন।
- নতুন ওয়ার্কশিট Result1-এ Ctrl+V চাপে কপি করা ডেটা Paste করুন।
- শেষে, সিলেক্টেড সব ডেটা Filter Op. থেকে Result1-এ কপি হয়েছে।

আরও পড়ুন: এক্সেল VBA: সেল ভ্যালু কপি করে অন্য সেলে পেস্ট করা
২. অ্যাডভান্সড ফিচার ব্যবহার করে একটি শীট থেকে অন্য শীটে রো ডুপ্লিকেট করুন
এই প্রক্রিয়া দেখানোর জন্য আমরা মেথড ১-এ দেখানো একই উদাহরণ বিবেচনা করব। কিন্তু এখানে আমি Advanced Filter ব্যবহার করব Sheet3 থেকে Sheet4-এ রো কপি করার জন্য। এবং আমাদের টেস্টিং ক্রাইটেরিয়া হবে যেসব ফল যাদের টোটাল প্রাইস ১৫০ এর বেশি। তাই আমরা Sheet3 থেকে Sheet4-এ রো কপি করব যেখানে টোটাল প্রাইস ১৫০-এর বেশি।
ধাপগুলো:
- শুরুতে, Result1.1 শীটে যান এবং Data ট্যাবে Advanced সিলেক্ট করুন।

- তারপর Copy to another location অপশন সিলেক্ট করুন।

- তারপর List range বক্স চুজ করুন এবং Advanced শীটে যান এবং পুরো ডেটাসেট কপি করুন।

- আরও, Criteria range সেল পিক করুন।

- এখন, Copy to অপশন সিলেক্ট করুন যা আটোমেটিক্যালি Result1.1 শীটে শিফ্ট হবে, এবং সেই ওয়ার্কশিটের যেকোনো সেল সিলেক্ট করুন।

- পরবর্তী, Ok বাটন চাপুন।

- এভাবে, উললিখিত শর্তের ভিত্তিতে শীট Advanced থেকে Result1.1-এ রো কপি হবে।

আরও পড়ুন: এক শীট থেকে অন্য শীটে কপি ও পেস্ট করার ম্যাক্রো (১৫ মেথড)
৩. অ্যারে ফর্মুলা ব্যবহার করে একটি শীট থেকে অন্য শীটে রো কপি করুন
এক শীট থেকে অন্য শীটে রো কপি করার আরেকটি উপায় হলো অ্যারে ফর্মুলা ব্যবহার করা। অ্যারে ফর্মুলা ব্যবহার করে আমরা কপি প্রক্রিয়া অটোমেট করতে পারব। এই প্রক্রিয়া দেখানোর জন্য উপরের একই ডেটাসেট বিবেচনা করি কিন্তু এক্সট্রা একটি কলাম আছে Shop Names। এখন আমরা Shop Names অনুযায়ী এক শীট থেকে অন্য শীটে রো কপি করব। সব ওয়ার্কশিটের নামই তাদের Shop Name হবে।

আমাদের লক্ষ্য হবে রোগুলো তাদের Shop Names অনুযায়ী একটি নতুন ওয়ার্কশিটে কপি করা।
ধাপগুলো:
- শুরুতে Shop Names-এর সাথে নতুন ওয়ার্কশিটগুলো তৈরি করুন।

- তারপর যেকোনো নতুন ওয়ার্কশিট যেমন Rooted-এ যান। তারপর সেল B4 সিলেক্ট করুন এবং নিচের ফর্মুলা লিখে CTRL+SHIFT+ENTER চাপুন। আপনি যদি MS Excel 365 ব্যবহার করেন তবে শুধু Enter চাপুন।
=IFERROR(INDEX(Sheet7!$A$4:$E$100,SMALL(IF(Sheet7!$F$4:$F$100=$F$3,ROW(Sheet7!$A$4:$B$100)-ROW(Sheet7!$B$4)+1),ROWS(Sheet7!$A$4:$B4)),COLUMN()),"")
ফর্মুলা ব্যাখ্যা
এই ফর্মুলায় কিছু এক্সেল ফাংশন ব্যবহার করা হয়েছে। এখানে আমি অ্যারে ফর্মুলায় ব্যবহৃত সব ফাংশন আলোচনা করব।
ROWS(array)
ROWS ফাংশন একটি অ্যারে বা সেল রেঞ্জের রেফারেন্স নিয়ে আমাদের দেওয়া রেঞ্জ অনুযায়ী রেফারেন্স বা অ্যারেতে সারি সংখ্যা রিটার্ন করে।
COLUMN([reference])
COLUMN ফাংশন-এর প্যারামিটারে সেল রেফারেন্স পাস করে আমরা আমাদের দেওয়া সেল রেফারেন্স অনুযায়ী নির্দিষ্ট কলাম নম্বর পাব।
SMALL(array, n)
SMALL ফাংশন ব্যবহার করে আমরা যেকোনো নির্দিষ্ট অ্যারেতে nতম ক্ষুদ্রতম মান নির্ণয় করতে পারি। সাধারণত প্যারামিটারের প্রথম অংশ ডেটাসেট বা অ্যারের রেঞ্জ ধারণ করে এবং দিতীয় অংশ অ্যারে বা ডেটা রেঞ্জে পছন্দসই পজিশন ধারণ করে যেখান থেকে এই ফাংশন রিটার্ন করবে।
INDEX(array, row_num, [column_num])
আমরা যে আরেকটি ফাংশন ব্যবহার করেছি তা হলো INDEX ফাংশন। এই ফাংশন প্যারামিটারে অংশ রয়েছে। প্রথম অংশে এটি আমাদের পছন্দসই ডেটা রেঞ্জ বা অ্যারে নেয় যা আবশ্যক। দ্বিতীয় অংশে এটি সারি নম্বর নেয় যেখান থেকে ভ্যালু রিটার্ন করতে চায়। শেষে, কলাম নম্বর অংশ ঐচ্ছিক, এটি আবশ্যক নয়। আমরা অ্যারেতে যেকোনো নির্দিষ্ট কলাম নম্বর ভ্যালু পাস করতে পারি যেখান থেকে ভ্যালু রিটার্ন করবে।
IFERROR(value, value_if_error)
এটি আমাদের অ্যারে ফর্মুলায় ব্যবহৃত শেষ ফাংশন যা হলো IFERROR ফাংশন বা আউটারমোস্ট ফাংশন। এটি মূলত একটি কন্ডিশনাল ফাংশন যা চেক করে আমাদের দেওয়া ভ্যালু এরর ভ্যালুর সমান কিনা। প্রথম অংশে এটি ইনপুট ভ্যালু নেয় এবং চেক করে ভ্যালুটি যদি এরর ভ্যালু হয় তবে প্যারামিটারের দিতীয় অংশ রিটার্ন করে।
- আরও, ফর্মুলা নিচে এবং ডানে কপি করুন টোটাল ম্যাচ হওয়া রো পেতে।

- অন্য ওয়ার্কশিটগুলোতেও একইভাবে করুন।

- আপনি Array Formula শীটে যেকোনো ভ্যালু চেঞ্জ করে চেক করতে পারেন যে ভ্যালু অটোমেটিক্যালি চেঞ্জ হচ্ছে কিনা।

- Rooted ওয়ার্কশিটে যান এবং পরিবর্তনগুলো দেখুন।

আরও পড়ুন: এক্সেল VBA শর্ত অনুযায়ী রো অন্য ওয়ার্কশিটে কপি করা
সদৃশ পাঠ্য:
- এক্সেলে বিকল্প রো কপি করার ৪ উপায়
- [ফিক্সড]: এক্সেলে রাইট ক্লিক কপি পেস্ট কাজ না করলে (১১ সমাধান)
- ফিল্টার সহ এক্সেলে রো কপি করার ৬ দ্রুত মেথড
- খোলা ছাড়া অন্য ওয়ার্কবুক থেকে ডেটা কপি করার এক্সেল VBA
- এক্সেলে একাধিক সেল অন্য শীটে কপি করার ৯ মেথড
৪. কম্বাইনড ফাংশন ব্যবহার করে রো ডুপ্লিকেট করুন
আরেকটি উপায় দেখি যাতে রো অন্য ওয়ার্কশিটে অটোমেটিক্যালি দেখায়। এই মেথডের জন্য মেথড ৪-এ ব্যবহৃত একই ডেটাসেট বিবেচনা করব। এখন আমরা ফলগুলোর লিস্ট তাদের Shop Names অনুযায়ী সর্ট করব এবং চেক করব Total Price $130-এর বেশি কিনা। যদি আমরা শুধু ড্রপ-ডাউন লিস্ট থেকে যেকোনো Shop Name সিলেক্ট করে Enter চাপি তবে সব ম্যাচ হওয়া রো Functions শীট থেকে কপি হয়ে Result2 শীটে দেখা যাবে।

ধাপগুলো:
- প্রথমে, Functions শীটের G5 সেল সিলেক্ট করুন এবং নিচের ফর্মুলা লিখুন:
=IF(AND(F4=Sheet15!$C$1,E4>=130),MAX(G$1:G2)+1,"-")- তারপর কীবোর্ড থেকে Enter কী চাপুন।

- ফিল হ্যান্ডেল আইকন নিচে টেনে রেঞ্জে ফর্মুলা ডুপ্লিকেট করুন। অথবা, রেঞ্জ AutoFill করতে প্লাস (+) চিহ্নে ডাবল-ক্লিক করুন।

- শেষে, আমরা ফলাফল দেখতে পাচ্ছি।

ফর্মুলা ব্যাখ্যা
এখানে আমি বিভিন্ন এক্সেল ফাংশন ব্যবহার করেছি। নিচে প্রতিটি ফাংশনের ডিটেইলস দেওয়া হলো:
MAX(number1, [number2], ...)
MAX ফাংশন তার প্যারামিটারে নম্বর নিয়ে তাদের মধ্যে সর্বোচ্চ মান রিটার্ন করে।
AND (logical1, [logical2], ...)
AND ফাংশন একটি লজিক্যাল ফাংশন যা তার প্যারামিটারে দুটি বা অধিক লজিক্যাল কন্ডিশন নেয় এবং সকল কন্ডিশন পূরণ হলে True রিটার্ন করে। অন্যথায় False রিটার্ন করে।
IF (logical_condition, [value_if_true], [value_if_false])
এটি আরেকটি কন্ডিশনাল ফাংশন যা এক্সেলে IF ফাংশন, যা লজিক্যাল কন্ডিশন নিয়ে কন্ডিশন True নাকি False অনুযায়ী ভ্যালু রিটার্ন করে।
- আরও, Result2 শীটে যান এবং সেল B7-এ ফর্মুলা লিখুন।
=IFERROR(INDEX(Sheet14!F:F,MATCH(ROWS($1:1),Sheet14!$G:$G,0))&"","")- Enter কী চাপুন।

ফর্মুলা ব্যাখ্যা
এখানে শুধু MATCH ফাংশন নতুন যা আমরা এতক্ষণ ব্যবহার করেছি।
MATCH(lookup_value, lookup_array, [match_type])
MATCH ফাংশন-এ, প্যারামিটারের প্রথম অংশ লুকআপ ভ্যালু হিসেবে ব্যবহৃত হয় যা হলো वह ভ্যালু যা আমরা সার্চ বা খুঁজতে চাই। পরবর্তী অংশে সেলের অ্যারে রেঞ্জ থাকে যেখানে আমরা লুকআপ ভ্যালু সার্চ করব এবং শেষে ম্যাচ টাইপ হলো -1, 0, 1 ভ্যালু যা ডিফাইন করে এক্সেল কীভাবে lookup_value কে lookup_array-এ ভ্যালুসের সাথে ম্যাচ করবে।
- আরও, অ্যারে নিচে এবং ডানে কপি করুন।
- এখন, যেকোনো Shop Name সিলেক্ট করুন এবং এটি Shop Name এবং Fruit নাম দেখাবে যখন ম্যাচ হওয়া Shop Names ফলের Total Price $130-এর বেশি হবে।

আরও পড়ুন: এক্সেল VBA: অন্য ওয়ার্কবুকে রেঞ্জ কপি করা
৫. এক্সেল FILTER ফাংশন ব্যবহার করে একটি শীট থেকে অন্য শীটে রো কপি করুন
আপনি আপনার দেওয়া ক্রাইটেরিয়া অনুযায়ী ডেটার varitety ফিল্টার করতে FILTER ফাংশন ব্যবহার করতে পারেন। এই ফাংশন ব্যবহার করে শর্ত অনুযায়ী এক শীট থেকে অন্য শীটে রো কপি করার প্রসিডিউর ফলো করুন। আমরা নিচের ডেটাসেট ব্যবহার করব। FILTER শীট থেকে ডেটা নেয়া হবে এবং Result3 শীটে কপি করা হবে।

ধাপগুলো:
- প্রথমে, আমরা ফলাফল দেখাতে চাইলে সেল সিলেক্ট করি।
- এবং সেই সেলে ফর্মুলা ইনসার্ট করি। আমাদের কেসে, সেলটি হলো Result3 শীটের B5।
=FILTER(FILTER!B4:F14,FILTER!F4:F14="Rooted")- আরও, কীবোর্ড থেকে Enter কী চাপুন।
- এবং, এটাই হলো! শর্ত পূরণ করা সব রো FILTER শীট থেকে Result3 শীটে কপি হবে।

৬. এক্সেল VBA অ্যাপ্লাই করুন একটি শীট থেকে অন্য শীটে রো কপি করার জন্য
এখানে আমি আগের উদাহরণের মতো একই কাজ করব, কিন্তু VBA ব্যবহার করে। আমরা শীট VBA থেকে শীট Result4-এ যেসব ফলের টোটাল প্রাইস ১৫০-এর বেশি সেসব ফলের লিস্ট পাব একটি কমান্ড বাটনে ক্লিক করে। চলুন দেখি এক্সেলে শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে রো কপি করার ধাপগুলো।
ধাপগুলো:
- প্রথমে, Developer ট্যাবে যান।
- তারপর, Insert অপশনের অধীনে ActiveX Control সিলেক্ট করুন।

- বাটনের ক্যাপশন এবং ফন্ট Properties অপশন ব্যবহার করে চেঞ্জ করুন।

- বাটনে ক্লিক করুন, এটি আপনাকে VBA উইন্ডোতে নিয়ে যাবে. নিচের কোড লিখুন:
Code:
Private Sub CommandButton1_Click() a = Worksheets("VBA").Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To a If Worksheets("VBA").Cells(i, 4).Value > 150 Then Worksheets("VBA").Rows(i).Copy Worksheets("Result4").Activate b = Worksheets("Result4").Cells(Rows.Count, 1).End(xlUp).Row Worksheets("Result4").Cells(b + 1, 1).Select ActiveSheet.Paste Worksheets("VBA").Activate End If Next Application.CutCopyMode = False ThisWorkbook.Worksheets("VBA").Cells(1, 1).Select End Sub
- তারপর, RubSub বাটনে ক্লিক করে কোড রান করুন অথবা কীবোর্ড শর্টকাট F5 চাপুন। অথবা বাটনে ক্লিক করুন।

VBA কোড ব্যাখ্যা
এখানে কোডের গুরুত্বপূর্ণ লাইনগুলো ব্যাখ্যা করা হলো।
- আমরা VBA শীট থেকে টোটাল রো নম্বর কাউন্ট করছি এবং ভেরিয়েবল a-তে স্টোর করছি।
- IF কন্ডিশন ব্যবহার করে প্রতিটি ফল রোয়ের Total Price চেক করছি।
- আবার, Result4 শীটের রো নম্বর কাউন্ট করি এবং ভেরিয়েবল b-তে স্টোর করি।
- b-র মান ইনক্রিমেন্ট করে ম্যাচ হওয়া ভ্যালুগুলো সিলেক্ট করছি।
- তারপর, VBA-এর Run বাটনে ক্লিক করুন।
- শেষে, শীট Result4-এ যান তাহলে এক্সেলে শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে কপি হওয়া রো দেখতে পাবেন।

আরও পড়ুন: এক্সেলে রো অটোমেটিক্যালি অন্য শীটে কপি করার ৪ মেথড
উপসংহার
উপরোক্ত পদ্ধতিগুলো এক্সেলে শর্ত অনুযায়ী একটি শীট থেকে অন্য শীটে রো কপি করতে সাহায্য করবে। আমি সব পদ্ধতিই তাদের উদাহরণসহ দেখিয়েছি। আপনার যদি এই কাজের অন্য কোনো পদ্ধতি থাকে তবে দয়া করে আমাদের সাথে শেয়ার করুন।
সম্পর্কিত আর্টিকেল
- এক্সেলে অন্য সেল থেকে টেক্সট ডিসপ্লে করার ৪ উপযুক্ত উপায়
- দুই এক্সেল শীট কমপেয়ার করে ডিফারেন্স কপি করার VBA কোড
- ভিবিএ ব্যবহার করে শুধু ভ্যালু পেস্ট করার উপায় ফরম্যাটিং ছাড়া এক্সেলে
- এক্সেলে কপি পেস্ট কাজ না করলে (৯ কারণ ও সমাধান)
- ম্যাক্রো ব্যবহার করে এক্সেলে একাধিক রো কপি করার ৪ উদাহরণ