इस उत्तर के आधार पर , यहां एक सुरुचिपूर्ण समाधान है जो किसी भी मध्य नाम के साथ काम करता है:
=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)
सबसे सही शब्द (अंतिम नाम) के पहले दो अक्षर निकालता है।
* चेतावनी: यदि किसी उपयोगकर्ता नाम के लिए अनुगामी स्थान सम्मिलित करना संभव है, तो आपको पहले तर्क के स्थान 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)
यह अनिवार्य रूप से एकल नामों के साथ काम करने के लिए संशोधित पीटरह का समाधान है (जिस स्थिति में, परिणाम केवल नाम के पहले दो अक्षर हैं)।
नोट: पूर्व -निर्धारित सूत्र वास्तव में काम करते हैं यदि दर्ज किया गया हो।