एक्सेल स्ट्रिंग से प्रतिस्थापन निकालें


22

मैं एक स्ट्रिंग से प्रतिस्थापित एक चर लंबाई निकालने का एक तरीका ढूंढ रहा हूं।

मेरी कोशिकाएँ कुछ इस तरह दिखेंगी:

ABC - DEF
ABCDE - DEF
ABCD - ABC

मैं -चरित्र में स्ट्रिंग को विभाजित करना चाहता हूं , इसलिए कोशिकाएं बन जाएंगी:

ABC
ABCDE
ABCD

यह एक सूत्र के साथ किया जाना चाहिए और VBScript के साथ नहीं।

मैं एक्सेल 2010 का उपयोग कर रहा हूं

संपादित करें

मैंने पाया कि डेटासेट में हमेशा -चरित्र नहीं होता है , जिसका अर्थ है कि कोई परिवर्तन नहीं होना चाहिए।

जवाबों:


26

इस समस्या को दो चरणों में तोड़ा जा सकता है:

  1. अपने इच्छित विभाजन चरित्र के स्ट्रिंग में सूचकांक खोजें (इस मामले में, "-"या " - ")।
  2. मूल पाठ की शुरुआत से विभाजित सूचकांक तक उपसर्ग विकल्प प्राप्त करें।

FINDऔर SEARCHआदेश प्रत्येक एक दिया के सूचकांक वापसी होगी needleएक में haystack( FINDकेस-संवेदी है, SEARCHकेस-संवेदी है और वाइल्डकार्ड अनुमति देता है)। यह देखते हुए, हमारे पास:

FIND(search_text, source_cell, start_index)

या इस मामले में:

FIND(" - ", A1, 1)

एक बार जब हमारे पास सूचकांक होता है, तो हमें source_cell"विभाजन" करने के लिए उपसर्ग की आवश्यकता होती है । MIDबस यही करता है:

MID(source_cell, start_index, num_characters)

उन दोनों को एक साथ रखकर, हमारे पास है:

=MID(A1,1,FIND(" - ",A1,1))

A1 के साथ ABC - DEFदेता है पाठ ABC


7

अपने संपादन के आधार पर एंड्रयू के जवाब पर विस्तार: चरित्र स्ट्रिंग को विभाजित करने के लिए खोजने के लिए, हम FINDफ़ंक्शन का उपयोग कर रहे हैं । यदि FINDदी गई स्ट्रिंग का पता लगाने में विफल रहता है, तो यह एक #VALUE?त्रुटि देता है । इसलिए हमें इस मूल्य की जांच करने और इसके बदले एक स्थानापन्न मूल्य का उपयोग करने की आवश्यकता होगी।

किसी भी त्रुटि मान के लिए जाँच करने के लिए #VALUE, हम ISERRORफ़ंक्शन का उपयोग करते हैं, इस प्रकार:

=ISERROR(FIND(" - ", A1, 1))

यह सही होगा यदि FINDफ़ंक्शन A1 सेल में "-" स्ट्रिंग नहीं ढूंढ सकता है। इसलिए हम यह तय करने के लिए कि किस मूल्य का उपयोग करना है:

=IF(ISERROR(FIND(" - ", A1, 1)), A1, MID(A1, 1, FIND(" - ", A1, 1)))

यह कहता है कि यदि खोज आदेश त्रुटि देता है, तो अनमॉडिफाइड A1 सेल का उपयोग करें। अन्यथा, वह MIDकार्य करें जो एंड्रयू ने पहले से ही प्रदान किया था।


2

आपके उत्तर के लिए धन्यवाद @AndrewColeson।

तो बस उससे जोड़ने के लिए, यदि आप दाहिने हाथ की ओर सब कुछ चाहते हैं, तो -इस कोड का उपयोग करें:

= मध्य (A1, LEN (बी 1) + 3, LEN (A1))

जो है:

A1 = ABC - DEF
B1 = =MID(A1,1,FIND(" - ",A1,1))
    B1 = ABC
Therefore A1 = DEF

यदि आपके पास वर्णों की अपरिभाषित संख्या है, तो यह कोड बहुत अच्छा है -

उदाहरण के लिए:

यदि आपके पास है:

ABC - DEFG
AB - CDEFGH
...

यह =MID(a1,FIND("-",a1)+1,LEN(a1))बिना किसी "अतिरिक्त कोशिकीय" संदर्भ के भी चालबाजी करता है )
मिकी

1

Excel में टेक्स्ट स्ट्रिंग से बाईं ओर से 5 वें वर्ण को निकालने का एक बहुत ही सरल तरीका है:

मान लीजिए कि वर्ण स्ट्रिंग ABCDEFGHIJको Excel स्प्रेडशीट में सेल A1 में संग्रहीत किया गया है, तो निम्न सूत्र

=RIGHT(LEFT(A1,5),1)

स्ट्रिंग में बाईं ओर से 5 वां वर्ण बनाता है, अर्थात् E


( MIDएक्सेल में कोई फंक्शन नहीं है ? मुझे यकीन है कि यह विरासत विजुअल बेसिक में मौजूद है, और यह कुछ इस तरह होगा =MID(A1, 5, 1))
वाल्मीकि अर्कविंदस

0

निम्न सूत्र से एक सबस्ट्रिंग निकाल देगा [TEXTCOLUMN_1]

उदाहरण के लिए: यदि आप परिवर्तित करना चाहते हैं -./thumb/hello.jpgके लिए thumb/hello.jpgतो निम्न सूत्र का उपयोग

=SUBSTITUTE([TEXTCOLUMN_1],LEFT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)

[TEXTCOLUMN_1]= वह कॉलम नाम जिसे आप बदलना चाहते हैं [NUM_OF_CHARACTERS]= बाईं ओर से वर्णों की संख्या जिसे आप निकालना चाहते हैं

यदि आप दाईं ओर से हटाना चाहते हैं तो निम्नलिखित का उपयोग करें

=SUBSTITUTE([TEXTCOLUMN_1],RIGHT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.