एक्सेल में अद्यतन विनिमय दर

मैंने बाद में स्वचालित अद्यतन के साथ इंटरनेट से एक्सेल में डेटा आयात करने के तरीकों का बार-बार विश्लेषण किया है। विशेष रूप से:

  • एक्सेल 2007-2013 के पुराने संस्करणों में, यह सीधे वेब अनुरोध के साथ किया जा सकता है।
  • 2010 से, यह Power Query ऐड-इन के साथ बहुत आसानी से किया जा सकता है।

माइक्रोसॉफ्ट एक्सेल के नवीनतम संस्करणों में इन विधियों के लिए, अब आप एक और जोड़ सकते हैं - अंतर्निहित कार्यों का उपयोग करके एक्सएमएल प्रारूप में इंटरनेट से डेटा आयात करना।

एक्सएमएल (एक्स्टेंसिबल मार्कअप लैंग्वेज = एक्सटेंसिबल मार्कअप लैंग्वेज) एक सार्वभौमिक भाषा है जिसे किसी भी तरह के डेटा का वर्णन करने के लिए डिज़ाइन किया गया है। वास्तव में, यह सादा पाठ है, लेकिन डेटा संरचना को चिह्नित करने के लिए इसमें विशेष टैग जोड़े गए हैं। कई साइटें किसी को भी डाउनलोड करने के लिए एक्सएमएल प्रारूप में अपने डेटा की मुफ्त स्ट्रीम प्रदान करती हैं। सेंट्रल बैंक ऑफ अवर कंट्री (www.cbr.ru) की वेबसाइट पर, विशेष रूप से, इसी तरह की तकनीक की मदद से, विभिन्न मुद्राओं की विनिमय दरों पर डेटा दिया जाता है। मॉस्को एक्सचेंज की वेबसाइट (www.moex.com) से आप उसी तरह स्टॉक, बॉन्ड और कई अन्य उपयोगी जानकारी के लिए उद्धरण डाउनलोड कर सकते हैं।

संस्करण 2013 के बाद से, एक्सेल के पास इंटरनेट से एक्सएमएल डेटा को वर्कशीट सेल में सीधे लोड करने के लिए दो कार्य हैं: वेब सेवा (वेब सेवा) и फ़िल्टर.एक्सएमएल (फ़िल्टरएक्सएमएल). वे जोड़ियों में काम करते हैं - पहला कार्य वेब सेवा वांछित साइट के लिए अनुरोध निष्पादित करता है और एक्सएमएल प्रारूप में अपनी प्रतिक्रिया देता है, और फिर फ़ंक्शन का उपयोग करता है फ़िल्टर.एक्सएमएल हम इस उत्तर को घटकों में "पार्स" करते हैं, इससे हमें आवश्यक डेटा निकालते हैं।

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

एक्सेल में अद्यतन विनिमय दर

यहाँ:

  • पीली कोशिकाओं में हमारे लिए ब्याज की अवधि की शुरुआत और समाप्ति तिथियां होती हैं।
  • नीले रंग में कमांड का उपयोग करके मुद्राओं की एक ड्रॉप-डाउन सूची होती है डेटा - सत्यापन - सूची (डेटा - सत्यापन - सूची).
  • हरे रंग की कोशिकाओं में, हम क्वेरी स्ट्रिंग बनाने और सर्वर की प्रतिक्रिया प्राप्त करने के लिए अपने कार्यों का उपयोग करेंगे।
  • दाईं ओर की तालिका मुद्रा कोड का संदर्भ है (हमें थोड़ी देर बाद इसकी आवश्यकता होगी)।

चलिए चलते हैं!

चरण 1. एक क्वेरी स्ट्रिंग बनाना

साइट से आवश्यक जानकारी प्राप्त करने के लिए, आपको इसे सही ढंग से पूछने की आवश्यकता है। हम www.cbr.ru पर जाते हैं और मुख्य पृष्ठ के पाद लेख में लिंक खोलते हैं। तकनीकी संसाधन'- XML का उपयोग करके डेटा प्राप्त करना (http://cbr.ru/Development/SXML/)। हम थोड़ा नीचे स्क्रॉल करते हैं और दूसरे उदाहरण (उदाहरण 2) में हमें जो चाहिए वह होगा - किसी दिए गए दिनांक अंतराल के लिए विनिमय दर प्राप्त करना:

एक्सेल में अद्यतन विनिमय दर

जैसा कि आप उदाहरण से देख सकते हैं, क्वेरी स्ट्रिंग में प्रारंभ तिथियां होनी चाहिए (दिनांक_req1) और अंत (दिनांक_req2) हमारे लिए ब्याज की अवधि और मुद्रा कोड (वीएएल_एनएम_आरक्यू), जिसकी दर हम प्राप्त करना चाहते हैं। आप नीचे दी गई तालिका में मुख्य मुद्रा कोड पा सकते हैं:

मुद्रा

कोड

                         

मुद्रा

कोड

ऑस्ट्रलियन डॉलर R01010

लिथुआनियाई लिटास

R01435

ऑस्ट्रियाई शिलिंग

R01015

लिथुआनियाई कूपन

R01435

अजरबैज मनत

R01020

मोल्दोवन लेउ

R01500

पौंड

R01035

µРјРµС ° СЏ РјР ° СЂРєР °

R01510

अंगोलन न्यू क्वांज़ा

R01040

डच गिल्डर

R01523

अर्मेनियाई नाटक

R01060

नॉर्वे क्रोन

R01535

बेलारूसी रूबल

R01090

पोलिश ज़्लॉटी

R01565

बेल्जियम फ़्रैंक

R01095

पुर्तगाली एस्कुडो

R01570

बल्गेरियाई शेर

R01100

रोमानियाई ल्यू

R01585

ब्राजील असली

R01115

सिंगापुर का डॉलर

R01625

हङ्गेरियाई फ़ोरिण्ट

R01135

सूरीनाम डॉलर

R01665

हांगकांग का डॉलर

R01200

ताजिक सोमोनी

R01670

ग्रीक ड्रामा

R01205

ताजिक रूबल

R01670

डैनिश क्रोन

R01215

तुर्की लीरा

R01700

अमेरिकी डॉलर

R01235

तुर्कमेन मनत

R01710

यूरो

R01239

न्यू तुर्कमेनिस्तान मनाती

R01710

भारतीय रुपया

R01270

उज़्बेक योग

R01717

आयरिश पाउंड

R01305

यूक्रेनी रिव्निया

R01720

आइसलैंडिक क्रोन

R01310

यूक्रेनियाई कार्बोवनेत्

R01720

स्पेनिश पेसेटा

R01315

फिनिश मार्क

R01740

इतालवी लीरा

R01325

फ्रेंच फ़्रैंक

R01750

कज़ाखस्तान तेंगे

R01335

चेक कोरुना

R01760

कैनेडियन डॉलर

R01350

स्वीडिश क्रोना

R01770

किर्गिज़ सोमो

R01370

स्विस फ्रैंक

R01775

चीनी युवान

R01375

एस्टोनियाई क्रून

R01795

कुवैती दिनकर

R01390

यूगोस्लाव न्यू दीनार

R01804

लातवियाई लता

R01405

दक्षिण अफ्रीकी रैंड

R01810

लेबनानी पाउंड

R01420

कोरिया गणराज्य वोन

R01815

जापानी येन

R01820

सेंट्रल बैंक की वेबसाइट पर करेंसी कोड की पूरी गाइड भी उपलब्ध है - देखें http://cbr.ru/scripts/XML_val.asp?d=0

अब हम एक शीट पर एक सेल में एक क्वेरी स्ट्रिंग बनाएंगे:

  • टेक्स्ट कॉन्सटेनेशन ऑपरेटर (&) को एक साथ रखने के लिए;
  • विशेषताएं VPR (VLOOKUP)निर्देशिका में हमें जिस मुद्रा की आवश्यकता है उसका कोड खोजने के लिए;
  • विशेषताएं पाठ (पाठ), जो दिए गए पैटर्न के अनुसार दिन-महीने-वर्ष के अनुसार तारीख को एक स्लैश के माध्यम से परिवर्तित करता है।

एक्सेल में अद्यतन विनिमय दर

="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")&  "&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)  

चरण 2. अनुरोध निष्पादित करें

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

एक्सेल में अद्यतन विनिमय दर

चरण 3. उत्तर को पार्स करना

प्रतिक्रिया डेटा की संरचना को समझना आसान बनाने के लिए, ऑनलाइन एक्सएमएल पार्सर्स में से एक का उपयोग करना बेहतर है (उदाहरण के लिए, http://xpather.com/ या https://jsonformatter.org/xml-parser), जो एक्सएमएल कोड को नेत्रहीन रूप से प्रारूपित कर सकता है, इसमें इंडेंट जोड़ सकता है और रंग के साथ सिंटैक्स को हाइलाइट कर सकता है। तब सब कुछ बहुत स्पष्ट हो जाएगा:

एक्सेल में अद्यतन विनिमय दर

अब आप स्पष्ट रूप से देख सकते हैं कि पाठ्यक्रम मान हमारे टैग द्वारा तैयार किए गए हैं ..., और तिथियाँ विशेषताएँ हैं तारीख टैग में .

उन्हें निकालने के लिए, शीट पर दस (या अधिक - यदि मार्जिन के साथ किया जाता है) के एक कॉलम का चयन करें (क्योंकि 10-दिन की तारीख अंतराल सेट किया गया था) और सूत्र बार में फ़ंक्शन दर्ज करें फ़िल्टर.एक्सएमएल (फ़िल्टरएक्सएमएल):

एक्सेल में अद्यतन विनिमय दर

यहां, पहला तर्क सर्वर प्रतिक्रिया (बी8) के साथ एक सेल के लिए एक लिंक है, और दूसरा XPath में एक क्वेरी स्ट्रिंग है, एक विशेष भाषा जिसका उपयोग आवश्यक एक्सएमएल कोड अंशों तक पहुंचने और उन्हें निकालने के लिए किया जा सकता है। आप XPath भाषा के बारे में अधिक पढ़ सकते हैं, उदाहरण के लिए, यहाँ।

यह महत्वपूर्ण है कि सूत्र दर्ज करने के बाद, दबाएं नहीं दर्ज, और कीबोर्ड शॉर्टकट कंट्रोल+पाली+दर्ज, यानी इसे एक सरणी सूत्र के रूप में दर्ज करें (इसके चारों ओर घुंघराले ब्रेसिज़ स्वचालित रूप से जोड़ दिए जाएंगे)। यदि आपके पास Excel में डायनेमिक सरणियों के समर्थन के साथ Office 365 का नवीनतम संस्करण है, तो एक सरल दर्ज, और आपको पहले से खाली कक्षों का चयन करने की आवश्यकता नहीं है - फ़ंक्शन स्वयं उतनी ही कोशिकाओं को ले जाएगा जितनी इसकी आवश्यकता है।

तिथियां निकालने के लिए, हम वही करेंगे - हम आसन्न कॉलम में कई खाली कोशिकाओं का चयन करेंगे और एक ही फ़ंक्शन का उपयोग करेंगे, लेकिन एक अलग XPath क्वेरी के साथ, रिकॉर्ड टैग से दिनांक विशेषताओं के सभी मान प्राप्त करने के लिए:

=फ़िल्टर.एक्सएमएल(बी8;”//रिकॉर्ड/@दिनांक”)

अब भविष्य में, मूल सेल B2 और B3 में तिथियों को बदलते समय या सेल B3 की ड्रॉप-डाउन सूची में एक अलग मुद्रा का चयन करते समय, हमारी क्वेरी स्वचालित रूप से अपडेट हो जाएगी, नए डेटा के लिए सेंट्रल बैंक सर्वर का जिक्र करते हुए। मैन्युअल रूप से अपडेट को बाध्य करने के लिए, आप अतिरिक्त रूप से कीबोर्ड शॉर्टकट का उपयोग कर सकते हैं कंट्रोल+ऑल्ट+F9.

  • Power Query के माध्यम से Excel में बिटकॉइन दर आयात करें
  • एक्सेल के पुराने संस्करणों में इंटरनेट से विनिमय दरों को आयात करें

एक जवाब लिखें