Mündəricat
Sonrakı avtomatik yeniləmə ilə məlumatları İnternetdən Excel-ə idxal etməyin yollarını dəfələrlə təhlil etmişəm. Xüsusilə:
- Excel 2007-2013-ün köhnə versiyalarında bu, birbaşa veb sorğusu ilə edilə bilər.
- 2010-cu ildən başlayaraq bu, Power Query əlavəsi ilə çox rahat şəkildə edilə bilər.
Microsoft Excel-in ən son versiyalarındakı bu üsullara indi başqa birini əlavə edə bilərsiniz - daxili funksiyalardan istifadə edərək XML formatında məlumatların İnternetdən idxalı.
XML (eXtensible Markup Language = Extensible Markup Language) istənilən növ məlumatı təsvir etmək üçün nəzərdə tutulmuş universal bir dildir. Əslində, bu, düz mətndir, lakin məlumat strukturunu qeyd etmək üçün ona əlavə edilmiş xüsusi etiketlərlə. Bir çox saytlar hər kəsin yükləməsi üçün öz məlumatlarının XML formatında pulsuz axınlarını təmin edir. Ölkəmizin Mərkəzi Bankının saytında (www.cbr.ru), xüsusən də oxşar texnologiyanın köməyi ilə müxtəlif valyutaların məzənnələri haqqında məlumatlar verilir. Moskva Birjasının saytından (www.moex.com) eyni şəkildə səhmlər, istiqrazlar və bir çox digər faydalı məlumatlar üçün kotirovkaları yükləyə bilərsiniz.
2013-cü ildən bəri Excel XML məlumatlarını İnternetdən iş vərəqi xanalarına birbaşa yükləmək üçün iki funksiyaya malikdir: WEB XİDMƏTİ (VEBXİDMƏT) и FILTER.XML (FILTERXML). Onlar cüt-cüt işləyirlər - ilk növbədə funksiya WEB XİDMƏTİ istədiyiniz sayta sorğunu yerinə yetirir və cavabını XML formatında qaytarır, sonra isə funksiyadan istifadə edir FILTER.XML biz bu cavabı komponentlərə ayırırıq, ondan lazım olan məlumatları çıxarırıq.
Klassik misaldan istifadə edərək bu funksiyaların işinə baxaq – müəyyən bir tarix intervalı üçün bizə lazım olan istənilən valyutanın məzənnəsini Ölkəmizin Mərkəzi Bankının saytından idxal etməklə. Boşluq kimi aşağıdakı tikintidən istifadə edəcəyik:
Burada:
- Sarı hüceyrələr bizim üçün maraqlı olan dövrün başlanğıc və bitmə tarixlərini ehtiva edir.
- Mavi olanda, əmrdən istifadə edərək valyutaların açılan siyahısı var Məlumat - Doğrulama - Siyahı (Məlumat - Doğrulama - Siyahı).
- Yaşıl xanalarda biz sorğu sətri yaratmaq və serverin cavabını almaq üçün funksiyalarımızdan istifadə edəcəyik.
- Sağdakı cədvəl valyuta kodlarına istinaddır (bir az sonra bizə lazım olacaq).
Gedək!
Addım 1. Sorğu sətirinin formalaşdırılması
Saytdan tələb olunan məlumatları əldə etmək üçün onu düzgün soruşmaq lazımdır. Biz www.cbr.ru saytına gedirik və əsas səhifənin altbilgisindəki linki açırıq. Texniki Resurslar'- XML istifadə edərək məlumat əldə etmək (http://cbr.ru/development/SXML/). Biz bir az aşağı sürüşürük və ikinci misalda (Nümunə 2) bizə lazım olan şey olacaq - müəyyən bir tarix intervalı üçün valyuta məzənnələrini əldə etmək:
Nümunədən göründüyü kimi, sorğu sətirində başlanğıc tarixləri olmalıdır (tarix_tələb1) və sonluqlar (tarix_tələb2) bizi maraqlandıran dövr və valyuta kodu (VAL_NM_RQ), əldə etmək istədiyimiz nisbət. Əsas valyuta kodlarını aşağıdakı cədvəldə tapa bilərsiniz:
Valyuta | Kodu | | Valyuta | Kodu |
Avstraliya dolları | R01010 | litva lit | R01435 | |
Avstriya şillinqi | R01015 | Litva kuponu | R01435 | |
Azərbaycan manatı | R01020 | Moldova Leu | R01500 | |
Narınlamaq | R01035 | РќРμРјРμС † РєР ° СЏ РјР ° СЂРєР ° | R01510 | |
Anqola yeni kvanza | R01040 | holland gulderası | R01523 | |
Erməni Dramı | R01060 | norveç Krone | R01535 | |
Belarus rublu | R01090 | Zloti Polşa | R01565 | |
Belçika frankı | R01095 | Portuqaliyalı eskudo | R01570 | |
Bolqar Aslanı | R01100 | Rumıniya leu | R01585 | |
Braziliya real | R01115 | Sinqapur dolları | R01625 | |
Macar Forint | R01135 | Surinam dolları | R01665 | |
Hong Kong dolları | R01200 | tacik somonisi | R01670 | |
Yunan draxması | R01205 | tacik rublu | R01670 | |
Danimarka kronu | R01215 | Türk lirası | R01700 | |
ABŞ dolları | R01235 | türkmən manatı | R01710 | |
Euro | R01239 | Yeni türkmən manatı | R01710 | |
Hindistan rupiyi | R01270 | özbək məbləği | R01717 | |
İrlandiya funtu | R01305 | Ukrayna Grivnası | R01720 | |
İslandiya kronu | R01310 | Ukrayna karbovanets | R01720 | |
İspan pesetası | R01315 | Fin markası | R01740 | |
İtalyan lirəsi | R01325 | fransız frankı | R01750 | |
Qazaxıstan tengesi | R01335 | Çexiya koruna | R01760 | |
Kanada dolları | R01350 | İsveç kronu | R01770 | |
qırğız somu | R01370 | İsveçrə frankı | R01775 | |
Çin Yuan | R01375 | Estoniya kronu | R01795 | |
Küveyt dinarı | R01390 | Yuqoslaviya yeni dinarı | R01804 | |
Latviya latları | R01405 | Cənubi Afrika rand | R01810 | |
Livan lirəsi | R01420 | Koreya Respublikası Won | R01815 | |
Yapon Yen | R01820 |
Valyuta kodlarına dair tam bələdçi Mərkəzi Bankın internet saytında da mövcuddur – bax http://cbr.ru/scripts/XML_val.asp?d=0
İndi biz vərəqdəki hüceyrədə sorğu sətrini yaradacağıq:
- mətni birləşdirən operator (&) onu birləşdirmək üçün;
- Xüsusiyyətləri VPR (BAXIN)kataloqda bizə lazım olan valyutanın kodunu tapmaq;
- Xüsusiyyətləri TEXT (MƏTN), verilmiş nümunəyə görə tarixi gün-ay-il xəttinə çevirən.
="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")& "&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)
Addım 2. Sorğunu yerinə yetirin
İndi funksiyadan istifadə edirik WEB XİDMƏTİ (VEBXİDMƏT) yeganə arqument kimi yaradılan sorğu sətri ilə. Cavab XML kodunun uzun sətri olacaq (bütövlükdə görmək istəyirsinizsə, söz sarğısını yandırıb xana ölçüsünü artırmaq daha yaxşıdır):
Addım 3. Cavabın təhlili
Cavab məlumatlarının strukturunu başa düşməyi asanlaşdırmaq üçün onlayn XML analizatorlarından birini istifadə etmək daha yaxşıdır (məsələn, http://xpather.com/ və ya https://jsonformatter.org/xml-parser), XML kodunu vizual olaraq formatlaşdıra, ona abzaslar əlavə edə və sintaksisi rənglə vurğulaya bilər. Sonra hər şey daha aydın olacaq:
İndi kurs dəyərlərinin etiketlərimizlə çərçivələndiyini aydın görə bilərsiniz
Onları çıxarmaq üçün vərəqdə on (və ya daha çox - kənar ilə aparılırsa) boş xanalardan ibarət bir sütun seçin (çünki 10 günlük tarix intervalı təyin edilib) və funksiyanı düstur çubuğuna daxil edin. FILTER.XML (FİLTREXML):
Burada birinci arqument server cavabı (B8) olan xanaya keçiddir, ikincisi isə lazımi XML kod fraqmentlərinə daxil olmaq və onları çıxarmaq üçün istifadə edilə bilən xüsusi dil olan XPath-da sorğu sətridir. Məsələn, XPath dili haqqında daha çox oxuya bilərsiniz.
Düsturu daxil etdikdən sonra basmamaq vacibdir Daxil edin, və klaviatura qısa yolu Ctrl+ÜstKrkt+Daxil edin, yəni onu massiv düsturu kimi daxil edin (ətrafındakı qıvrım mötərizələr avtomatik əlavə olunacaq). Excel-də dinamik massivləri dəstəkləyən Office 365-in ən son versiyası varsa, o zaman sadə Daxil edin, və əvvəlcədən boş xanaları seçməyə ehtiyac yoxdur – funksiyanın özü lazım olduğu qədər xana götürəcək.
Tarixləri çıxarmaq üçün eyni şeyi edəcəyik - bitişik sütunda bir neçə boş xana seçəcəyik və eyni funksiyadan istifadə edəcəyik, lakin fərqli XPath sorğusu ilə Tarix atributlarının bütün dəyərlərini Qeyd etiketlərindən əldə etmək üçün:
=FILTER.XML(B8;”//Qeyd/@Tarix”)
İndi gələcəkdə B2 və B3 orijinal xanalarında tarixləri dəyişdirərkən və ya B3 xanasının açılan siyahısında fərqli valyuta seçərkən sorğumuz yeni məlumatlar üçün Mərkəzi Bankın serverinə istinad edərək avtomatik yenilənəcək. Yeniləməni əl ilə məcbur etmək üçün əlavə olaraq klaviatura qısa yolundan istifadə edə bilərsiniz Ctrl+Dayandırmaq+F9.
- Power Query vasitəsilə bitcoin dərəcəsini Excel-ə idxal edin
- Excelin köhnə versiyalarında İnternetdən valyuta məzənnələrini idxal edin