excel - उनल - एक्सेल सूत्र और कार्यों का उदाहरण




एक्सेल को कुछ पाठ मानों को स्वचालित रूप से तिथियों में परिवर्तित करने से रोकें (20)

(एक्सेल 2003 मानते हैं ...)

टेक्स्ट-टू-कॉलम विज़ार्ड का उपयोग करते समय, चरण 3 में आप प्रत्येक कॉलम के लिए डेटा प्रकार को निर्देशित कर सकते हैं। पूर्वावलोकन में कॉलम पर क्लिक करें और "सामान्य" से "टेक्स्ट" में गलत व्यवहार कॉलम बदलें।

https://code.i-harness.com

क्या किसी को यह पता चल जाता है कि कोई टोकन है या नहीं, मैं अपने सीएसवी में किसी निश्चित फ़ील्ड के लिए जोड़ सकता हूं, इसलिए एक्सेल इसे किसी तारीख में बदलने की कोशिश नहीं करता है?

मैं अपने आवेदन से एक .csv फ़ाइल लिखने की कोशिश कर रहा हूं और मानों में से एक ऐसा लगता है कि एक्सेल स्वचालित रूप से इसे किसी तारीख से टेक्स्ट में परिवर्तित कर रहा है। मैंने डबल कोट्स के भीतर अपने सभी टेक्स्ट फ़ील्ड्स (एक तिथि की तरह दिखने वाले) को डालने का प्रयास किया है, लेकिन इसका कोई प्रभाव नहीं है।


(एक्सेल 2007 और बाद में)

स्रोत फ़ाइल को संपादित किए बिना दिनांक प्रारूपों को "पहचानने" के लिए एक्सेल को कैसे बल दें

कोई एक:

  • फ़ाइल को .txt के रूप में पुनर्नामित करें
  • यदि आप ऐसा नहीं कर सकते हैं, तो CSV फ़ाइल को एक्सेल में सीधे खोलने के बजाय, एक नई कार्यपुस्तिका बनाएं और फिर जाएं
    Data > Get external data > From Text
    और अपने सीएसवी का चयन करें।

किसी भी तरह से, आपको आयात विकल्पों के साथ प्रस्तुत किया जाएगा, बस तिथियों वाले प्रत्येक कॉलम का चयन करें और "टेक्स्ट" को "सामान्य" प्रारूप के रूप में प्रारूपित करने के लिए एक्सेल को बताएं।


अपनी सीएसवी फ़ाइल को संशोधित किए बिना आप यह कर सकते हैं:

  1. एक्सेल प्रारूप कक्ष विकल्प को "टेक्स्ट" में बदलें
  2. फिर सीएसवी कोशिकाओं को परिभाषित करने के लिए "टेक्स्ट आयात विज़ार्ड" का उपयोग करना।
  3. आयात किए जाने के बाद उस डेटा को हटा दें
  4. तो बस सादा पाठ के रूप में पेस्ट करें

एक्सेल स्वचालित रूप से प्रारूपित करेगा और आपके सीएसवी कोशिकाओं को स्वत: दिनांक प्रारूपों को अनदेखा कर स्वरूपित पाठ के रूप में अलग करेगा।

चारों ओर एक मूर्ख काम की तरह, लेकिन यह आयात करने से पहले सीएसवी डेटा संशोधित धड़कता है। एंडी बेयर और रिचर्ड इस तरह के तरीके से छेड़छाड़ की, लेकिन कुछ महत्वपूर्ण कदमों को याद किया।


एक वैकल्पिक विधि:

उस कॉलम के प्रारूप को कनवर्ट करें जिसे आप 'टेक्स्ट' में बदलना चाहते हैं। उन सभी कक्षों का चयन करें जिन्हें आप संरक्षित करना चाहते हैं, कॉपी करें। उन कॉलम को अचयनित किए बिना, "संपादित करें> विशेष पेस्ट करें> मूल्यों के रूप में" पर क्लिक करें

सीएसवी के रूप में सहेजें। ध्यान दें कि फ़ाइल के साथ यह आखिरी चीज होनी चाहिए क्योंकि जब आप इसे फिर से खोलते हैं, तो यह स्वयं को तिथियों के रूप में प्रारूपित करेगा क्योंकि सेल प्रारूपों को CSV फ़ाइलों में सहेजा नहीं जा सकता है।


चेतावनी: एक्सेल '07 (कम से कम) में एक (नोटर) बग है: यदि किसी फ़ील्ड की सामग्री में कोई अल्पविराम है, तो यह = "फ़ील्ड, सामग्री" को सही तरीके से पार्स नहीं करता है, बल्कि कॉमा के बाद सबकुछ रखता है उद्धरण चिह्नों के बावजूद निम्नलिखित क्षेत्र।

एकमात्र कामकाज जो मैंने पाया है कि काम को खत्म करना है = जब फील्ड सामग्री में अल्पविराम शामिल होता है।

इसका मतलब यह हो सकता है कि कुछ ऐसे क्षेत्र हैं जो Excel में बिल्कुल "दाएं" का प्रतिनिधित्व करना असंभव हैं, लेकिन अब तक मुझे भरोसा है कि कोई भी आश्चर्यचकित नहीं है।


जारोड के समाधान और जैफकिन्स द्वारा उठाए गए मुद्दे से काम करना, आप संशोधित कर सकते हैं

"May 16, 2011"

सेवा मेरे

"=""May 16, 2011"""

माइक्रोसॉफ्ट ऑफिस 2016 रिलीज में अभी भी एक मुद्दा है, जो कि उन लोगों के लिए परेशान है जो जीएआरएस, मार्च 1, एसईपीटी 1 आदि जैसे जीन नामों के साथ काम कर रहे हैं। समाधान में मैंने ".csv" फ़ाइल उत्पन्न करने के बाद सबसे व्यावहारिक पाया है, जिसे एक्सेल उपयोगकर्ताओं के साथ खोला / साझा किया जाएगा:

  1. सीएसवी फ़ाइल को टेक्स्ट (नोटपैड) के रूप में खोलें
  2. इसे कॉपी करें (ctrl + a, ctrl + c)।
  3. इसे एक नई एक्सेल शीट में पेस्ट करें- यह सभी एक कॉलम में लंबे टेक्स्ट स्ट्रिंग के रूप में पेस्ट करेगा।
  4. इस कॉलम को चुनें / चुनें।
  5. डेटा पर जाएं- "कॉलम पर टेक्स्ट ...", विंडो पर खुलने पर "सीमांकित" (अगला) चुनें। जांचें कि "अल्पविराम" चिह्नित है (यह चिह्नित करने से पहले डेटा को अलग-अलग कॉलम में दिखाया जाएगा) (अगला), इस विंडो में आप इच्छित कॉलम चुन सकते हैं और इसे टेक्स्ट (सामान्य के बजाए) (समाप्त) के रूप में चिह्नित कर सकते हैं।

HTH


मुझे एक ही समस्या थी और यह कामकाज है जिसने मुझे सीएसवी फ़ाइल सामग्री को संपादित किए बिना मदद की:

यदि आपके पास ".csv" के अलावा फ़ाइल को नाम देने में लचीलापन है, तो आप इसे ".txt" एक्सटेंशन, जैसे "Myfile.txt" या "Myfile.csv.txt" के साथ नाम दे सकते हैं। फिर जब आप इसे Excel में खोलते हैं (ड्रैग और ड्रॉप द्वारा नहीं, लेकिन फ़ाइल-> ओपन या सबसे हाल ही में उपयोग की जाने वाली फ़ाइलों की सूची का उपयोग करके), एक्सेल आपको "टेक्स्ट आयात विज़ार्ड" प्रदान करेगा।

विज़ार्ड के पहले पृष्ठ में, फ़ाइल प्रकार के लिए "सीमित" चुनें।

विज़ार्ड के दूसरे पृष्ठ में "," को डिलीमीटर के रूप में चुनें और टेक्स्ट क्वालीफायर भी चुनें यदि आपने उद्धरणों से अपने मूल्यों को घेर लिया है

तीसरे पृष्ठ में, प्रत्येक कॉलम को व्यक्तिगत रूप से चुनें और Excel को अपने डेटा के साथ गड़बड़ करने से रोकने के लिए "सामान्य" के बजाय प्रत्येक प्रकार "टेक्स्ट" असाइन करें।

उम्मीद है कि यह आपको या किसी ऐसी समस्या के साथ मदद करता है!


मेरे पास इस हफ्ते इस सम्मेलन में आया है, जो एक उत्कृष्ट दृष्टिकोण प्रतीत होता है, लेकिन मुझे इसे कहीं भी संदर्भित नहीं किया जा सकता है। क्या कोई इससे परिचित है? क्या आप इसके लिए एक स्रोत उद्धृत कर सकते हैं? मैंने घंटों और घंटों की तलाश नहीं की है, लेकिन उम्मीद है कि कोई इस दृष्टिकोण को पहचान लेगा।

उदाहरण 1: = ("012345678905") 012345678905 के रूप में प्रदर्शित होता है

उदाहरण 2: = ("1 9 54-12-12") 1 9 54-12-12 के रूप में प्रदर्शित होता है, 12/12/1954 नहीं।


मेरे मामले में, आर का उपयोग करके उत्पन्न सीएसवी फ़ाइल में "सितंबर 8" को एक्सेल 2013 द्वारा "8-सितंबर" में परिवर्तित कर दिया गया था। Xlsx प्रारूप में आउटपुट फ़ाइल जेनरेट करने के लिए xlsx पैकेज में write.xlsx2 () फ़ंक्शन का उपयोग करके समस्या हल हो गई थी , जिसे बिना अवांछित रूपांतरण के एक्सेल द्वारा लोड किया जा सकता है। इसलिए, यदि आपको एक सीएसवी फ़ाइल दी गई है, तो आप इसे लिखने और इसे text.xlsx2 () फ़ंक्शन का उपयोग करके xlsx में परिवर्तित करने का प्रयास कर सकते हैं।


मैंने इसी समस्या के लिए क्या किया है, प्रत्येक सीएसवी मान से पहले निम्नलिखित को जोड़ना था: "=" "" और Excel में फ़ाइल खोलने से पहले प्रत्येक CSV मान के बाद एक डबल कोट। उदाहरण के लिए निम्नलिखित मान लें:

012345,00198475

Excel में खोलने से पहले इन्हें बदला जाना चाहिए:

"="""012345","="""00198475"

ऐसा करने के बाद, प्रत्येक सेल मान एक्सेल में सूत्र के रूप में प्रकट होता है और इसलिए इसे संख्या, दिनांक इत्यादि के रूप में स्वरूपित नहीं किया जाएगा। उदाहरण के लिए, 012345 का मान इस प्रकार प्रकट होता है:

="012345"

मैंने पाया है कि डबल कोट्स से पहले '=' डालने से आप जो चाहते हैं उसे पूरा करेंगे। यह डेटा को टेक्स्ट होने के लिए मजबूर करता है।

जैसे। = "2008-10-03", = "अधिक पाठ"

संपादित करें (अन्य पदों के अनुसार) : जेफकिन्स द्वारा नोट किए गए एक्सेल 2007 बग के कारण किसी को एंड्रयू द्वारा प्रस्तावित समाधान का उपयोग करना चाहिए: "=""2008-10-03"""


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

उदाहरण: 25/12/2008 '25/12/2008 25/12/2008 बन जाता है

आयात करते समय आप फ़ील्ड प्रकार का चयन भी कर सकते हैं।


यह एकमात्र तरीका है जिसे मैं जानता हूं कि फ़ाइल के अंदर गड़बड़ किए बिना इसे कैसे पूरा किया जाए। एक्सेल के साथ सामान्य रूप से, मैंने इसे अपने सिर को घंटों तक डेस्क पर मारकर सीखा।

.csv फ़ाइल एक्सटेंशन को .txt में बदलें; यह एक्सेल को खोले जाने पर फ़ाइल को स्वतः कनवर्ट करने से रोक देगा। यहां बताया गया है कि मैं इसे कैसे करता हूं: रिक्त वर्कशीट में एक्सेल खोलें, रिक्त शीट बंद करें, फिर फ़ाइल => खोलें और अपनी फ़ाइल को .txt एक्सटेंशन के साथ चुनें। यह एक्सेल को "टेक्स्ट आयात विज़ार्ड" खोलने के लिए मजबूर करता है, जहां यह आपको प्रश्न पूछेगा कि आप फ़ाइल को कैसे समझना चाहते हैं। सबसे पहले आप अपना डिलीमीटर (कॉमा, टैब, इत्यादि ...) चुनें, फिर (यहां महत्वपूर्ण हिस्सा है) आप कॉलम के सेट कॉलम चुनते हैं और स्वरूपण का चयन करते हैं। यदि आप फ़ाइल में वास्तव में क्या चाहते हैं तो "टेक्स्ट" चुनें और एक्सेल डिलीमीटर के बीच क्या प्रदर्शित करेगा।


यह समस्या अभी भी मैक ऑफिस 2011 और ऑफिस 2013 में मौजूद है, मैं इसे रोकने से नहीं रोक सकता। ऐसा लगता है कि यह एक मूल बात है।

मेरे मामले में मेरे पास सीवीवी के भीतर "1 - 2" और "7-12" जैसे मूल्यों को उलटा कॉमा के भीतर सही ढंग से संलग्न किया गया था, यह स्वचालित रूप से एक्सेल के भीतर एक तिथि में परिवर्तित हो जाता है, यदि आप इसे बाद में केवल सादे पाठ में परिवर्तित करने का प्रयास करते हैं 43768 जैसी तारीख का एक संख्या का प्रतिनिधित्व। इसके अतिरिक्त यह बारकोड और ईएएन संख्याओं में 123 ई + संख्याओं में बड़ी संख्या में सुधार करता है जिसे वापस परिवर्तित नहीं किया जा सकता है।

मैंने पाया है कि Google ड्राइव की Google शीट संख्याओं को तारीखों में परिवर्तित नहीं करती है। बारकोड में उनमें से प्रत्येक 3 वर्णों में अल्पविराम होता है लेकिन इन्हें आसानी से हटा दिया जाता है। यह सीएवी को वास्तव में अच्छी तरह से संभालता है खासकर जब मैक / विंडोज सीएसवी से निपटता है।

कभी किसी को बचा सकता है।


यहां पेश किए गए समाधानों में से कोई भी एक अच्छा समाधान नहीं है। यह अलग-अलग मामलों के लिए काम कर सकता है, लेकिन केवल तभी जब आप अंतिम प्रदर्शन के नियंत्रण में हैं। मेरा उदाहरण लें: मेरा काम खुदरा विक्रेताओं को बेचने वाले उत्पादों की सूची तैयार करता है। यह सीएसवी प्रारूप में है और इसमें भाग-कोड शामिल हैं, उनमें से कुछ शून्य के साथ शुरू होते हैं, निर्माताओं द्वारा निर्धारित (हमारे नियंत्रण में नहीं)। प्रमुख शून्य ले लो और आप वास्तव में किसी अन्य उत्पाद से मेल खा सकते हैं। खुदरा ग्राहक बैक-एंड प्रोसेसिंग प्रोग्राम की वजह से सीएसवी प्रारूप में सूची चाहते हैं, जो हमारे नियंत्रण से बाहर हैं और प्रति ग्राहक अलग हैं, इसलिए हम सीएसवी फाइलों के प्रारूप को नहीं बदल सकते हैं। कोई prefixed '=', न ही जोड़ा टैब। कच्चे सीएसवी फाइलों में डेटा सही है; यह तब होता है जब ग्राहक एक्सेल में उन फ़ाइलों को खोलते हैं तो समस्याएं शुरू होती हैं। और कई ग्राहक वास्तव में कंप्यूटर समझदार नहीं हैं। वे सिर्फ एक ईमेल अटैचमेंट खोलने और सहेजने के बारे में सोच सकते हैं। हम दो अलग-अलग प्रारूपों में डेटा प्रदान करने के बारे में सोच रहे हैं: एक एक्सेल फ्रेंडली के रूप में (एक टैब को जोड़कर ऊपर सुझाए गए विकल्पों का उपयोग करके, दूसरा 'मास्टर' के रूप में। लेकिन यह इच्छापूर्ण सोच हो सकता है क्योंकि कुछ ग्राहक समझ नहीं पाएंगे हमें यह करने की ज़रूरत है। इस बीच हम यह बताने के लिए जारी रखते हैं कि वे कभी-कभी अपनी स्प्रेडशीट में 'गलत' डेटा क्यों देखते हैं। जब तक कि माइक्रोसॉफ्ट उचित बदलाव नहीं करता है, तब तक मुझे कोई उचित समाधान नहीं दिखता है, जब तक कि इस पर कोई नियंत्रण नहीं है कि अंत उपयोगकर्ताओं फाइलों का प्रयोग करें।


सबसे अच्छा समाधान मैंने अभी यह पता लगाया है।

  • शब्द में खोलें
  • एन डैश के साथ सभी हाइफ़न बदलें
  • सहेजें और बंद करें
  • एक्सेल में खोलें

एक बार संपादन करने के बाद, आप फिर से हाइफ़ेंस के साथ एन डैश को प्रतिस्थापित करने के लिए इसे Word में फिर से खोल सकते हैं।


सी # में मेरी सीएसवी फ़ाइल में लिखे जाने वाले स्ट्रिंग को बनाने के दौरान मुझे इसे इस तरह प्रारूपित करना था:

"=\"" + myVariable + "\""

हाय मेरे पास एक ही समस्या है,

मैं एक और सीएसवी फ़ाइल बनाने के लिए यह vbscipt लिखता हूं। नई सीएसवी फ़ाइल में प्रत्येक फ़ील्ड के फ़ॉन्ट में एक स्थान होगा, इसलिए एक्सेल इसे टेक्स्ट के रूप में समझ पाएगा।

तो आप नीचे दिए गए कोड के साथ एक .vbs फ़ाइल बनाते हैं (उदाहरण के लिए Modify_CSV.vbs), इसे सेव और बंद करें। अपनी मूल फ़ाइल को अपनी vbscript फ़ाइल में खींचें और छोड़ें । यह एक ही स्थान पर फ़ाइल नाम के लिए "SPACE_ADDED" के साथ एक नई फ़ाइल बनाएगा।

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing

डबल कोट्स में स्पेफिक्सिंग स्पेस ने इस मुद्दे को हल किया !!

मेरे पास .csv फ़ाइल कॉलम में से एक में "7/8" जैसे डेटा थे और एमएस-एक्सेल इसे "07-Aug" के रूप में परिवर्तित कर रहा था। लेकिन "लिबर ऑफिस कैल्क" के साथ कोई मुद्दा नहीं था।

इसे हल करने के लिए, मैंने बस स्पेस कैरेक्टर (7 से पहले जोड़ा गया स्पेस) पसंद किया है जैसे कि "7/8" और यह मेरे लिए काम करता है। यह एक्सेल -2007 के लिए परीक्षण किया जाता है।







import