मुझे एक एक्सएलएस सेल में अंतिम स्थान खोजने की आवश्यकता है


17

मेरे पास पाठ मानों के साथ एक एक्सेल शीट है, जैसे A1 में: "यह पाठ है"। मुझे अंतिम अंतरिक्ष चरित्र की स्थिति का पता लगाने की आवश्यकता है। क्या कोई एक्सेल फॉर्मूला है जो मुझे वह परिणाम देगा जो मैं चाहता हूं? मैंने FIND और SEARCH की कोशिश की है, हालाँकि ये बाएं से शुरू होते हैं, मुझे सही से शुरू करने की आवश्यकता है।


उसी विंटेज के बारे में क्रॉस-साइट डुप्लिकेट: stackoverflow.com/q/18617349
मैथ्यू के।

जवाबों:


28

यदि रिक्त मान से आपका मतलब "स्पेस" है, और XLS से आपका मतलब एक्सेल से है, तो आप इस फॉर्मूले का उपयोग कर सकते हैं (यह मानते हुए कि आप जिस अंतिम स्थान को ढूंढना चाहते हैं उसका परीक्षण इन A1):

=FIND("☃",SUBSTITUTE(A1," ","☃",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))

आप इसे 3 भागों में विभाजित कर सकते हैं:

  • LEN(A1)-LEN(SUBSTITUTE(A1," ",""))आपको रिक्त स्थान की संख्या देता है, आइए इसे कॉल करें x,
  • SUBSTITUTE(A1," ","☃",[x])xएक स्नोमैन द्वारा वें स्थान (इसलिए पिछले एक) को प्रतिस्थापित करेगा ,
  • FIND("☃",[...])आप स्नोमैन की स्थिति दे देंगे। जो अंतिम स्थान की स्थिति है।

सही काम करता है। धन्यवाद। मुझे यह पता लगाने में थोड़ा समय लगा कि यह आपके स्पष्टीकरण के बावजूद क्यों काम किया है :)
धीर

5
एक अच्छा, विस्तृत जवाब और सबसे रचनात्मक प्रतिस्थापन चरित्र के लिए +1।
डग ग्लैंसी

लिबर ऑफिस Calc और Google Sheets दोनों में भी काम करता है।
मैथ्यू के।

8

यहाँ एक और तरीका है, किसी भी वर्ण A1 में अनुमति दी जाती है (यहां तक ​​कि स्नोमैन भी!)

=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))

FIND एक तीसरा तर्क है जो खोज की शुरुआत की स्थिति को परिभाषित करता है, यदि आप पूर्णांक मानों की एक सरणी को n से लागू करते हैं (जहां n की लंबाई A1 है) तो उस पैरामीटर पर आपको एक सरणी वापस मिलती है जिसमें अंतिम संख्या की स्थिति होती है। अंतिम स्थान।

LOOKUPफिर किसी भी मान से अधिक मूल्य की खोज करके उस संख्या को निकालता है जो उस सरणी में पाया जा सकता है, जिस स्थिति में अंतिम संख्या पाई जाती है

Excel 2010बाद में या आप AGGREGATEइस तरह से फंक्शन का उपयोग कर सकते हैं

=AGGREGATE(14,6,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))),1)

FINDपहले की तरह 14 और 1 के तर्क के रूप में 1 का उपयोग करके रिटर्न देता है AGGREGATEऔर अंतिम के रूप में आपको सरणी में सबसे बड़ा मूल्य मिलता है, जबकि त्रुटियों को अनदेखा करते हुए [6]


1
बहुत अच्छा काम करता है। हालाँकि मैं कुछ समय पहले डेवलपर था [लेकिन] मैं अभी भी यह पता नहीं लगा सकता कि कैसे और क्यों काम करता है :)
धीर

1
मान लिया जाए कि A1 में 12 वर्ण हैं, तो यह भाग "1:"&LEN(A1)"1:12" का मूल्यांकन करता है - यह एक स्ट्रिंग है जिसे ROW प्रोसेस नहीं कर सकता है लेकिन संकेत एक स्ट्रिंग को एक वैध संदर्भ में परिवर्तित करता है जो ROW इतना ROW (1:12) को हैंडल कर सकता है, फिर आपको {1 ; २; ३; ४; ५; ६
;;;;;

स्पष्टता के लिए धन्यवाद। अब कुछ समझ में आता है। जिसका अर्थ है अपने आप को एरे के साथ काम करता है और हर मूल्य के लिए आरंभिक स्थिति के रूप में निष्पादित किया जाता है ...
धीर

यह सही है, FIND एक सरणी देता है, उदाहरण के लिए यदि A1 में है barry larry houdiniतो FIND इस सरणी को लौटाएगा {6;6;6;6;6;6;12;12;12;12;12;12;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}और LOOKUP और / या AGGREGATE उस से अंतिम / सबसे बड़ा संख्यात्मक मान लेगा, यानी 12
बैरी हुडिनी

नोट: यह LibreOffice Calc में काम करता है। यह Google पत्रक में काम नहीं करता है, इसके बजाय पहली घटना का पता लगाता है।
मैथ्यू के।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.