Inhalte
Ich habe immer wieder Möglichkeiten analysiert, Daten aus dem Internet in Excel mit anschließender automatischer Aktualisierung zu importieren. Im Speziellen:
- In älteren Versionen von Excel 2007-2013 konnte dies mit einer direkten Webanfrage erfolgen.
- Ab 2010 geht das ganz bequem mit dem Power Query Add-In.
Zu diesen Methoden in den neuesten Versionen von Microsoft Excel können Sie jetzt eine weitere hinzufügen – den Import von Daten aus dem Internet im XML-Format mithilfe integrierter Funktionen.
XML (eXtensible Markup Language = Extensible Markup Language) ist eine universelle Sprache zur Beschreibung beliebiger Daten. Tatsächlich handelt es sich um einfachen Text, dem jedoch spezielle Tags hinzugefügt wurden, um die Datenstruktur zu kennzeichnen. Viele Websites bieten kostenlose Streams ihrer Daten im XML-Format zum Herunterladen an. Auf der Website der Zentralbank unseres Landes (www.cbr.ru) werden insbesondere mit Hilfe einer ähnlichen Technologie Daten zu den Wechselkursen verschiedener Währungen angegeben. Von der Website der Moskauer Börse (www.moex.com) können Sie Kurse für Aktien, Anleihen und viele andere nützliche Informationen auf die gleiche Weise herunterladen.
Seit Version 2013 verfügt Excel über zwei Funktionen, um XML-Daten direkt aus dem Internet in Arbeitsblattzellen zu laden: INTERNETSERVICE (INTERNETSERVICE) и FILTER.XML (XML-FILTER). Sie arbeiten paarweise – zuerst die Funktion INTERNETSERVICE führt eine Anfrage an die gewünschte Site aus und gibt ihre Antwort im XML-Format zurück und verwendet dann die Funktion FILTER.XML Wir „parsen“ diese Antwort in Komponenten und extrahieren daraus die Daten, die wir benötigen.
Schauen wir uns die Funktionsweise dieser Funktionen anhand eines klassischen Beispiels an – den Import des Wechselkurses einer beliebigen Währung, die wir für ein bestimmtes Datumsintervall benötigen, von der Website der Zentralbank unseres Landes. Als Leerzeichen verwenden wir folgende Konstruktion:
Hier:
- Die gelben Zellen enthalten die Start- und Enddaten des für uns interessanten Zeitraums.
- Der blaue hat eine Dropdown-Liste mit Währungen, die den Befehl verwenden Daten – Validierung – Liste (Daten – Validierung – Liste).
- In den grünen Zellen verwenden wir unsere Funktionen, um eine Abfragezeichenfolge zu erstellen und die Antwort des Servers zu erhalten.
- Die Tabelle auf der rechten Seite ist ein Verweis auf Währungscodes (wir werden sie etwas später benötigen).
Los geht's!
Schritt 1. Erstellen einer Abfragezeichenfolge
Um die erforderlichen Informationen von der Website zu erhalten, müssen Sie sie richtig fragen. Wir gehen zu www.cbr.ru und öffnen den Link in der Fußzeile der Hauptseite. Technische Ressourcen'- Abrufen von Daten mit XML (http://cbr.ru/development/SXML/). Wir scrollen etwas nach unten und im zweiten Beispiel (Beispiel 2) finden Sie das, was wir brauchen – die Wechselkurse für ein bestimmtes Datumsintervall abrufen:
Wie Sie dem Beispiel entnehmen können, muss die Abfragezeichenfolge Startdaten enthalten (date_req1) und Endungen (date_req2) des für uns interessanten Zeitraums und des Währungscodes (VAL_NM_RQ), deren Rate wir erhalten möchten. Die wichtigsten Währungscodes finden Sie in der folgenden Tabelle:
Währung | Code | | Währung | Code |
Australischer Dollar | R01010 | Litauische Litas | R01435 | |
Österreichischer Schilling | R01015 | Litauischer gutschein | R01435 | |
Aserbaidschanisches Manat | R01020 | Moldauischer Leu | R01500 | |
Pfund | R01035 | РќРµРјРµС † РєР ° СЏ РјР ° СЂРєР ° | R01510 | |
Angolanisches neues Kwanza | R01040 | Niederländischer Gulden | R01523 | |
Armenischer Dram | R01060 | norwegische Krone | R01535 | |
Weißrussischer Rubel | R01090 | Polnischer Zloty | R01565 | |
Belgischer Franken | R01095 | Portugiesischer Escudo | R01570 | |
Der bulgarische Löwe | R01100 | Rumänischer Leu | R01585 | |
Brasilianischer Real | R01115 | Singapur-Dollar | R01625 | |
Ungarische Forint | R01135 | Surinam-Dollar | R01665 | |
Hongkong Dollar | R01200 | Tadschikischer Somoni | R01670 | |
Griechische Drachme | R01205 | Tadschikischer Rubel | R01670 | |
Dänische Krone | R01215 | Türkische Lira | R01700 | |
US Dollar | R01235 | Turkmenisches Manat | R01710 | |
Euro | R01239 | Neuturkmenischer Manat | R01710 | |
indische Rupie | R01270 | Usbekische Summe | R01717 | |
Irisches Pfund | R01305 | Ukrainische Griwna | R01720 | |
Isländische Krone | R01310 | Ukrainische Karbowanez | R01720 | |
Spanische Peseten | R01315 | Finnische Marke | R01740 | |
Italienische Lire | R01325 | Französischer Franken | R01750 | |
Kasachischer Tenge | R01335 | Tschechische Krone | R01760 | |
Kanadischer Dollar | R01350 | Schwedische Krone | R01770 | |
Kirgisisch som | R01370 | Schweizer Franken | R01775 | |
chinesischer Yuan | R01375 | Estnische Krone | R01795 | |
Kuwaitischer Dinar | R01390 | Jugoslawischer neuer Dinar | R01804 | |
Lettische Lats | R01405 | Südafrikanischer Rand | R01810 | |
Libanesisches Pfund | R01420 | Republik Korea hat gewonnen | R01815 | |
Japanische YEN | R01820 |
Eine vollständige Anleitung zu den Währungscodes ist auch auf der Website der Zentralbank verfügbar – siehe http://cbr.ru/scripts/XML_val.asp?d=0
Jetzt bilden wir eine Abfragezeichenfolge in einer Zelle auf einem Blatt mit:
- der Textverkettungsoperator (&), um ihn zusammenzusetzen;
- Eigenschaften VPR (SVERWEIS)um den Code der Währung zu finden, die wir im Verzeichnis benötigen;
- Eigenschaften TEXT (TEXT), der das Datum nach dem vorgegebenen Muster Tag-Monat-Jahr durch einen Schrägstrich umwandelt.
="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")& "&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)
Schritt 2. Führen Sie die Anfrage aus
Jetzt verwenden wir die Funktion INTERNETSERVICE (INTERNETSERVICE) mit der generierten Abfragezeichenfolge als einzigem Argument. Die Antwort wird eine lange Zeile XML-Code sein (es ist besser, den Zeilenumbruch zu aktivieren und die Zellengröße zu erhöhen, wenn Sie ihn vollständig sehen möchten):
Schritt 3. Analysieren der Antwort
Um die Struktur der Antwortdaten besser nachvollziehen zu können, verwenden Sie besser einen der Online-XML-Parser (z. B. http://xpather.com/ oder https://jsonformatter.org/xml-parser). die XML-Code visuell formatieren, Einzüge hinzufügen und die Syntax farblich hervorheben kann. Dann wird alles viel klarer:
Nun sieht man deutlich, dass die Kurswerte von unseren Tags umrahmt werden
Um sie zu extrahieren, wählen Sie eine Spalte mit zehn (oder mehr – wenn Sie mit einem Rand fertig sind) leeren Zellen auf dem Blatt aus (da ein Datumsintervall von 10 Tagen festgelegt wurde) und geben Sie die Funktion in die Bearbeitungsleiste ein FILTER.XML (FILTERXML):
Hier ist das erste Argument ein Link zu einer Zelle mit einer Serverantwort (B8) und das zweite ein Abfragestring in XPath, einer speziellen Sprache, mit der auf die erforderlichen XML-Codefragmente zugegriffen und diese extrahiert werden können. Hier können Sie beispielsweise mehr über die Sprache XPath lesen.
Es ist wichtig, dass Sie nach Eingabe der Formel nicht drücken Enter, und die Tastenkombination Ctrl+Shift+Enter, dh als Matrixformel eingeben (die geschweiften Klammern darum werden automatisch hinzugefügt). Wenn Sie die neueste Version von Office 365 mit Unterstützung für dynamische Arrays in Excel haben, dann ist eine einfache Enter, und Sie müssen keine leeren Zellen im Voraus auswählen – die Funktion selbst nimmt so viele Zellen, wie sie benötigt.
Um Daten zu extrahieren, gehen wir genauso vor – wir wählen mehrere leere Zellen in der angrenzenden Spalte aus und verwenden dieselbe Funktion, aber mit einer anderen XPath-Abfrage, um alle Werte der Datumsattribute aus den Datensatz-Tags zu erhalten:
=FILTER.XML(B8;”//Datensatz/@Datum”)
Wenn Sie in Zukunft die Daten in den ursprünglichen Zellen B2 und B3 ändern oder eine andere Währung in der Dropdown-Liste der Zelle B3 auswählen, wird unsere Abfrage automatisch aktualisiert und auf den Server der Zentralbank für neue Daten verwiesen. Um ein Update manuell zu erzwingen, können Sie zusätzlich die Tastenkombination verwenden Ctrl+Andere+F9.
- Importieren Sie den Bitcoin-Kurs über Power Query in Excel
- Importieren Sie Wechselkurse aus dem Internet in ältere Versionen von Excel