MS Excel में फ़ाइल एक्सटेंशन कैसे प्राप्त करें?


10

मेरे पास एक कॉलम है जिसमें फ़ाइल पथ हैं। मैं एक और कॉलम बनाना चाहता हूं जिसमें केवल रास्तों का विस्तार है। Microsoft Excel में मैं यह कैसे कर सकता हूं?


1
जो कोई भी Google स्प्रेडशीट में यह देखना चाहता है, उसके लिए आप उपयोग कर सकते हैंREGEXEXTRACT(A1, "\.([^.]*)$")
जो

जवाबों:


20
=REPLACE(RIGHT(A1,5),1,SEARCH(".",RIGHT(A1,5)),"")

यदि फ़ाइल नाम में एक से अधिक बिंदु हैं, तो यह सूत्र wil उपयोगी होगा


2
ध्यान दें कि यह केवल फ़ाइल एक्सटेंशन के लिए काम करता है जो चार वर्ण या उससे छोटे हैं।
टिम रॉबिन्सन

1
आप बस 5 को एक 6 या जो भी हो, सही बदल सकते हैं?
डेविल्स एडवोकेट

नहीं, यह मुद्दों का कारण बनता है।
डेविल्स एडवोकेट

4

एक अन्य उत्तर से लिया गया (डॉट्स और रिक्त स्थान की तलाश में बदल गया):

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1,".","|",LEN(A1)-LEN(SUBSTITUTE(A1,".","")))))

एक इलाज काम करता है! त्वरित प्रतिलिपि / पेस्ट समाधान के लिए धन्यवाद। फ़ाइल नाम में 2 से 7 वर्ण फ़ाइल एक्सटेंशन के साथ पूर्ण पथ और नामस्थान संकेतन के साथ फ़ाइल एक्सटेंशन के लिए काम करता है।
ज़ेफन श्रोएडर

2

Cyril उत्तर केवल तभी काम करता है जब एक्सटेंशन 3 या 4 वर्ण का हो और user273281 उत्तर तब काम नहीं करता जब .फ़ाइल नाम में (पीरियड्स) थे ।

इसलिए मैंने इसे हासिल करने का एक नया तरीका निकाला,

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), ".", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))

नोट: user273281 का aswer उस मामले के लिए काम नहीं करता था जहाँ फ़ाइल का नाम था 1. Macro based file.zip। यह लौट आता है. Macro based file.zip


0

मान लें कि आपके पास अच्छी तरह से स्वरूपित एक्सटेंशन हैं, तो आप इसे जल्दी से कर सकते हैं =RIGHT(A1,3)। एक अधिक मजबूत समाधान सही के सूचकांक को ढूंढता है .और फिर शेष पात्रों को निकालता है ।


आपके प्रश्न को पढ़ना जो उत्तर मैंने दिया है।
वेरग्य

मुझे लगता है कि यहां असली सवाल यह है: सबसे सही कैसे "।" एक्सेल में।
पीटरसन

विस्तार 3 वर्णों में नहीं है। @pertersohn: हाँ, तुम सही हो।
नाम जी वीयू

0

मैं इस पार आया, जो मैंने देखा सबसे सरल उपाय है ...

=SUBSTITUTE(RIGHT(SUBSTITUTE(A5,".",REPT(".",50)),50),".","")

यह काम करता है क्योंकि यह किसी भी वर्ण को अंतिम अवधि के बाद अन्य सभी वर्णों से 50 अवधियों, या जो भी संख्या आप चुनते हैं, से अलग करता है। फिर आप यह जानकर सही 50 पात्रों का चयन कर सकते हैं कि आप अपने विस्तार वर्णों और अवधियों के एक समूह के अलावा कुछ नहीं चुन रहे हैं। अवधियों को प्रतिस्थापित करें और आप जाने के लिए तैयार हैं।

स्रोत

वैकल्पिक: XML पार्सिंग


एक साफ-सुथरी चाल जिसे मैं कभी-कभी सामान्य रूप से स्ट्रिंग पार्सिंग के लिए उपयोग करता हूं, FilterXML()फ़ंक्शन (एक्सेल 2013 और बाद में) का लाभ उठाने के लिए है । मूल रणनीति Substitute()अपने स्ट्रिंग को इस तरह से प्रारूपित करने के लिए उपयोग करना है कि यह xml स्ट्रिंग में तत्वों के पार पार्स किया गया है, और फिर आप आसानी से अपने पार्स तत्वों को नेविगेट करने के लिए xpath सिंटैक्स का उपयोग कर सकते हैं । इस रणनीति का उपयोग करते हुए, एक एक्सटेंशन प्राप्त करना इस तरह दिखेगा ...

=FILTERXML("<A><p>" & SUBSTITUTE(A1,".","</p><p>.")&"</p></A>","//p[last()]")

यदि आप xml से परिचित नहीं हैं, तो यह आपको डराने वाला लग सकता है, लेकिन यदि आप समझ सकते हैं कि क्या चल रहा है, तो मुझे यह पता चलता है कि लेन (), विकल्प () का उपयोग करके वैकल्पिक तरीकों की तुलना में याद रखना आसान है, और अधिक लचीला और आसान है। आदि यह एक अच्छा कारण है क्योंकि इसका एक कारण केवल एक सेल संदर्भ है।

अवैध वर्ण

दो वर्ण हैं जो पथों में अनुमत हैं लेकिन xml में नहीं: &और'

उपरोक्त समीकरण काम करेगा यदि ये वर्ण मौजूद नहीं हैं, अन्यथा, उन्हें कुछ इस तरह से संभालने की आवश्यकता होगी ...

=FILTERXML("<A><p>" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(J8,"'",""),"&",""),".","</p><p>.")&"</p></A>","//p[last()]")

उदाहरण

मान लें कि हमारे पास इस तरह एक गंदा फ़ाइल पथ है:

C: \ Folder1 \ Folder2 \ (बदसूरत अक्षर! @ # $% ^ () _ + = {} ;;, `) \ two.dots.LongExt

1.) Substitution()हिस्सा इसे इस तरह एक xml स्ट्रिंग में बदल देगा ...

<A>
    <p>
        C:\Folder1\Folder2\(ugly characters !@#$%^()_+={};;,`)\two
    </p>
    <p>
        .dots
    </p>
    <p>
        .txt
    </p>
</A>

2.) एक बार इस तरह से स्वरूपित करने के बाद, यह अंतिम pतत्व xpath सिंटैक्स का उपयोग करने के लिए तुच्छ है //p[last()]

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