Cursul de schimb actualizat în Excel

Am analizat în mod repetat modalități de a importa date în Excel de pe Internet cu actualizarea automată ulterioară. În special:

  • În versiunile mai vechi de Excel 2007-2013, acest lucru se poate face cu o solicitare web directă.
  • Începând din 2010, acest lucru se poate face foarte convenabil cu programul de completare Power Query.

La aceste metode din cele mai recente versiuni de Microsoft Excel, acum puteți adăuga o alta - importul de date de pe Internet în format XML folosind funcții încorporate.

XML (eXtensible Markup Language = Extensible Markup Language) este un limbaj universal conceput pentru a descrie orice tip de date. De fapt, este text simplu, dar cu etichete speciale adăugate pentru a marca structura datelor. Multe site-uri oferă fluxuri gratuite de date în format XML pe care oricine le poate descărca. Pe site-ul Băncii Centrale a Țării Noastre (www.cbr.ru), în special, cu ajutorul unei tehnologii similare, sunt date date despre cursurile de schimb ale diferitelor valute. De pe site-ul Moscow Exchange (www.moex.com) puteți descărca cotații pentru acțiuni, obligațiuni și multe alte informații utile în același mod.

Din versiunea 2013, Excel are două funcții pentru încărcarea directă a datelor XML de pe Internet în celulele foii de lucru: SERVICIU WEB (SERVICIU WEB) и FILTER.XML (FILTERXML). Ei lucrează în perechi – mai întâi funcția SERVICIU WEB execută o solicitare către site-ul dorit și returnează răspunsul acesteia în format XML, apoi utilizează funcția FILTER.XML „analăm” acest răspuns în componente, extragând datele de care avem nevoie din el.

Să ne uităm la funcționarea acestor funcții folosind un exemplu clasic – importul cursului de schimb al oricărei monede de care avem nevoie pentru un anumit interval de date de pe site-ul Băncii Centrale a Țării Noastre. Vom folosi următoarea construcție ca spațiu liber:

Cursul de schimb actualizat în Excel

Aici:

  • Celulele galbene conțin datele de început și de sfârșit ale perioadei care ne interesează.
  • Cel albastru are o listă derulantă de valute folosind comanda Date – Validare – Lista (Date — Validare — Listă).
  • În celulele verzi, vom folosi funcțiile noastre pentru a crea un șir de interogare și a obține răspunsul serverului.
  • Tabelul din dreapta este o referință la codurile valutare (vom avea nevoie de el puțin mai târziu).

Sa mergem!

Pasul 1. Formarea unui șir de interogare

Pentru a obține informațiile necesare de pe site, trebuie să le solicitați corect. Mergem pe www.cbr.ru și deschidem linkul din subsolul paginii principale' Resurse tehnice'- Obținerea datelor folosind XML (http://cbr.ru/development/SXML/). Derulăm puțin mai jos și în al doilea exemplu (Exemplul 2) va fi ceea ce avem nevoie – obținerea cursurilor de schimb pentru un anumit interval de date:

Cursul de schimb actualizat în Excel

După cum puteți vedea din exemplu, șirul de interogare trebuie să conțină date de început (data_req1) și terminații (data_req2) din perioada care ne interesează și codul monedei (VAL_NM_RQ), rata pe care vrem să o obținem. Puteți găsi principalele coduri valutare în tabelul de mai jos:

Monedă

Cod

                         

Monedă

Cod

Dolarul australian R01010

Litas lituanian

R01435

șilingul austriac

R01015

cupon lituanian

R01435

Manat azer

R01020

Leul moldovenesc

R01500

Liră

R01035

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

R01510

Noua kwanza din Angola

R01040

gulden olandez

R01523

Dram armean

R01060

Coroană norvegiană

R01535

Rublele din Belarus

R01090

Zlotul polonez

R01565

franc belgian

R01095

escudo portughez

R01570

Leul bulgar

R01100

RON

R01585

Brazilian real

R01115

Dolar Singapore

R01625

Forint maghiar

R01135

Dolarul Surinamului

R01665

Dolar Hong Kong

R01200

Tadjik somoni

R01670

drahma greacă

R01205

rubla tadjică

R01670

Coroană daneză

R01215

Liră turcă

R01700

dolar american

R01235

manat turkmen

R01710

Euro

R01239

Noul manat turkmen

R01710

Rupie indiană

R01270

suma uzbecă

R01717

lira irlandeză

R01305

Ucraineană grivne

R01720

Coroana islandeză

R01310

karbovaneți ucraineni

R01720

peseta spaniolă

R01315

marca finlandeza

R01740

lira italiană

R01325

francez sincer

R01750

Kazahstan tenge

R01335

Cota croată

R01760

Dolarul canadian

R01350

Krona suedeză

R01770

som kârgâz

R01370

franc elvețian

R01775

Yuan chinezesc

R01375

coroană estonă

R01795

Dinarul din Kuweit

R01390

Dinar nou iugoslav

R01804

lats leton

R01405

Africa de Sud

R01810

Libaneză

R01420

Republica Coreea a câștigat

R01815

Yen japonez

R01820

Un ghid complet al codurilor valutare este disponibil și pe site-ul Băncii Centrale – vezi http://cbr.ru/scripts/XML_val.asp?d=0

Acum vom forma un șir de interogare într-o celulă de pe o foaie cu:

  • operatorul de concatenare a textului (&) pentru a-l pune împreună;
  • DESCRIERE VPR (CĂUTARE V)pentru a găsi codul monedei de care avem nevoie în director;
  • DESCRIERE TEXT (TEXT), care convertește data conform modelului dat zi-lună-an printr-o bară oblică.

Cursul de schimb actualizat în Excel

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

Pasul 2. Executați cererea

Acum folosim funcția SERVICIU WEB (SERVICIU WEB) cu șirul de interogare generat ca singur argument. Răspunsul va fi un lung șir de cod XML (este mai bine să activați încadrarea cuvintelor și să măriți dimensiunea celulei dacă doriți să o vedeți în întregime):

Cursul de schimb actualizat în Excel

Pasul 3. Analizarea răspunsului

Pentru a facilita înțelegerea structurii datelor de răspuns, este mai bine să utilizați unul dintre analizatorii XML online (de exemplu, http://xpather.com/ sau https://jsonformatter.org/xml-parser), care poate formata vizual codul XML, adăugându-i indentări și evidențiind sintaxa cu culoare. Atunci totul va deveni mult mai clar:

Cursul de schimb actualizat în Excel

Acum puteți vedea clar că valorile cursului sunt încadrate de etichetele noastre ..., iar datele sunt atribute Data în etichete .

Pentru a le extrage, selectați o coloană de zece (sau mai multe - dacă ați făcut cu o marjă) celule goale pe foaie (deoarece a fost setat un interval de date de 10 zile) și introduceți funcția în bara de formule FILTER.XML (FILTRUXML):

Cursul de schimb actualizat în Excel

Aici, primul argument este o legătură către o celulă cu un răspuns de server (B8), iar al doilea este un șir de interogare în XPath, un limbaj special care poate fi folosit pentru a accesa fragmentele de cod XML necesare și pentru a le extrage. Puteți citi mai multe despre limbajul XPath, de exemplu, aici.

Este important ca după introducerea formulei să nu apăsați Intrați, și comanda rapidă de la tastatură Ctrl+Schimba+Intrați, adică introduceți-o ca formulă matrice (acoladele din jurul acesteia vor fi adăugate automat). Dacă aveți cea mai recentă versiune de Office 365 cu suport pentru matrice dinamice în Excel, atunci un simplu Intrați, și nu trebuie să selectați celulele goale în avans – funcția în sine va lua atâtea celule cât are nevoie.

Pentru a extrage datele, vom face același lucru – vom selecta mai multe celule goale în coloana alăturată și vom folosi aceeași funcție, dar cu o interogare XPath diferită, pentru a obține toate valorile atributelor Date din etichetele Record:

=FILTER.XML(B8;”//Înregistrare/@Data”)

Acum, în viitor, atunci când schimbați datele în celulele originale B2 și B3 sau alegeți o altă monedă din lista derulantă a celulei B3, interogarea noastră va fi actualizată automat, referindu-se la serverul Băncii Centrale pentru date noi. Pentru a forța o actualizare manual, puteți utiliza suplimentar comanda rapidă de la tastatură Ctrl+Alt+F9.

  • Importați rata bitcoin în Excel prin Power Query
  • Importați cursuri de schimb de pe Internet în versiuni mai vechi de Excel

Lasă un comentariu