सूत्रों में दिनांक पैटर्न के लिए OS क्षेत्रीय सेटिंग्स का उपयोग करने के लिए एक्सेल को कैसे रोकें


21

इस प्रश्न के अनुसार मुझे निम्नलिखित समस्या है:

मैं TEXT (A1, {date_pattern}) जैसे कुछ एक्सेल फ़ंक्शन (सेल स्वरूपण नहीं) का उपयोग करना चाहता हूं

लेकिन जो व्यक्ति मेरे पिछले सवाल का जवाब देता है, वह मुझे यह बताता है कि विंडोज रीजनल सेटिंग्स के अनुसार डेट पैटर्न बदल जाता है।

हालांकि, मेरा ओएस (विंडोज 7) अंग्रेजी और ऑफिस सुइट में भी है। मेरी क्षेत्रीय सेटिंग्स को देखकर यह अंग्रेजी नोटेशन (dd.MM.yyyy) का उपयोग करके भी एक पैटर्न दिखाता है

प्रदेश और भाषा

मैं यह जानना चाहता हूं कि क्या एक्सेल से इस तरह के व्यवहार को अक्षम करने का कोई तरीका है, जिसका अर्थ है कि मैं हमेशा अंग्रेजी पैटर्न का उपयोग करना चाहता हूं और कभी भी स्थानीय लोगों का उपयोग नहीं करना चाहता क्योंकि मैं नहीं चाहता हूं कि मेरी एक्सेल शीट का व्यवहार पाठक के स्थानीयकरण के अनुसार बदल जाए।

एक साधारण मामला कुछ दिनांक फ़ील्ड को कंप्यूटर केंद्रित तरीके से पुन: स्वरूपित कर रहा होगा: "yyyymmdd_hhss" यह सार्वभौमिक रूप से मान्यता प्राप्त है और इसे आसानी से ऊपर और नीचे क्रमबद्ध किया जा सकता है। लेकिन जैसा कि मैं स्विट्जरलैंड के फ्रांसीसी हिस्से में हूं, मुझे "aaaammjj_hhss" लिखना चाहिए और अगर मैं इस एक्सेल को ज़्यूरिख में किसी सहकर्मी को भेजता हूं, तो वह उचित तारीख नहीं देख पाएगा क्योंकि उसे स्विस जर्मन स्थानीयकरण मिला था (उसका एक्सेल की उम्मीद होगी) "jjjjmmtt_hhss")

हम अंग्रेजी में सभी विंडो और कार्यालय स्थापित करने के लिए पर्याप्त चतुर थे लेकिन हम अभी भी इस तरह की समस्या का सामना कर रहे हैं क्योंकि यह ओएस क्षेत्रीय सेटिंग्स के लिए लिंक है।

मेरे लिए Windows सेटिंग्स बदलना एक विकल्प नहीं है क्योंकि अन्य सभी प्रोग्राम इस सेटिंग्स का उपयोग कर रहे हैं।


4
मुझे विश्वास नहीं हो रहा है कि यह एक्सेल पर भी संबोधित किया गया है। इस व्यवहार के साथ दस्तावेज़ का परिणाम पूरी तरह से फ़ाइल खोलने वाले कंप्यूटर पर निर्भर है, जिससे कंप्यूटर के आधार पर फ़ाइल की सामग्री बदल जाती है। कंप्यूटर में दशमलव मानों के लिए डॉट्स (?) और फ़ार्मुलों का उपयोग करके मूल रूप से कॉमा (,) का उपयोग करते हुए एक फ़ाइल खोलने पर मुझे इस मुद्दे के साथ आया, और सूत्रों ने गलत परिणाम दिया ...
AxeEffect

जवाबों:


26

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

अपनी कार्यपुस्तिका को खोलने के साथ, बस Alt + F11 दबाएं (VBA संपादक को खोलने के लिए) फिर मेनू आइटम पर क्लिक करें सम्मिलित करें > मॉड्यूल नए VBA मॉड्यूल में, निम्न दर्ज करें:

Public Function FMT$(ByVal Value, ByVal strFormat)
    FMT = VBA.Format$(Value, strFormat)
End Function

यह क्या करता है बस Formatएक्सेल के TEXTफ़ंक्शन के बजाय VBA के स्वयं के फ़ंक्शन का उपयोग करें । यह वही है जो आप चाहते हैं।

यह नया फ़ंक्शन आपके द्वारा निर्दिष्ट प्रारूप के अनुसार किसी भी दिनांक (या संख्या) को प्रारूपित करेगा। यह ऑपरेटिंग सिस्टम की क्षेत्रीय सेटिंग्स की परवाह किए बिना मानक ( एन-यूएस ) संकेतन का उपयोग करके प्रारूप स्ट्रिंग की व्याख्या करेगा ।

अपनी कार्यपुस्तिका में इसका उपयोग करने के लिए, =FMT(A1, "yyyymmdd_hhss")इसके बजाय बस टाइप करें =TEXT(A1, "yyyymmdd_hhss")। (बेशक आप सेल संदर्भ और प्रारूप स्ट्रिंग को आवश्यकतानुसार बदल सकते हैं।)

वैसे, आप जो चाहें फ़ंक्शन को नाम दे सकते हैं। मैंने चुना FMTक्योंकि यह कम था और क्योंकि फ़ंक्शन संख्या और दिनांक दोनों को प्रारूपित कर सकता है। लेकिन आप चाहें तो कुछ और वर्णनात्मक चुन सकते हैं। बस अपनी कार्यपत्रक में उसी नाम का उपयोग करना याद रखें जैसे VBA कोड में।

ध्यान दें कि VBA प्रारूप के तार एक्सेल के कस्टम प्रारूप के तार के समान नहीं हैं (उदाहरण के लिए, मिनटों के लिए "m" के बजाय "n" का उपयोग करें), लेकिन वे बहुत समान हैं। यहाँ देखो जानकारी के लिए, या "स्वरूप फंक्शन (अनुप्रयोगों के लिए विजुअल बेसिक)" के लिए खोज MSDN। विभिन्न दिनांक प्रारूप निर्दिष्टकर्ताओं को देखने के लिए नीचे की ओर स्क्रॉल करें।

विधि 2

एक अन्य दृष्टिकोण जो VBA का भी उपयोग करता है, लेकिन वास्तव में इसे बनाए रखना आसान हो सकता है, निम्नलिखित है:

  1. सामान्य सेल प्रारूप संवाद का उपयोग करके, सेल में अपना वांछित दिनांक प्रारूप लागू करें। यह सेल एक छिपी हुई शीट पर हो सकती है यदि आप पसंद करते हैं - तो इसे अंतिम-उपयोगकर्ता को प्रदर्शित करने की आवश्यकता नहीं है। मान लें कि आपने प्रारूप yyyymmdd\_hhssको सेल पर लागू कर दिया है $ A $ 1 (ध्यान दें कि अंडरस्कोर को दिखाए जाने से बच जाना चाहिए)।
  2. जोड़ें GetFormatअपनी कार्यपुस्तिका में VBA मॉड्यूल में फ़ंक्शन (नीचे दिखाया गया) ।
  3. दर्ज =GetFormat($A$1, TRUE)एक और सेल में (उदाहरण के लिए $ B $ 1 )
  4. वह फ़ंक्शन स्वरूप स्ट्रिंग का स्थानीयकृत संस्करण लौटाएगा । तो भले ही आपने मूल रूप से $ A $ 1 के साथ प्रारूपित किया हो yyyymmdd\_hhss, जब आप फ्रेंच भाषा (उदाहरण के लिए) का उपयोग करते हुए कंप्यूटर पर कार्यपुस्तिका खोलते हैं, तो फ़ंक्शन दिखाई देगाaaaammjj\_hhss
  5. अब बस अपने सभी TEXTकार्यों में दूसरी सेल का संदर्भ लें । उदाहरण के लिए:=TEXT(F22, $B$1) :।

यहाँ VBA कोड है:

Public Function GetFormat$(Cell As Range, Optional ByVal UseLocal As Boolean)
    If UseLocal Then
        GetFormat = Cell.NumberFormatLocal
    Else
        GetFormat = Cell.NumberFormat
    End If
End Function

यह हमें उस सेल का "निरीक्षण" करने की अनुमति देता है जिसे आपने स्थानीय स्वरूपित-स्ट्रिंग को पुनः प्राप्त करने के लिए मूल रूप से स्वरूपित किया ($ A $ 1)। वह स्ट्रिंग आपके द्वारा लागू किए गए उसी प्रारूप का प्रतिनिधित्व करेगा, लेकिन यह TEXT के लिए सही अक्षरों का उपयोग करके व्याख्या करेगा (उदाहरण के लिए "d" के बजाय "j"), इसलिए तिथियों का प्रदर्शित मूल्य सभी स्थानों पर स्थिर रहेगा। यदि आप अपनी संपूर्ण कार्यपुस्तिका के लिए केवल एक दिनांक स्वरूप का उपयोग करना चाहते हैं, तो आपको केवल 1-4 चरण एक बार करने की आवश्यकता होगी। फिर चरण 5 (TEXT फ़ंक्शन) को उन सभी कक्षों में दोहराएं जहां आप वर्तमान में इसका उपयोग करते हैं, लेकिन एक प्रारूप को हार्ड-कोडिंग करने के बजाय, आप बस उस सेल का संदर्भ लेंगे जिसमें स्थानीय स्वरूप-स्ट्रिंग ( $ B $ 1) है उदाहरण के निर्देशों में ) है ।

ध्यान दें कि GetFormatफ़ंक्शन को बताने के लिए दूसरा तर्क स्थानीय संस्करण (जो क्षेत्रीय सेटिंग्स पर निर्भर करता है) या "मानक" संस्करण (जो हमेशा एन-यूएस पर आधारित है) को वापस करने या नहीं करने के लिए कहता है।

यहाँ कुछ स्क्रीन-शॉट्स हैं जो इसे और अधिक स्पष्ट कर सकते हैं।

en-US

  • चित्र में, कॉलम 1 विभिन्न स्वरूपों के साथ एकल तिथि के कई अभ्यावेदन को सूचीबद्ध करता है।
  • ध्यान दें कि पंक्तियाँ 2 और 3 एक्सेल के "सिस्टम डिफॉल्ट" तिथि स्वरूपों का उपयोग करती हैं। (ये प्रारूप डायलॉग में एक प्रमुख तारांकन द्वारा दर्शाए गए हैं और वे इंगित करते हैं कि उपयोगकर्ता की डिफ़ॉल्ट तिथि प्रारूप का उपयोग किया जाना चाहिए।) यह भी ध्यान दें कि पंक्ति 5 एक ब्रैकेट LCID का उपयोग करता है, जो महीने और दिन के नाम के लिए उपयोग की जाने वाली भाषा को अंग्रेजी में मजबूर करता है ( अन्य भाषाओं को निर्दिष्ट करने के लिए विभिन्न LCID का उपयोग किया जा सकता है)।
  • दूसरा कॉलम GetFormat(Cell, FALSE)कॉलम 1 में प्रत्येक सेल के लिए परिणाम दिखाता है । ( FALSEदूसरे पैरामीटर के लिए फ़ंक्शन को गैर-स्थानीयकृत वापस करने के लिए फ़ंक्शन का कारण बनता है स्वरूपों है)।
  • तीसरा कॉलम GetFormat(Cell, TRUE)कॉलम 2 में प्रत्येक सेल के लिए क्या रिटर्न दिखाता है (यानी स्थानीय प्रारूप)।
  • चौथा स्तंभ मूल, कच्ची तिथि मान और कॉलम 1 में दिखाए गए प्रारूप को फिर से तैयार करने के स्थानीय परिणाम का उपयोग करके TEXT फ़ंक्शन का परिणाम GetFormatदिखाता है। नोट हालांकि इस कॉलम में कोई संख्या स्वरूपण लागू नहीं किया गया था। मान TEXT फ़ंक्शन का प्रत्यक्ष परिणाम हैं।

ऊपर दिए गए अंग्रेजी (यूएस) मामले के परिणाम बहुत दिलचस्प नहीं हैं, लेकिन आप उनकी तुलना निम्नलिखित परिणामों से कर सकते हैं जो मेरे ऑपरेटिंग सिस्टम की क्षेत्रीय सेटिंग्स को विभिन्न अन्य स्थानों पर बदलकर प्राप्त किए गए थे। महत्वपूर्ण रूप से, ध्यान दें कि हम सभी के GetFormatसाथ संयोजन में उपयोग करके TEXTसभी स्थानों पर संख्यात्मक स्वरूपों (जो दिन या महीने के नाम शामिल नहीं हैं) के लिए एक निरंतर परिणाम बनाए रखने में सक्षम हैं। और एक LCID (पंक्ति 5 के रूप में) का उपयोग करके भाषा को बाधित करके हम दिन और महीने के नाम के साथ-साथ जब भी एक निरंतर प्रारूप बनाए रख सकते हैं।

fr-CH

nb-नहीं

आरयू आरयू

यह विधि अधिकांश स्थानों के लिए काम करती है, हालांकि यह ध्यान दिया जाना चाहिए कि हिंदू-अरबी अंकों का प्रतिनिधित्व करने के लिए उपयोग की जाने वाली स्क्रिप्ट सभी स्थानों में समान नहीं हैं। इसलिए नेपाली (भारत) लोकल जैसी क्षेत्रीय सेटिंग्स का परिणाम उन तारीखों प्रारूपों में होगा, जो एन-यूएस तारीखों की तुलना में "अलग" दिखते हैं। लेकिन ये वास्तव में संख्या के पदों के संदर्भ में समान "प्रारूप" में हैं - वे संख्याओं के लिए अलग-अलग प्रतीकों का उपयोग करते हैं।

ne-IN


1
आपके उत्तर के लिए बहुत बहुत धन्यवाद (यहां तक ​​कि देर से) - विधि 1 मेरे लिए सबसे अच्छा है और मेरे सभी मामलों के लिए पर्याप्त सरल है। बहुत अच्छा और पूरा जवाब।
рüффп

क्या आप बता सकते हैं कि मैं पहली विधि का उपयोग करके 28.11.2015 कैसे डाल सकता हूं? मुझे कहाँ और क्या लिखना चाहिए ???????
इलन

3

तारीखों के लिए आप वास्तव में एक प्रारूप को परिभाषित कर सकते हैं जो एक्सेल को एक निश्चित स्थान का उपयोग करता है। अगर आप अपनी तारीख वाले सेल के नंबर फॉर्मेट को कुछ इस तरह सेट करते हैं

[$-409]m/d/yy h:mm AM/PM;@

एक्सेल आपके स्थान को US लोकेल में प्रदर्शित करेगा (हेक्स 409)

गोटचा: YMD संकेतन स्थानीयकृत है और इस प्रकार उदाहरण के लिए एक जर्मन सिस्टम पर JMT में बदल जाता है। इसलिए आपको अपनी स्थिति के लिए प्रारूप स्ट्रिंग को अनुकूलित करना पड़ सकता है, लेकिन मैं यह अपेक्षा करूंगा कि यह एक अलग भाषा का उपयोग करके सिस्टम पर सूत्र (ऑटोट्रांसलेट) की तरह व्यवहार करें (जैसा कि आप जानते हैं)।

कुछ और विवरणों के लिए यहां देखें: /programming/894805/excel-number-format-what-is-409

और यहां स्थानों की सूची के लिए: http://support.microsoft.com/kb/221435


2
लेकिन यह मेरे सवाल का जवाब नहीं देता है। मैं अपने एक्सेल शीट में dd / mm / yyyy लिखना चाहता हूं, यहां तक ​​कि OS "jj / mm / aaa" भी चाहता है। मैंने अपने ओएस लोकेल को बदलने की कोशिश की और आउटपुट बदल रहा है, फिर एक्सेल उपयोगकर्ता के लोकेल के अनुसार अनुकूलन नहीं करता है। अगर मैं "jj.mm.aaaa" (फ्रेंच में) लिखता हूं और मैं अपने लोकेल को यूएस में बदल देता हूं, तो एक्सेल दिखाता है: "jj.03.aaaa" जो अनुकूलित नहीं है।
рüффп

3

भले ही यह सवाल थोड़ा पुराना है, मैं एक और (सरल!) समाधान के साथ आया और संपूर्णता / संदर्भ के लिए यहां पोस्ट कर रहा हूं।

  • मैंने रिकवोक्स के उत्तर की सफलतापूर्वक कोशिश की, लेकिन वीबीए के बिना एक समाधान चाहता था।

  • साथ ही MarinD के समाधान का परीक्षण किया। लेकिन, जैसा कि टिप्पणियों में कहा गया है, अगर आपको एक से अधिक देश-विशिष्ट प्रारूप के लिए पूरा करने की आवश्यकता है, तो यह बहुत तेज गति से प्राप्त कर सकता है।

  • और अब मेरे समाधान के लिए: सामने के शून्य को पैड करने के लिए एक्सेल के देशी YEAR (), MONTH () और DATE () फ़ंक्शन का उपयोग करके, TEXT () में लिपटे। A1 में दिनांक के साथ:

    =TEXT(YEAR(A1),"0000")&"-"&TEXT(MONTH(A1),"00")&"-"&TEXT(DAY(A1),"00")

    YYYY-MM-DDअगर मुझे वर्तमान लोकेल की आवश्यकता हो YYYY-MM-DDया नहीं , प्रारूप में मुझे तारीख देंAAAA-MM-JJ वर्ष / माह / तिथि के लिए या किसी अन्य स्थानीयकृत नामों।

    एक्सेल अपने मूल सूत्रों का स्वचालित रूप से अनुवाद करता है।


1

संपूर्ण गड़बड़ी से बचने का एक बहुत ही सरल तरीका है कि ज्ञात तिथियों की सूची बनाएं और अपने कार्य में सूची का उपयोग करें।


4
क्या आप एक उदाहरण को शामिल करने के लिए अपने उत्तर का विस्तार कर सकते हैं?
बरगी

1

CHOOSEफ़ंक्शन का उपयोग करने के लिए Excel लोकेल दिनांक स्वरूप समस्या को हल करने का एक सरल तरीका है :

CHOOSE(WEEKDAY(TODAY());"Dimanche";"Lundi";"Mardi";"Mercredi";"Jeudi";"Vendredi";"Samedi")

CHOOSE(MONTH(TODAY());"Janvier";"Fevrier";"Mars";"Avril";"Mai";"Juin";"Juillet";"Août";"Septembre";"Octobre";"Novembre";"Décembre")

इन उदाहरणों में आपको "Mmmm" या "Dddd" या "Jjjj" जैसे स्थानीय स्वरूपों का उपयोग किए बिना अक्षरों में दिन और महीना मिलेगा।


जब तक आप एक भाषा (आपके मामले में फ्रेंच) का प्रबंधन कर रहे हैं, लेकिन यदि आपको कई एनगेज का प्रबंधन करना है, तो आपका फॉर्मूला बहुत बड़ा हो जाएगा।
рüффп

मैं केवल एक लैंगेज का प्रबंधन करता हूं। CHOOSE के उपयोग की बात एक लैंगेज एक्सेल शीट का निर्माण करने के लिए ठीक है जो एक्सेल के किसी भी अन्य स्थानीय संस्करण पर काम करेगी।
एलेक्सिस पेरोट्टी 15

एक्सेल टेक्स्ट फ़ंक्शन की बड़ी विफलता यह है कि दिनांक प्रारूप क्षेत्रीय सेटिंग्स में आपके वर्तमान विंडोज लोकेल पर निर्भर करता है। उदाहरण = = TEXT (TODAY (); "YYYY-MM-DD") US के लिए = TEXT (TODAY (); "AAAA-MM-JJ") FR के लिए) इसलिए TEXT का उपयोग करके एक यूनिवर्सल शीट बनाना संभव नहीं है। इसके बजाय CHOOSE का उपयोग करें।
एलेक्सिस पेरोट्टी 16

अंत में, हार्ड-कोडित मूल्यों के साथ एक अन्य फ़ंक्शन का समाधान वास्तव में डेट पैटर्न को हार्ड-कोडिंग से अधिक मदद नहीं कर रहा है। व्यक्तिगत रूप से मैं VBA और स्वीकृत उत्तर के साथ जाऊंगा। वैसे भी अपना अनुभव साझा करने के लिए धन्यवाद।
рüффп

1

यदि आपकी संदर्भ तिथि सेल A1 में है:

=IF(RIGHT(TEXT(A1;"dd-mm-yyyy");1)="y";TEXT(A1;"jj-mm-aaaa");TEXT(A1;"dd-mm-yyyy"))

यह एक अच्छा तरीका है अगर आपको केवल एक अतिरिक्त प्रारूप का प्रबंधन करने की आवश्यकता है ... मुझे यकीन है कि वैसे भी मेरे सहयोगी ज़्यूरिख़ या किसी अन्य देश से हैं जो अंग्रेजी और न ही फ्रेंच नहीं हैं, फिर भी यह काम नहीं करेगा। यदि आपको if(if(if...दुनिया भर में हर एक प्रारूप के लिए बनाना है, तो इसे प्रबंधित करना बहुत मुश्किल होगा।
рüффп

यह सही है, लेकिन मुझे VBA मैक्रो से गुजरे बिना कुछ भी बेहतर नहीं मिला। मुझे समझ में नहीं आता कि Microsoft फ़ंक्शन और उनके गुणों का अनुवाद क्यों करता है (जो कि और भी बुरा है क्योंकि जब आप इसे किसी अन्य भाषा के साथ खोलते हैं तो वे स्वचालित रूप से अनुवाद नहीं करते हैं, जैसा कि हमारे मुद्दे में है)। किसी भी प्रोग्रामिंग भाषा ने कभी ऐसा नहीं किया। बस अंग्रेजी काफी होती
MarinD

0

मैंने अब मैक्रोज़ के साथ दिए गए मेथड 2 के समान तर्क का उपयोग किया है। मैक्रोज़ काम करते हैं, लेकिन आमतौर पर जब आप एक संगठन से दूसरे में एक फ़ाइल भेजते हैं, तो मैक्रोज़ इसे एक्सचेंज के माध्यम से नहीं बनाएंगे या एंटीवायरस उन्हें चलने नहीं देंगे। इसलिए मैंने डेटफॉर्म के रूप में केवल ia सेल का नाम बदला है। इस सेल में मैंने केवल टेक्स्ट dd / mm / yyyy दर्ज किया है। इसलिए जब मैं पाठ फ़ंक्शन का उपयोग कर रहा हूं तो मैं प्रारूप = पाठ (C1, डेटफॉर्मैट) के लिए सेल नाम का उपयोग कर रहा हूं और यह काम कर रहा है (स्विट्जरलैंड के लिए यह काम करता है)।

चीयर्स ...

ए।


1
आप कहते हैं कि यह स्विट्जरलैंड में काम करता है, लेकिन क्या यह "फ्रेंच (स्विट्जरलैंड)", "जर्मन (स्विट्जरलैंड)" या अंग्रेजी है? यदि यह अंग्रेजी है, तो यह वास्तव में इस चर्चा में कुछ भी योगदान नहीं देता है। यदि यह अंग्रेजी नहीं है, तो क्या आप बता सकते हैं कि जब काम नहीं होता है तो सेल के =TEXT(C1,dateformat)साथ काम क्यों करेगा ? (या यह काम करता है?)dateformatdd/mm/yyyy=TEXT(C1, "dd/mm/yyyy")
जी-मैन कहते हैं 'मोनिका'

0

मुझे विश्वास नहीं हो रहा है कि किसी ने भी नामांकित प्रारूप को समाधान के रूप में पेश नहीं किया है।

यदि आप किसी दिनांक को प्रारूपित करते हैं और दर्ज करते हैं तो =TEXT(A1,"Short Date")यह क्षेत्रीय क्षेत्रों के बीच क्षेत्रीय मुद्दों के आधार पर स्वचालित रूप से उचित प्रारूप का उपयोग करेगा।

"लॉन्ग डेट" भी एक स्वीकार्य प्रविष्टि है और पूरे क्षेत्र में मूल रूप से काम करेगी। यह भी उपयोग किए गए संस्करण की परवाह किए बिना cvdate के साथ VBA में एक उचित तारीख में वापस बदल देगा।  


एक्सेल 2016 में, यह वह रखेगा जो क्षेत्रीय प्रारूपण को सौंपा गया था। यदि आप विभिन्न क्षेत्रीय प्रारूपों के साथ तारीखों की तुलना करने की कोशिश कर रहे हैं, तो तुलना विफल हो जाएगी। यह बहुत बुरा है यह शायद एक बग है।
स्कूबा स्टीव

0

बस से लिया एक और imho सुरुचिपूर्ण विकल्प में छोड़: Stackoverflow जवाब @Taosique द्वारा

=IF(TEXT(1,"mmmm")="January",[some logic for English system],[some logic for non-English system])

यह काम नहीं कर सकता है। मैं सभी भाषाओं को नहीं जानता, लेकिन जब तक महीने के लिए शब्द कुछ भाषाओं में "मी" से शुरू नहीं होता है, यह संभवतः बिल्कुल भी काम नहीं करेगा (एक #VALUEत्रुटि प्रदान करना )। यहां तक ​​कि अगर शब्द "एम" से शुरू होता है, तो यहां सिर्फ 2 से अधिक विकल्प हैं। जर्मनी, पोलैंड और हंगरी में से प्रत्येक के पास कुछ नाम रखने के लिए एक अलग प्रारूपण कोड है।
इस्टर

मैं मानता हूं कि डेवलपर जानता है कि वह किस भाषा में सेटिंग कर रहा है (जैसे यहां अंग्रेजी सिस्टम) और जो वह चाहता है कि उसका फॉर्मूला काम करे / उसमें अनुवाद करने के लिए। यदि वह जिस भाषा में रुचि रखता है, उसके लिए IF को बढ़ाने के लिए कोई बड़ी बात नहीं होनी चाहिए।
GWD

खैर, मैंने उन विशिष्ट देशों को सूचीबद्ध किया है क्योंकि मेरे पास पहले से ही एक मामला था जहां मुझे एक ही समय में उन सभी भाषाओं के अनुकूल होना था। एम्बेडेड IFs की भी एक सीमा होती है, हालाँकि यह भी आसान है। मैं मानता हूं कि यह विचार सामान्य रूप से अच्छा है और इसका मुख्य लाभ वीबीए की जरूरत नहीं है।
इस्टर

0

मुझे पता है, पार्टी के लिए देर हो रही है, लेकिन इस पर खुद को देखते हुए मुझे सिर्फ एक्सेलबर्नर पर काम करने का हल मिला जिसमें की आवश्यकता नहीं है।

जाने का तरीका पुराने Excel v4 मैक्रो सिस्टम का उपयोग करना है। यह अभी भी नामित श्रेणियों या v4 मैक्रो शीट के माध्यम से पहुँचा जा सकता है। यह मेरे लिए सीखने का अनुभव भी था; ग्रिड से एक्सेल पर एक पृष्ठ और रॉन डे ब्रुइन की साइट पर एक अच्छा परिचय था। उत्तरार्द्ध में उसी समाधान के साथ एक कार्यपुस्तिका का लिंक भी है।

मूल रूप से, पुराने Excel v4 मैक्रो फ़ंक्शन GET.WORKSPACE का उपयोग स्थानीयकृत दिनांक स्वरूप सहित बहुत सी चीजों के बारे में मेटा जानकारी प्राप्त करने के लिए किया जा सकता है। GET.WORKSPACE (37) सभी प्रकार के विभाजक आदि के लिए उपयोग किए जाने वाले सभी वर्णों की एक सरणी देता है, जहां सूचकांक 19-20-21 वर्ष, महीने और दिन प्रारूपण के लिए उपयोग किए जाने वाले पत्र को रखता है। इसलिए INDEX (GET.WORKSPACE (37), 19) का उपयोग करके अंग्रेजी भाषा सेटिंग्स पर "y", डच पर "j" और स्पेनिश पर "a" रिटर्न का उपयोग किया जाता है। 4-अक्षर कोड उत्पन्न करने के लिए REPT के साथ संयोजन करें और आपका काम हो गया। समस्या यह है कि पुराने v4 फ़ंक्शन (जैसे GET.WORKSPACE) केवल v4 शैली की मैक्रो शीट और नामित श्रेणियों द्वारा उपयोग किए जा सकते हैं।

इस प्रकार:

  • एक नामित सीमा बनाएं, और इसे नाम दें "उदा। मासिक"
  • इसे सूत्र दो =REPT(INDEX(GET.WORKSPACE(37),19),4)
  • अपने पाठ सूत्र में, प्रारूप निर्दिष्ट करने के लिए इस MonthFormat नाम का उपयोग करें, जैसे =TEXT(A1, MonthFormat)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.