Kadar pertukaran yang dikemas kini dalam Excel

Saya telah berulang kali menganalisis cara untuk mengimport data ke dalam Excel daripada Internet dengan pengemaskinian automatik seterusnya. khususnya:

  • Dalam versi Excel 2007-2013 yang lebih lama, ini boleh dilakukan dengan permintaan web langsung.
  • Mulai tahun 2010, ini boleh dilakukan dengan sangat mudah dengan tambahan Power Query.

Untuk kaedah ini dalam versi terkini Microsoft Excel, anda kini boleh menambah satu lagi – mengimport data daripada Internet dalam format XML menggunakan fungsi terbina dalam.

XML (Bahasa Penanda Boleh Diperluas = Bahasa Penanda Boleh Diperluas) ialah bahasa universal yang direka untuk menerangkan sebarang jenis data. Sebenarnya, ia adalah teks biasa, tetapi dengan teg khas ditambahkan padanya untuk menandakan struktur data. Banyak tapak menyediakan aliran percuma data mereka dalam format XML untuk dimuat turun oleh sesiapa sahaja. Di laman web Bank Pusat Negara Kita (www.cbr.ru), khususnya, dengan bantuan teknologi yang sama, data mengenai kadar pertukaran pelbagai mata wang diberikan. Dari laman web Moscow Exchange (www.moex.com) anda boleh memuat turun sebut harga untuk saham, bon dan banyak maklumat berguna lain dengan cara yang sama.

Sejak versi 2013, Excel mempunyai dua fungsi untuk memuatkan terus data XML daripada Internet ke dalam sel lembaran kerja: PERKHIDMATAN WEB (PERKHIDMATAN WEB) и FILTER.XML (FILTERXML). Mereka bekerja secara berpasangan - pertama fungsi PERKHIDMATAN WEB melaksanakan permintaan ke tapak yang dikehendaki dan mengembalikan responsnya dalam format XML, dan kemudian menggunakan fungsi tersebut FILTER.XML kami "menghuraikan" jawapan ini kepada komponen, mengekstrak data yang kami perlukan daripadanya.

Mari kita lihat operasi fungsi ini menggunakan contoh klasik – mengimport kadar pertukaran mana-mana mata wang yang kita perlukan untuk selang tarikh tertentu daripada tapak web Bank Negara Kita. Kami akan menggunakan pembinaan berikut sebagai kosong:

Kadar pertukaran yang dikemas kini dalam Excel

Di sini:

  • Sel kuning mengandungi tarikh mula dan tamat tempoh yang diminati oleh kami.
  • Yang biru mempunyai senarai juntai bawah mata wang menggunakan arahan Data – Pengesahan – Senarai (Data — Pengesahan — Senarai).
  • Dalam sel hijau, kami akan menggunakan fungsi kami untuk mencipta rentetan pertanyaan dan mendapatkan respons pelayan.
  • Jadual di sebelah kanan adalah rujukan kepada kod mata wang (kami akan memerlukannya sedikit kemudian).

Jom!

Langkah 1. Membentuk rentetan pertanyaan

Untuk mendapatkan maklumat yang diperlukan dari tapak, anda perlu bertanya dengan betul. Kami pergi ke www.cbr.ru dan membuka pautan di pengaki halaman utama' Sumber Teknikal'- Mendapatkan data menggunakan XML (http://cbr.ru/development/SXML/). Kami menatal lebih rendah sedikit dan dalam contoh kedua (Contoh 2) akan ada perkara yang kami perlukan - mendapatkan kadar pertukaran untuk selang tarikh tertentu:

Kadar pertukaran yang dikemas kini dalam Excel

Seperti yang anda lihat daripada contoh, rentetan pertanyaan mesti mengandungi tarikh mula (tarikh_req1) dan kesudahan (tarikh_req2) tempoh faedah kepada kami dan kod mata wang (VAL_NM_RQ), kadar yang kita mahu dapatkan. Anda boleh menemui kod mata wang utama dalam jadual di bawah:

mata wang

Kod

                         

mata wang

Kod

Dolar Australia R01010

Lithuanian litas

R01435

syiling Austria

R01015

kupon Lithuania

R01435

Manat Azerbaijan

R01020

Moldovan leu

R01500

Pound

R01035

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

R01510

Kwanza baharu Angola

R01040

Guilder Belanda

R01523

Dram Armenia

R01060

Norway Krone

R01535

Ruble Belarusia

R01090

Poland Zloty

R01565

Franc Belgium

R01095

escudo Portugis

R01570

Singa Bulgaria

R01100

Leu Romania

R01585

Brazil sebenar

R01115

Dolar Singapura

R01625

Forint Hungaria

R01135

Dolar Suriname

R01665

Dolar Hong Kong

R01200

Tajik somoni

R01670

drachma Yunani

R01205

Ruble Tajik

R01670

Krone Denmark

R01215

Lira Turki

R01700

Dolar AS

R01235

Turkmen manat

R01710

Euro

R01239

Manat Turkmen baru

R01710

Rupee India

R01270

jumlah Uzbek

R01717

paun Ireland

R01305

Hryvnia our country

R01720

Krone Iceland

R01310

karbovanets our country

R01720

peseta Sepanyol

R01315

Tanda Finland

R01740

Lira Itali

R01325

Franc Perancis

R01750

Kazakhstan tenge

R01335

Koruna ceko

R01760

Dollar Kanada

R01350

Krona Sweden

R01770

Kyrgyz som

R01370

Frank Swiss

R01775

Cina Yuan

R01375

Kroon Estonia

R01795

Dinar Kuwait

R01390

Dinar baru Yugoslavia

R01804

Latvia lats

R01405

Rand Afrika Selatan

R01810

Lubnan pon

R01420

Republik Korea Menang

R01815

Yen Jepun

R01820

Panduan lengkap untuk kod mata wang juga tersedia di laman web Bank Pusat – lihat http://cbr.ru/scripts/XML_val.asp?d=0

Sekarang kita akan membentuk rentetan pertanyaan dalam sel pada helaian dengan:

  • operator penggabungan teks (&) untuk meletakkannya bersama;
  • Ciri-ciri VPR (TAMPILAN)untuk mencari kod mata wang yang kami perlukan dalam direktori;
  • Ciri-ciri TEXT (TEKS), yang menukar tarikh mengikut corak yang diberikan hari-bulan-tahun melalui garis miring.

Kadar pertukaran yang dikemas kini dalam Excel

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

Langkah 2. Laksanakan permintaan

Sekarang kita menggunakan fungsi tersebut PERKHIDMATAN WEB (PERKHIDMATAN WEB) dengan rentetan pertanyaan yang dijana sebagai satu-satunya hujah. Jawapannya ialah barisan panjang kod XML (lebih baik untuk menghidupkan bungkus perkataan dan meningkatkan saiz sel jika anda ingin melihatnya secara keseluruhan):

Kadar pertukaran yang dikemas kini dalam Excel

Langkah 3. Menghuraikan jawapan

Untuk menjadikannya lebih mudah untuk memahami struktur data respons, lebih baik menggunakan salah satu penghurai XML dalam talian (contohnya, http://xpather.com/ atau https://jsonformatter.org/xml-parser), yang boleh memformat kod XML secara visual, menambah inden padanya dan menyerlahkan sintaks dengan warna. Kemudian semuanya akan menjadi lebih jelas:

Kadar pertukaran yang dikemas kini dalam Excel

Kini anda dapat melihat dengan jelas bahawa nilai kursus dibingkai oleh tag kami ..., dan tarikh ialah atribut Tarikh dalam tag .

Untuk mengekstraknya, pilih lajur sepuluh (atau lebih – jika dilakukan dengan margin) sel kosong pada helaian (kerana selang tarikh 10 hari telah ditetapkan) dan masukkan fungsi dalam bar formula FILTER.XML (PENAPISXML):

Kadar pertukaran yang dikemas kini dalam Excel

Di sini, hujah pertama ialah pautan ke sel dengan respons pelayan (B8), dan yang kedua ialah rentetan pertanyaan dalam XPath, bahasa khas yang boleh digunakan untuk mengakses serpihan kod XML yang diperlukan dan mengekstraknya. Anda boleh membaca lebih lanjut tentang bahasa XPath, sebagai contoh, di sini.

Adalah penting bahawa selepas memasukkan formula, jangan tekan Masukkan, dan pintasan papan kekunci Ctrl+Beralih+Masukkan, iaitu masukkannya sebagai formula tatasusunan (kurung kerinting di sekelilingnya akan ditambah secara automatik). Jika anda mempunyai versi terkini Office 365 dengan sokongan untuk tatasusunan dinamik dalam Excel, maka mudah Masukkan, dan anda tidak perlu memilih sel kosong terlebih dahulu – fungsi itu sendiri akan mengambil seberapa banyak sel yang diperlukan.

Untuk mengekstrak tarikh, kami akan melakukan perkara yang sama – kami akan memilih beberapa sel kosong dalam lajur bersebelahan dan menggunakan fungsi yang sama, tetapi dengan pertanyaan XPath yang berbeza, untuk mendapatkan semua nilai atribut Tarikh daripada teg Rekod:

=FILTER.XML(B8;”//Rekod/@Tarikh”)

Kini pada masa hadapan, apabila menukar tarikh dalam sel asal B2 dan B3 atau memilih mata wang yang berbeza dalam senarai juntai bawah sel B3, pertanyaan kami akan dikemas kini secara automatik, merujuk kepada pelayan Bank Pusat untuk data baharu. Untuk memaksa kemas kini secara manual, anda juga boleh menggunakan pintasan papan kekunci Ctrl+Alt+F9.

  • Import kadar bitcoin ke Excel melalui Power Query
  • Import kadar pertukaran daripada Internet dalam versi Excel yang lebih lama

Sila tinggalkan balasan anda