Atnaujintas valiutos kursas programoje Excel

Ne kartą analizavau būdus, kaip importuoti duomenis į „Excel“ iš interneto su vėlesniu automatiniu atnaujinimu. Visų pirma:

  • Senesnėse 2007–2013 m. „Excel“ versijose tai galima padaryti tiesiogine žiniatinklio užklausa.
  • Nuo 2010 m. tai labai patogiai galima padaryti naudojant Power Query priedą.

Prie šių metodų naujausiose „Microsoft Excel“ versijose dabar galite pridėti dar vieną – duomenų importavimą iš interneto XML formatu naudojant įmontuotas funkcijas.

XML (eXtensible Markup Language = Extensible Markup Language) yra universali kalba, skirta apibūdinti bet kokio tipo duomenis. Tiesą sakant, tai yra paprastas tekstas, tačiau prie jo pridėtos specialios žymos, skirtos duomenų struktūrai pažymėti. Daugelis svetainių teikia nemokamus savo duomenų srautus XML formatu, kad kiekvienas galėtų juos atsisiųsti. Mūsų šalies centrinio banko svetainėje (www.cbr.ru), visų pirma, naudojant panašią technologiją, pateikiami duomenys apie įvairių valiutų kursus. Iš Maskvos biržos svetainės (www.moex.com) tokiu pat būdu galite atsisiųsti akcijų, obligacijų kotiruotes ir daug kitos naudingos informacijos.

Nuo 2013 m. versijos „Excel“ turi dvi funkcijas, skirtas tiesiogiai įkelti XML duomenis iš interneto į darbalapio langelius: INTERNETO PASLAUGA (INTERNETO PASLAUGA) и FILTRAS.XML (FILTERXML). Jie dirba poromis – pirmiausia funkcija INTERNETO PASLAUGA įvykdo užklausą norimai svetainei ir grąžina atsakymą XML formatu, o tada naudoja funkciją FILTRAS.XML „išanalizuojame“ šį atsakymą į komponentus, išgaudami iš jo mums reikalingus duomenis.

Pažvelkime į šių funkcijų veikimą pasitelkdami klasikinį pavyzdį – bet kurios mums reikalingos valiutos kurso importavimą tam tikram datos intervalui iš mūsų šalies centrinio banko svetainės. Kaip ruošinį naudosime šią konstrukciją:

Atnaujintas valiutos kursas programoje Excel

Čia:

  • Geltonuose langeliuose yra mus dominančio laikotarpio pradžios ir pabaigos datos.
  • Mėlynajame yra išskleidžiamasis valiutų sąrašas naudojant komandą Duomenys – Patvirtinimas – Sąrašas (Duomenys – patvirtinimas – sąrašas).
  • Žaliuosiuose langeliuose naudosime savo funkcijas, kad sukurtume užklausos eilutę ir gautume serverio atsakymą.
  • Lentelėje dešinėje yra nuoroda į valiutų kodus (jos mums prireiks šiek tiek vėliau).

Eime!

1 veiksmas. Užklausos eilutės formavimas

Norėdami gauti reikiamą informaciją iš svetainės, turite jos teisingai paklausti. Einame į www.cbr.ru ir atidarome nuorodą pagrindinio puslapio poraštėje. Techniniai ištekliai - Duomenų gavimas naudojant XML (http://cbr.ru/development/SXML/). Slenkame šiek tiek žemiau ir antrame pavyzdyje (2 pavyzdys) bus tai, ko mums reikia – gauti tam tikros datos intervalo valiutų kursus:

Atnaujintas valiutos kursas programoje Excel

Kaip matote iš pavyzdžio, užklausos eilutėje turi būti pradžios datos (data_req1) ir pabaigos (data_req2) mus dominančio laikotarpio ir valiutos kodą (VAL_NM_RQ), kurio normą norime gauti. Pagrindinius valiutų kodus galite rasti toliau pateiktoje lentelėje:

valiuta

kodas

                         

valiuta

kodas

Australijos doleris R01010

Lietuvos litas

R01435

Austrijos šilingas

R01015

Lietuviškas kuponas

R01435

Azerbaidžano manatas

R01020

Moldovos lėja

R01500

Svaras

R01035

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

R01510

Angolos naujoji kvanza

R01040

olandų guldenas

R01523

Armėnų dramas

R01060

Norvegijos krona

R01535

Baltarusijos rublis

R01090

Lenkijos zlotas

R01565

Belgijos frankas

R01095

portugališkas eskudas

R01570

Bulgarijos liūtas

R01100

Rumunų lėja

R01585

Brazilijos realus

R01115

Singapūro doleris

R01625

Vengrijos forintas

R01135

Surinamo doleris

R01665

Honkongo doleris

R01200

Tadžikų somoni

R01670

Graikijos drachma

R01205

Tadžikijos rublis

R01670

Danijos krona

R01215

Turkų lira

R01700

JAV doleris

R01235

Turkmėnijos manatas

R01710

euras

R01239

Naujasis turkmėnų manatas

R01710

Indijos rupija

R01270

Uzbekistano suma

R01717

Airijos svaras

R01305

Ukrainos grivina

R01720

Islandijos krona

R01310

Ukrainos karbovanetai

R01720

Ispanijos peseta

R01315

Suomijos markė

R01740

Italijos lira

R01325

atviras prancūzas

R01750

Kazachstano tenge

R01335

Čekijos krona

R01760

Kanados doleris

R01350

Švedijos krona

R01770

Kirgizų som

R01370

Šveicarijos frankas

R01775

Kinijos juanis

R01375

Estijos krona

R01795

Kuveito dinaras

R01390

Jugoslavijos naujasis dinaras

R01804

Latvijos latų

R01405

Pietų Afrikos randas

R01810

Libano svaras

R01420

Korėjos Respublika laimėjo

R01815

Japonijos jena

R01820

Išsamų valiutų kodų vadovą taip pat galima rasti Centrinio banko svetainėje – žr. http://cbr.ru/scripts/XML_val.asp?d=0

Dabar lapo langelyje suformuosime užklausos eilutę su:

  • teksto sujungimo operatorius (&), kad jį sujungtumėte;
  • Savybės VPR (ŽIŪRĖTI)kataloge rasti mums reikalingos valiutos kodą;
  • Savybės TEKSTAS (TEKSTAS), kuris konvertuoja datą pagal pateiktą modelį diena-mėnuo-metai per pasvirąjį brūkšnį.

Atnaujintas valiutos kursas programoje Excel

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

2 veiksmas. Vykdykite užklausą

Dabar mes naudojame funkciją INTERNETO PASLAUGA (INTERNETO PASLAUGA) su generuota užklausos eilute kaip vieninteliu argumentu. Atsakymas bus ilga XML kodo eilutė (geriau įjungti žodžių laužymą ir padidinti langelio dydį, jei norite jį matyti visą):

Atnaujintas valiutos kursas programoje Excel

3 veiksmas. Atsakymo analizė

Kad būtų lengviau suprasti atsakymų duomenų struktūrą, geriau naudoti vieną iš internetinių XML analizatorių (pvz., http://xpather.com/ arba https://jsonformatter.org/xml-parser), kuri gali vizualiai formatuoti XML kodą, pridedant prie jo įtraukas ir paryškinant sintaksę spalva. Tada viskas taps daug aiškiau:

Atnaujintas valiutos kursas programoje Excel

Dabar aiškiai matote, kad kurso vertės yra įrėmintos mūsų žymomis ..., o datos yra atributai Data žymose .

Norėdami juos išskleisti, lape pasirinkite dešimties (ar daugiau – jei tai daroma su parašte) tuščių langelių stulpelį (nes buvo nustatytas 10 dienų datos intervalas) ir formulės juostoje įveskite funkciją FILTRAS.XML (FILTRASXML):

Atnaujintas valiutos kursas programoje Excel

Čia pirmasis argumentas yra nuoroda į langelį su serverio atsaku (B8), o antrasis yra užklausos eilutė XPath, specialioje kalboje, kurią galima naudoti norint pasiekti reikiamus XML kodo fragmentus ir juos išgauti. Pavyzdžiui, daugiau apie XPath kalbą galite perskaityti čia.

Svarbu, kad įvedus formulę nespausti įeitiir spartusis klavišas "Ctrl"+perėjimas+įeiti, ty įveskite jį kaip masyvo formulę (aplink jį esantys skliaustai bus pridėti automatiškai). Jei turite naujausią „Office 365“ versiją su „Excel“ dinaminių masyvų palaikymu, tai paprasta įeiti, ir nereikia iš anksto pasirinkti tuščių langelių – pati funkcija užims tiek langelių, kiek jai reikia.

Norėdami išgauti datas, darysime tą patį – pasirinksime keletą tuščių langelių gretimame stulpelyje ir naudosime tą pačią funkciją, bet su kita XPath užklausa, kad gautume visas datos atributų reikšmes iš įrašo žymų:

=FILTER.XML(B8;”//Įrašyti/@Data)

Ateityje, keičiant datas pradiniuose langeliuose B2 ir B3 arba pasirenkant kitą valiutą langelio B3 išskleidžiamajame sąraše, mūsų užklausa bus automatiškai atnaujinta, kreipiantis į Centrinio banko serverį dėl naujų duomenų. Norėdami priverstinai atnaujinti rankiniu būdu, galite papildomai naudoti sparčiuosius klavišus "Ctrl"+Kitas+F9.

  • Importuokite bitcoin kursą į „Excel“ naudodami „Power Query“.
  • Importuokite valiutų kursus iš interneto senesnėse „Excel“ versijose

Palikti atsakymą