Mundarija
Men bir necha bor ma'lumotlarni Excelga Internetdan avtomatik yangilash bilan import qilish usullarini tahlil qildim. Ayniqsa:
- Excel 2007-2013 ning eski versiyalarida bu to'g'ridan-to'g'ri veb-so'rov bilan amalga oshirilishi mumkin.
- 2010 yildan boshlab, bu Power Query plaginida juda qulay tarzda amalga oshirilishi mumkin.
Microsoft Excelning so'nggi versiyalaridagi ushbu usullarga endi boshqasini qo'shishingiz mumkin - o'rnatilgan funktsiyalardan foydalangan holda Internetdan ma'lumotlarni XML formatida import qilish.
XML (eXtensible Markup Language = Extensible Markup Language) har qanday turdagi ma'lumotlarni tavsiflash uchun mo'ljallangan universal tildir. Aslida, bu oddiy matn, lekin ma'lumotlar strukturasini belgilash uchun unga maxsus teglar qo'shilgan. Ko'pgina saytlar har kim yuklab olishi uchun XML formatida o'z ma'lumotlarining bepul oqimini taqdim etadi. Mamlakatimiz Markaziy bankining veb-saytida (www.cbr.ru), xususan, shunga o'xshash texnologiya yordamida turli valyutalarning kurslari to'g'risidagi ma'lumotlar keltirilgan. Moskva birjasi veb-saytidan (www.moex.com) siz aksiyalar, obligatsiyalar va boshqa ko'plab foydali ma'lumotlar uchun kotirovkalarni xuddi shu tarzda yuklab olishingiz mumkin.
2013-yildan beri Excel XML ma'lumotlarini Internetdan ishchi varaq hujayralariga to'g'ridan-to'g'ri yuklash uchun ikkita funktsiyaga ega: WEB XIZMAT (WEBSXIZMAT) и FILTER.XML (FILTERXML). Ular juftlikda ishlaydi - birinchi navbatda funktsiya WEB XIZMAT kerakli saytga so'rovni bajaradi va uning javobini XML formatida qaytaradi, so'ngra funksiyadan foydalanadi FILTER.XML biz ushbu javobni tarkibiy qismlarga ajratamiz va undan kerakli ma'lumotlarni chiqaramiz.
Keling, klassik misol yordamida ushbu funktsiyalarning ishlashini ko'rib chiqaylik - mamlakatimiz Markaziy banki veb-saytidan ma'lum bir sana oralig'ida bizga kerak bo'lgan istalgan valyuta kursini import qilish. Bo'sh joy sifatida biz quyidagi konstruktsiyadan foydalanamiz:
Bu yerga:
- Sariq hujayralar bizni qiziqtirgan davrning boshlanish va tugash sanalarini o'z ichiga oladi.
- Ko'k rangda buyruq yordamida valyutalarning ochiladigan ro'yxati mavjud Ma'lumotlar - Tasdiqlash - Ro'yxat (Ma'lumotlar - Tasdiqlash - Ro'yxat).
- Yashil katakchalarda biz so'rovlar qatorini yaratish va serverning javobini olish uchun o'z funksiyalarimizdan foydalanamiz.
- O'ngdagi jadval valyuta kodlariga havola (bu bizga birozdan keyin kerak bo'ladi).
Qani ketdik!
Qadam 1. So'rovlar qatorini shakllantirish
Saytdan kerakli ma'lumotlarni olish uchun uni to'g'ri so'rash kerak. Biz www.cbr.ru saytiga o'tamiz va asosiy sahifaning pastki qismidagi havolani ochamiz. Texnik manbalar - XML yordamida ma'lumotlarni olish (http://cbr.ru/development/SXML/). Biz biroz pastga tushamiz va ikkinchi misolda (2-misol) bizga kerak bo'lgan narsa bo'ladi - ma'lum bir sana oralig'ida valyuta kurslarini olish:
Misoldan ko'rinib turibdiki, so'rovlar qatorida boshlanish sanalari bo'lishi kerak (date_req1) va oxiri (date_req2) bizni qiziqtirgan davr va valyuta kodi (VAL_NM_RQ), biz olishni istagan stavka. Siz asosiy valyuta kodlarini quyidagi jadvalda topishingiz mumkin:
Valyutalar | Code | | Valyutalar | Code |
Avstraliya dollari | R01010 | Litva litalari | R01435 | |
Avstriya shillingi | R01015 | Litva kuponi | R01435 | |
Ozarbayjon manati | R01020 | Moldaviya levi | R01500 | |
funt | R01035 | RqRµRjRµS † RêER ° SĐ RjR ° SĐRêER ° | R01510 | |
Angola yangi kvanzasi | R01040 | Gollandiya gulderi | R01523 | |
Arman dramasi | R01060 | Norvegiya Krone | R01535 | |
Belarus rubli | R01090 | Polsha Zloty | R01565 | |
Belgiya franki | R01095 | Portugal eskudosi | R01570 | |
Bolgariya sher | R01100 | Ruminiya levi | R01585 | |
Braziliyalik haqiqiy | R01115 | Singapur Dollar | R01625 | |
venger forinti | R01135 | Surinam dollari | R01665 | |
Hong Kong Dollar | R01200 | tojik somoni | R01670 | |
Yunon draxmasi | R01205 | tojik rubli | R01670 | |
Daniya kronasi | R01215 | Turk lirasi | R01700 | |
AQSh dollari | R01235 | Turkman manati | R01710 | |
Evro | R01239 | Yangi turkman manati | R01710 | |
Hindiston Rupisi | R01270 | o'zbek so'mi | R01717 | |
Irlandiya funti | R01305 | Ukraina Grivnası | R01720 | |
Islandiya kronasi | R01310 | Ukraina karbovanets | R01720 | |
Ispaniya pesetasi | R01315 | Fin belgisi | R01740 | |
Italiya lirasi | R01325 | ochiq frantsuz | R01750 | |
Qozog‘iston tengesi | R01335 | Chexiya koruna | R01760 | |
Kanada dollari | R01350 | Shved kronasi | R01770 | |
Qirg'iz so'mi | R01370 | Shveytsariya franki | R01775 | |
Xitoy yuanga | R01375 | Estoniya kronu | R01795 | |
Kuvayt dinori | R01390 | Yugoslaviya yangi dinori | R01804 | |
Latviya latlari | R01405 | Janubiy Afrika rand | R01810 | |
Livan funtu | R01420 | Koreya Respublikasi yutdi | R01815 | |
Yaponiya Yen | R01820 |
Valyuta kodlari bo'yicha to'liq qo'llanma Markaziy bankning veb-saytida ham mavjud - qarang: http://cbr.ru/scripts/XML_val.asp?d=0
Endi biz quyidagi varaqdagi katakchada so'rovlar qatorini hosil qilamiz:
- uni birlashtirish uchun matnni birlashtirish operatori (&);
- Xususiyatlari VPR (KO'RISH)katalogdan bizga kerak bo'lgan valyuta kodini topish;
- Xususiyatlari TEXT (MATN), qaysi kun-oy-yil berilgan naqshga muvofiq sanani qiyshiq chiziq orqali aylantiradi.
="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")& "&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)
Qadam 2. So'rovni bajaring
Endi biz funktsiyadan foydalanamiz WEB XIZMAT (WEBSXIZMAT) yagona argument sifatida yaratilgan so'rovlar qatori bilan. Javob XML kodining uzun qatori bo'ladi (agar siz uni to'liq ko'rishni istasangiz, so'zlarni o'rashni yoqing va hujayra hajmini oshiring):
3-qadam. Javobni tahlil qilish
Javob ma'lumotlarining tuzilishini tushunishni osonlashtirish uchun onlayn XML tahlilchilaridan birini ishlatish yaxshiroqdir (masalan, http://xpather.com/ yoki https://jsonformatter.org/xml-parser), XML kodini vizual ravishda formatlash, unga chekinishlar qo'shish va sintaksisni rang bilan ta'kidlash mumkin. Keyin hamma narsa aniqroq bo'ladi:
Endi siz kurs qiymatlari bizning teglar bilan belgilanganligini aniq ko'rishingiz mumkin
Ularni ajratib olish uchun varaqdagi o'nta (yoki undan ko'p - chegara bilan qilingan bo'lsa) bo'sh katakchalardan iborat ustunni tanlang (chunki 10 kunlik sana oralig'i o'rnatilgan) va funktsiyani formulalar qatoriga kiriting. FILTER.XML (FILTRXML):
Bu erda birinchi argument server javobiga ega bo'lgan katakchaga havola (B8), ikkinchisi esa XPath-dagi so'rovlar qatori bo'lib, zarur XML kod fragmentlariga kirish va ularni ajratib olish uchun ishlatilishi mumkin bo'lgan maxsus tildir. XPath tili haqida ko'proq o'qishingiz mumkin, masalan, bu erda.
Formulani kiritgandan so'ng, bosmaslik muhimdir kiriting, va klaviatura yorlig'i Ctrl+smena+kiriting, ya'ni uni massiv formulasi sifatida kiriting (uning atrofidagi jingalak qavslar avtomatik ravishda qo'shiladi). Agar sizda Excel-da dinamik massivlarni qo'llab-quvvatlaydigan Office 365-ning so'nggi versiyasi bo'lsa, unda oddiy kiriting, va oldindan bo'sh katakchalarni tanlash shart emas - funksiyaning o'zi qancha kerak bo'lsa, shuncha hujayra oladi.
Sanalarni chiqarish uchun biz xuddi shunday qilamiz - qo'shni ustundagi bir nechta bo'sh katakchalarni tanlaymiz va bir xil funktsiyadan foydalanamiz, lekin Record teglaridan Sana atributlarining barcha qiymatlarini olish uchun boshqa XPath so'rovi bilan:
=FILTER.XML(B8;”//Record/@Sana”)
Endi kelajakda, B2 va B3 asl katakchalaridagi sanalarni o'zgartirganda yoki B3 katakchaning ochiladigan ro'yxatida boshqa valyutani tanlashda bizning so'rovimiz yangi ma'lumotlar uchun Markaziy bank serveriga murojaat qilib, avtomatik ravishda yangilanadi. Yangilashni qo'lda majburlash uchun siz qo'shimcha ravishda klaviatura yorliqlaridan foydalanishingiz mumkin Ctrl+Alt+F9.
- Power Query orqali bitcoin kursini Excelga import qiling
- Excelning eski versiyalarida Internetdan valyuta kurslarini import qiling