আমি যতদূর জানি কোনও বিল্ট-ইন বৈশিষ্ট্য নেই যা এক্সেলের মধ্যে কমা-বিভাজিত ট্যাগগুলি বিশ্লেষণ ও সংক্ষিপ্ত করতে পারে। আপনি অবশ্যই কার্যপত্রক ফাংশন এবং একটি সামান্য ভিবিএ দিয়ে নিজের সমাধান তৈরি করতে পারেন। এটি করার জন্য এখানে একটি দ্রুত সমাধান।
পদক্ষেপ 1 : এক্সেলের ভিবিএ সম্পাদক ফলকটি খুলতে Alt+ টিপুন F11। একটি কাস্টম ফাংশনের জন্য একটি নতুন মডিউল andোকান এবং এই কোডটিতে পেস্ট করুন।
Public Function CCARRAY(rr As Variant, sep As String)
'rr is the range or array of values you want to concatenate. sep is the delimiter.
Dim rra() As Variant
Dim out As String
Dim i As Integer
On Error GoTo EH
rra = rr
out = ""
i = 1
Do While i <= UBound(rra, 1)
If rra(i, 1) <> False Then
out = out & rra(i, 1) & sep
End If
i = i + 1
Loop
out = Left(out, Len(out) - Len(sep))
CCARRAY = out
Exit Function
EH:
rra = rr.Value
Resume Next
End Function
এই ফাংশনটি আপনাকে আপনার যে ট্যাগ ডেটা সংক্ষিপ্ত করতে কমা-বিযুক্ত তালিকা তৈরি করতে দেয়।
পদক্ষেপ 2 : একটি কার্যপত্রকটিতে, আপনি যে ট্যাগটি সন্ধান করতে চান তাতে একটি ঘরে প্রবেশ করুন (নীচের উদাহরণে H2)। ডানদিকে কক্ষে, Ctrl+ Shift+ টিপে নিম্নলিখিত সূত্রটি প্রবেশ করান Enter।
=IFERROR(CCARRAY(IF(NOT(ISERROR(FIND(H2,$B$2:$B$6))),$A$2:$A$6),", "),"No matches found.")
Ctrl+ Shift+ টিপে Enterআপনি অ্যারে সূত্র হিসাবে সূত্রটি প্রবেশ করছেন। এটি {...}
সূত্র বারে ঘিরে প্রদর্শিত হবে । নোট করুন যে সূত্রটিতে $B$2:$B$6
তালিকাভুক্ত আইটেমগুলির জন্য সমস্ত ট্যাগ ধারণ করে এমন ব্যাপ্তি $A$2:$A$6
।
সম্পাদনা:
আপনি যদি কোনও একক সেলে তালিকার পরিবর্তে আপনার মিলগুলি কলামে তালিকাভুক্ত করতে আপত্তি না করেন তবে আপনি কেবল ওয়ার্কশিট ফাংশন ব্যবহার করে ট্যাগগুলির জন্য ম্যাচগুলি ফিরিয়ে দিতে পারেন।
কোথায় আপনার শিরোনামে হয় Column A
, ট্যাগ রয়েছে Column B
, এবং ট্যাগ তোমার জন্য অনুসন্ধান করা হয় হয় H2
, আপনি নিম্নলিখিত ব্যবহার করতে পারেন বিন্যাস সূত্র মধ্যে I2
এবং যতদূর নিচে ভরাট হিসাবে আপনি প্রয়োজন:
=IFERROR(INDEX($A$1:$A$6,SMALL(IF(NOT(ISERROR(FIND($H$2,$B$1:$B$6))),ROW($B$1:$B$6),2000000),ROW()-1)),"")
সূত্রটি প্রতিটি সারির ট্যাগগুলিতে অনুসন্ধান শব্দটি রয়েছে কিনা তার উপর ভিত্তি করে প্রথমে সংখ্যার একটি অ্যারে গঠন করে কাজ করে। যদি কোনও মিল খুঁজে পাওয়া যায়, সারি নম্বর অ্যারেতে সংরক্ষণ করা হয়। যদি এটি না পাওয়া যায় তবে 2000000 অ্যারেতে সঞ্চয় করা হয়। এরপরে, SMALL(<array>,ROW()-1)
সূত্রটির অংশটি ROW()-1
অ্যারে থেকে বৃহত্তমতম মানটি প্রদান করে। এরপরে, এই মানটি INDEX()
ফাংশনে সূচক যুক্তি হিসাবে পাস হয় , যেখানে শিরোনামের অ্যারেতে সেই সূচকের মানটি ফিরে আসে। শিরোনাম অ্যারেতে সারি সংখ্যার চেয়ে বড় সংখ্যা যদি INDEX()
আর্গুমেন্ট হিসাবে প্রেরণ করা হয় তবে একটি ত্রুটি ফিরে আসে। যেহেতু কোনও মিল খুঁজে পাওয়া যায় না 2000000 আর্গুমেন্ট হিসাবে পাস হয়েছে, একটি ত্রুটি ফিরে আসে। IFERROR()
ফাংশন তারপর ফেরৎ ""
এই ক্ষেত্রে।
ROW()
এই সূত্রটিতে কীভাবে ব্যবহৃত হচ্ছে তা উপলব্ধি করা গুরুত্বপূর্ণ । যদি আপনি আপনার ফলাফলগুলির তালিকাটি একটি ভিন্ন সারিতে শুরু করে প্রদর্শন করতে চান তবে আপনাকে SMALL()
ফাংশনের দ্বিতীয় যুক্তিটি সামঞ্জস্য করতে হবে যাতে এটি অ্যারে থেকে প্রথম ক্ষুদ্রতম মান ফেরত দেয়। উদাহরণস্বরূপ, যদি আপনার ফলাফলের তালিকাটি সারি 2 এর পরিবর্তে সারি 1 এ শুরু হয়, আপনি SMALL(...,ROW())
পরিবর্তে ব্যবহার করতে পারেন SMALL(...,ROW()-1)
।
এছাড়াও, যদি আপনার শিরোনাম এবং ট্যাগগুলির তালিকা সারি 1-এ শুরু না হয় তবে আপনাকে সূত্রটিও ঠিক করতে হবে। IF()
ফাংশনের দ্বিতীয় যুক্তিটি অবশ্যই সামঞ্জস্য করতে হবে যাতে আপনার ডেটার প্রথম সারিতে একটি ম্যাচ ফিরে আসে Eg উদাহরণস্বরূপ, যদি আপনার শিরোনামগুলির তালিকাটি সারি 1 এর পরিবর্তে সারি 2-এ শুরু হয়, তার IF(...,ROW($A$2:$A$7)-1,...)
পরিবর্তে আপনার সূত্রের প্রয়োজন হবে IF(...,ROW($A$1:$A$6),...)
।