প্রথম নাম থেকে প্রথম দুটি বর্ণ এবং সর্বশেষ নাম থেকে প্রথম দুটি বর্ণের সংমিশ্রণ


9

আমার ব্যবহারকারীর নামের একটি স্প্রেডশিট রয়েছে।

প্রথম এবং শেষ নামগুলি কলামের একই কক্ষে রয়েছে A

এমন একটি সূত্র আছে যা প্রথম নামের প্রথম অক্ষর (প্রথম শব্দ) এবং শেষ নামের প্রথম অক্ষর (দ্বিতীয় শব্দ) প্রথম দুটি অক্ষরকে একত্রিত করবে?

উদাহরণস্বরূপ John Doe, হয়ে উঠতে হবে JoDo

আমি চেষ্টা করেছিলাম

=LEFT(A1)&MID(A1,IFERROR(FIND(" ",A1),LEN(A1))+1,IFERROR(FIND(" ",SUBSTITUTE(A1," ","",1)),LEN(A1))-IFERROR(FIND(" ",A1),LEN(A1)))

তবে এটি আমাকে JoDoeফলাফল হিসাবে দেয় ।



উত্তরগুলির কোনও কৌশল কী? (যদি তা হয় তবে আপনি দয়া করে পোস্টের বাম চেক চিহ্নটি ক্লিক করে উত্তর হিসাবে পতাকাঙ্কিত করতে পারেন))
ব্রুস ওয়াইন

উত্তর:


15

হ্যাঁ; ধরে নিলাম প্রতিটি ব্যক্তির কেবল একটি প্রথম এবং শেষ নাম রয়েছে এবং এটি সর্বদা একটি স্থান দ্বারা পৃথক করা হয় আপনি নীচেরটি ব্যবহার করতে পারেন:

=LEFT(A1,2)&MID(A1,SEARCH(" ",A1)+1,2)

আমি এই উত্তরটি কেবলমাত্র সেই অনুমানগুলির ভিত্তিতেই করতে পারি কারণ এটি আপনার সরবরাহকৃত সমস্ত।

অথবা আপনি যদি চান যে একটি স্থান এখনও অন্তর্ভুক্ত করা যায়:

=LEFT(A1,2)&" "&MID(A1,SEARCH(" ",A1)+1,2)

2
@ প্রোবিক কোনও প্রোব নেই, এটি আপনার পক্ষে যদি সঠিকভাবে কাজ করে তবে তা সঠিক হিসাবে গ্রহণ করুন
পিটারএইচ

সমাধানটি বোঝার জন্য সবচেয়ে সহজ এবং সহজ। (আচ্ছা, ;-) এর FIND()পরিবর্তে ব্যবহার ব্যতীত SEARCH()) যেহেতু আপনি ধরে =LEFT(A1,2)&MID(A1,SEARCH(" ",A1),3)
নিচ্ছেন

4
@ রাজেশ আমি জানি। সে কারণেই আমার উত্তরটি শুরু হয়assuming each person only has a First and Last name
পিটারএইচ

2
নাম সম্পর্কে মিথ্যা প্রোগ্রামাররা বিশ্বাস করে ; আপনার সফ্টওয়্যারটির আন্তর্জাতিক না পৌঁছানো এই সমস্ত ঘটনাগুলি হস্তক্ষেপে পরিচালনা করা বুদ্ধিমানের কাজ নয়
অ্যারন

1
আমি TRIM(LEFT(A1,2))তাদের পরামর্শ দিচ্ছি যদি কেবলমাত্র তাদের প্রথম নামটিতে একটি চিঠি থাকে তবে ম্যানুয়ালি সেই বিশেষ ক্ষেত্রেগুলির জন্য এটি পরীক্ষা করা যথেষ্ট সহজ হতে পারে।
ইঞ্জিনিয়ার টোস্ট

11

এবং বিষয়গুলি বের করে দেওয়ার জন্য, এখানে এমন একটি সমাধান রয়েছে যা প্রথম নামের প্রথম দুটি অক্ষর এবং শেষ নামের প্রথম দুটি অক্ষর ফেরৎ দেবে, তবে মাঝের নামগুলির জন্যও দায়ী।

=LEFT(A1,2)&LEFT(MID(A1,FIND("~~~~~",SUBSTITUTE(A1," ","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+1,LEN(A1)),2)

এখানে চিত্র বর্ণনা লিখুন

সূত্রের মূল অংশটির জন্য @ কাইলকে ধন্যবাদ


1
আপনি আমাকে এতে মারধর করেছেন ;-) (এটি গভীর মধ্যরাত হয়ে গেছে এবং আমার ঘুম হওয়া দরকার - এটি আমার উত্তরটি পরে যুক্ত করার পরিকল্পনা করছিল)) আপনার সূত্রে সামান্য উন্নতি হবে ~চারটির পরিবর্তে একটি একক ব্যবহার করা । আপনি যদি উদ্বিগ্ন হন যে কোনও টিল্ডা নামের (!) অংশ হিসাবে ব্যবহার করা যেতে পারে বা সম্ভবত ঘটনাক্রমে টাইপ করা হয়েছে, কেবল এমন একটি অক্ষর ব্যবহার করুন যা কোনও কীবোর্ডে উপস্থিত না হয়। আমি ব্যবহার করতে পছন্দ §অন্য একটি ভাল।
রবিন্টগুলি

@ ব্রুস ওয়াইন ,, আপনার সূত্রটি আরও দক্ষ ,,, যেহেতু এটি কেবল ফার্টস অ্যাক্সেস করছে এবং শেষ নামটি মধ্য নামটি উপেক্ষা করে, ,, ভোট দিয়েছে ☺
রাজেশ এস

@ রাজেশ স্প্যানিশ নামযুক্ত লোকদের সম্পর্কে , যেমন প্রাক্তন এফ 1 ড্রাইভার ফার্নান্দো আলোনসো দাজ যার 1 নাম, 2 নাম এবং কোনও মাঝের নাম নেই? (অথবা কিং কিং ফিলিপ জুয়ান পাবলো আলফোনসো দে টডোস লস সান্তোস দে
বোর্বান


1
@robinCTS - ভাল কল! আমি আর একটি উত্তর থেকে সূত্রটি পেয়েছি (সম্পাদিত), এবং সত্যিই খুব বেশি গভীর খনন করিনি। টিপস জন্য ধন্যবাদ!
ব্রুসওয়েেন

9

এটি অন্য উপায় ...

ওয়ার্কশিটের স্ক্রিনশট

  • একটি নাম
  • খ - =CONCATENATE(LEFT(A1,2),LEFT(RIGHT(A1,(LEN(A1)-FIND(" ",A1))),2))

আপনি আরও এগিয়ে যেতে পারেন এবং মার্জ করে এই সমস্ত অতিরিক্ত কলামগুলি মুছে ফেলতে পারেন=CONCATENATE(LEFT(A1,2),LEFT(RIGHT(A1,(LEN(A1)-FIND(" ",A1))),2))
পিটারএইচ

হ্যাঁ, আমি কয়েক মুহুর্ত পরে তা করেছি!
স্টিস

হ্যাঁ, আমি উত্তরটি আপনি সম্পাদনা করেছেন, ভাল উত্তর!
পিটারএইচ

5

প্রথমে, আমি বলতে চাই পিটারএইচের উত্তরটি বোঝা সহজ এবং সহজ eas (যদিও এর FIND()পরিবর্তে আমার পছন্দটি ব্যবহার করা SEARCH()- দুটি কম অক্ষর টাইপ করা আরএসআই এড়াতে সহায়তা করে ;-))

বিকল্পের উত্তর যা না ব্যবহার করে MID(), LEFT()বা না করে RIGHT()পরিবর্তে REPLACE()নামের অবাঞ্ছিত অংশগুলি সরিয়ে ফেলতে ব্যবহার করে:

=REPLACE(REPLACE(A1,FIND(" ",A1)+3,LEN(A1),""),3,FIND(" ",A1)-2,"")

ব্যাখ্যা:

অভ্যন্তরীণ REPLACE(A1, FIND(" ",A1)+3, LEN(A1), "")শেষ নামের তৃতীয় অক্ষর থেকে অক্ষরগুলি অপসারণ করে, বাইরেরটি প্রথম নামের তৃতীয় অক্ষর থেকে অক্ষর এবং স্থান সহ অপসারণ করে।REPLACE(inner_replace, 3, FIND(" ",A1)-2, "")


সংযোজন 1:

উপরের সূত্রটি একক মাঝারি নামকে অনুমোদনের জন্যও রূপান্তর করা যেতে পারে:

=REPLACE(REPLACE(A1,IFERROR(FIND(" ",A1,FIND(" ",A1)+1),FIND(" ",A1))+3,LEN(A1),""),3,IFERROR(FIND(" ",A1,FIND(" ",A1)+1),FIND(" ",A1))-2,"")

প্রতিস্থাপন FIND(" ",A1)সঙ্গে IFERROR(FIND(" ",A1,FIND(" ",A1)+1), FIND(" ",A1))

FIND(" ", A1, FIND(" ",A1)+1)দ্বিতীয় স্থান আবিষ্কার করে (প্রথম স্থানের পরে স্থানটির সন্ধান শুরু করে) বা অন্যথায় ত্রুটি। দ্বিতীয় স্থান না থাকলে প্রথম স্থানটি সন্ধান করে।
IFERROR(find_second_space, FIND(" ",A1))


এই (দীর্ঘায়িত) সংস্করণটি মধ্যম নামের যে কোনও সংখ্যার জন্য অনুমতি দেয়:

=REPLACE(REPLACE(A1,FIND("§",SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+3,LEN(A1),""),3,FIND("§",SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-2,"")

এই ক্ষেত্রে FIND(" ",A1)সঙ্গে প্রতিস্থাপন করা হয় FIND("§", SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))

LEN(A1)-LEN(SUBSTITUTE(A1," ",""))স্পেসের সংখ্যা গণনা করে। এর সাথে শেষ স্থানটি প্রতিস্থাপন করে । প্রথমটি খুঁজে বের করে যা শেষ স্থান সন্ধানের সমান।
SUBSTITUTE(A1, " ", "§", count_of_spaces)§
FIND("§", last_space_replaced_string)§

( §অবশ্যই, পুরো নামের স্ট্রিংয়ের অস্তিত্বের নিশ্চয়তা নেই এমন কোনও অক্ষরের সাথে প্রতিস্থাপন করা যেতে পারে A আরও সাধারণ, নিরাপদ বিকল্পটি ব্যবহার করা হবে CHAR(1)))


মনে রাখবেন যে, অবশ্যই ব্রুস ওয়েনের উত্তরটি সহজ এবং সহজ সমাধানটি বোঝার জন্য যা কোনও সংখ্যক মাঝারি নামকে মঞ্জুরি দেয়। ভাল ছিল। আমি আমার অন্য উত্তর পোস্ট না করা পর্যন্ত , এটি ;-)


সংযোজন 2:

সমাধানগুলির সমস্তগুলি কেবলমাত্র কোনও একক ক্ষেত্রে (যদি চারটি চরিত্রের ফলাফলের প্রয়োজন হয়) কেবল তেমন কোনও IFERROR()কার্যের মধ্যে আবদ্ধ করে তা পূরণ করতে অভিযোজিত হতে পারে :

=IFERROR(solution, alternate_formula)

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

=LEFT(A1,2)&MID(A1,IFERROR(SEARCH(" ",A1)+1,LEN(A1)-1),2)


কোনও একক অক্ষরের প্রথম নাম বা প্রাথমিকের ক্ষেত্রে (কোনও স্থান বা বিন্দুটিকে দ্বিতীয় অক্ষর হিসাবে গ্রহণযোগ্য নয় বলে ধরে নেওয়া হয়) ক্ষেত্রে কোনও সমাধানের সাথে নিম্নলিখিত ব্যবহার করা যেতে পারে:

=SUBSTITUTE(SUBSTITUTE(solution, " ", single_char), ".", single_char))

মনে রাখবেন যে একক অক্ষরটি হয় হার্ড-কোডড বা নাম থেকে গণনা করা যেতে পারে। (বা ""স্থান বা বিন্দু অপসারণ করতে ব্যবহার করুন ))


শেষ অবধি, যদি পুরো ক্ষেত্রে কেবলমাত্র একমাত্র অক্ষর (!) হয় তবে সেই ক্ষেত্রে যদি আপনার সত্যিকারের প্রয়োজন হয় তবে কেবলমাত্র একা-নাম-সূত্রটি অন্যটির সাথে জড়ানIFERROR() । (অবশ্যই ধরে নিই যে বিকল্প সূত্রটি বিশেষ বিশেষ ক্ষেত্রে যত্ন নেয় না।)


সংযোজন 3:

অবশেষে, অবশেষে (না, সত্যিই * ;-)) একাধিক টানা এবং / অথবা নেতৃস্থানীয় / পিছনে স্থানগুলি পূরণের TRIM(A1)পরিবর্তে ব্যবহার করুন A1


* আমি পাঠকের জন্য অনুশীলন হিসাবে মিঃ টি এর মতো একটি একক বর্ণের শেষ নামটি রেখে দেব leave

ইঙ্গিত: =solution &IF(MID(A1,LEN(A1)-1,1)=" ", single_char, "")


1
সর্বদা আপনার উত্তরগুলি দেখে মনে হচ্ছে এগুলি এক্সেলের উন্নত ব্যবহারকারী গাইড থেকে এসেছে! আপনি আগে পোস্ট করলে এটি শীর্ষ ভোট প্রাপ্ত উত্তর হতে পারে!
পিটারএইচ

@ পিটারএইচ পরিপূরক জন্য ধন্যবাদ। হট নেটওয়ার্ক প্রশ্নগুলির তালিকায় একবার হিট হয়ে গেলে আমি কেবল প্রশ্নটি
ঘুরে দাঁড়ালাম

2

এই উত্তরের ভিত্তিতে , এখানে একটি মার্জিত সমাধান যা বেশিরভাগ সংখ্যক মাঝারি নাম নিয়ে কাজ করে:

=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)

এটি মূলত পিটারএইচ এর সমাধানটি একক নাম নিয়ে কাজ করার জন্যও পরিবর্তিত হয়েছে (যার ক্ষেত্রে ফলাফলটি কেবল নামের প্রথম দুটি অক্ষর)।


দ্রষ্টব্য: পূর্বনির্ধারিত সূত্রগুলি প্রবেশ করানো হলে আসলে কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.