এই উত্তরের ভিত্তিতে , এখানে একটি মার্জিত সমাধান যা বেশিরভাগ সংখ্যক মাঝারি নাম নিয়ে কাজ করে:
=LEFT(A1,2)&LEFT(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1))),2)
ব্যাখ্যা:
SUBSTITUTE(A1, " ", REPT(" ",LEN(A1)))
আন্তঃ-শব্দ স্থান (গুলি) পুরো স্ট্রিংয়ের দৈর্ঘ্যের সমান সংখ্যক স্পেসের সাথে প্রতিস্থাপন করে। একটি নির্বিচারে বড় সংখ্যার চেয়ে স্ট্রিংয়ের দৈর্ঘ্য ব্যবহার করা সূত্রটি যে কোনও দৈর্ঘ্যের স্ট্রিংয়ের জন্য কাজ করে এবং তার পক্ষে এটি এত দক্ষতার সাথে গ্যারান্টি দেয়।
RIGHT(space_expanded_string, LEN(A1))
একগুচ্ছ শূন্যস্থান দ্বারা প্রদত্ত ডানদিকের শব্দটি বের করে। *
TRIM(space_prepended_rightmost_word)
সঠিকতম শব্দটি বের করে।
LEFT(rightmost_word, 2)
ডানদিকের শব্দের প্রথম নাম দুটি (শেষ নাম) বের করে।
* সতর্কীকরণ: যদি এটা সম্ভব একটি ব্যবহারকারী নাম trailing খালি জায়গা থাকা করার জন্য, আপনি প্রথম আর্গুমেন্ট প্রতিস্থাপন করা প্রয়োজন SUBSTITUTE()
, অর্থাত্ A1
সঙ্গে, TRIM(A1)
। শব্দের মধ্যে নেতৃস্থানীয় স্পেস এবং একাধিক একটানা ফাঁকা স্থান ঠিক সঠিকভাবে পরিচালনা করা হয় A1
।
আপনার প্রচেষ্টা স্থির করা
আপনার চেষ্টা করা সমাধানটি ঘনিষ্ঠভাবে পর্যবেক্ষণ করে দেখে মনে হচ্ছে আপনি প্রথম শব্দের প্রথম দুটি অক্ষর (অর্থাত্ প্রথম নাম) এবং দ্বিতীয় শব্দের প্রথম দুটি অক্ষর যদি বিদ্যমান থাকে তবে আপনি একটি কার্যকারী সূত্রের খুব কাছাকাছি ছিলেন ।
মনে রাখবেন যে কোনও ব্যবহারকারীর নাম যদি মাঝের নাম ধারণ করে থাকে তবে সংশোধিত সূত্রটি ভুলভাবে প্রথম নামটির পরিবর্তে প্রথম নামটির পরিবর্তে প্রথম দুটি অক্ষর ধরে ফেলবে (ধরে নিলে আপনার উদ্দেশ্য প্রকৃতপক্ষে এটিকে শেষ নাম থেকে বের করা হবে)।
এছাড়াও, সমস্ত ব্যবহারকারীর নাম যদি কেবল একটি প্রথম নাম, বা একটি প্রথম নাম এবং একটি শেষ নাম থাকে তবে সূত্রটি অযথা জটিল এবং সহজতর করা যায়।
সূত্রটি কীভাবে কাজ করে এবং এটি সংশোধন করে তা দেখার জন্য, এটি প্রাকদৃষ্টির মতো করা যদি সহজ হয় তবে:
=
LEFT(A1,2) &
MID(
A1,
IFERROR(FIND(" ",A1), LEN(A1)) + 1,
IFERROR(
FIND(" ", SUBSTITUTE(A1," ","",1)),
LEN(A1)
)
- IFERROR(FIND(" ",A1), LEN(A1))
)
এটি কীভাবে কাজ করে তা বোঝার জন্য প্রথমে নজর রাখুন যখন A1
কোনও শূন্যস্থান নেই ( তখন এটি কেবলমাত্র একটি একক নাম ধারণ করে) তখন কী ঘটে । সকল IFERROR()
ফাংশন যেহেতু তাদের দ্বিতীয় আর্গুমেন্ট মূল্যায়ন FIND()
একটি আয় #VALUE!
ত্রুটি যদি অনুসন্ধান স্ট্রিং লক্ষ্য স্ট্রিং মধ্যে পাওয়া হয়:
=
LEFT(A1,2) &
MID(
A1,
LEN(A1) + 1,
LEN(A1)
-LEN(A1)
)
MID()
শূন্যের মূল্যায়নের তৃতীয় যুক্তি , সুতরাং ফাংশন আউটপুট ""
এবং সূত্রের ফলাফলটি একক নামের প্রথম দুটি অক্ষর।
এখন দেখুন যখন ঠিক দুটি নাম রয়েছে (অর্থাত্ ঠিক এক স্থান আছে)। প্রথম এবং তৃতীয় IFERROR()
ফাংশনগুলি তাদের প্রথম আর্গুমেন্টের মূল্যায়ন করে তবে দ্বিতীয়টি তার দ্বিতীয় তর্কটিকে মূল্যায়ন করে যেহেতু FIND(" ", SUBSTITUTE(A1," ","",1))
প্রথমটি সরিয়ে দেওয়ার পরে অন্য একটি স্থান সন্ধান করার চেষ্টা করছে এবং কেবলমাত্র একটি:
=
LEFT(A1,2) &
MID(
A1,
FIND(" ",A1) + 1,
LEN(A1)
- FIND(" ",A1)
)
স্পষ্টতই, সম্পূর্ণরূপে MID()
দ্বিতীয় শব্দটি (অর্থাত্ শেষ নাম) প্রদান করে এবং সূত্রের ফলাফলটি প্রথম নামের প্রথম দুটি অক্ষর এবং তার পরে সর্বশেষ নামের সমস্ত অক্ষর।
সম্পূর্ণতার জন্য আমরা কমপক্ষে তিনটি নাম রয়েছে এমন ক্ষেত্রেও নজর দেব, যদিও সূত্রটি কীভাবে ঠিক করা যায় এটি এখন সুস্পষ্টভাবে হওয়া উচিত। এবার, সমস্ত IFERROR()
ফাংশন তাদের প্রথম যুক্তিগুলির মূল্যায়ন করে:
=
LEFT(A1,2) &
MID(
A1,
FIND(" ",A1) + 1,
FIND(" ", SUBSTITUTE(A1," ","",1))
- FIND(" ",A1)
)
এটি আগের ক্ষেত্রে এর চেয়ে কিছুটা কম স্পষ্ট, তবে MID()
পুরো দ্বিতীয় শব্দটি (যেমন প্রথম মাঝের নাম )টি দেয়। সুতরাং সূত্রের ফলাফলটি প্রথম নামের প্রথম দুটি অক্ষর এবং তারপরে প্রথম মাঝের নামের সমস্ত অক্ষর।
স্পষ্টতই, ফিক্সটি হ'ল আউটপুটটির LEFT()
প্রথম দুটি অক্ষর পাওয়ার জন্য MID()
:
=
LEFT(A1,2) &
LEFT(
MID(
A1,
IFERROR(FIND(" ",A1), LEN(A1)) + 1,
IFERROR(
FIND(" ", SUBSTITUTE(A1," ","",1)),
LEN(A1)
)
- IFERROR(FIND(" ",A1), LEN(A1))
),
2
)
উপরে বর্ণিত সরলকরণটি এর LEFT(MID(…,…,…), 2)
সাথে প্রতিস্থাপন করা MID(…,…,2)
:
=
LEFT(A1,2) &
MID(
A1,
IFERROR(FIND(" ",A1), LEN(A1)) + 1,
2
)
বা এক লাইনে:
=LEFT(A1,2)&MID(A1,IFERROR(FIND(" ",A1),LEN(A1))+1,2)
এটি মূলত পিটারএইচ এর সমাধানটি একক নাম নিয়ে কাজ করার জন্যও পরিবর্তিত হয়েছে (যার ক্ষেত্রে ফলাফলটি কেবল নামের প্রথম দুটি অক্ষর)।
দ্রষ্টব্য: পূর্বনির্ধারিত সূত্রগুলি প্রবেশ করানো হলে আসলে কাজ করে।