Diese Funktion wurde jedoch Ende 2017 abgeschaltet und die Yahoo API zur Abfrage von Aktienkursen wurde deaktiviert.
Da ich jetzt
wieder etwas Zeit habe, habe ich mich nach einer Alternative umgeschaut und bin
fündig geworden. Die hier beschriebene Methode ist für Excel 2013 gedacht mit
einer Anbindung an Google Sheets. Das Excel von Office 365 hat gemäß einigen
Quellen (Link, Link) einen eigenen Datentypen "Aktie",
die eine Kursabfrage und Abfragen für weitere Informationen erheblich
vereinfachen.
Mein
Vorgehen basiert auf der Funktion "IMPORTXML" anstatt wie oft zu
lesen auf der Funktion "GOOGLEFINANCE". Hintergrund ist, dass die
"GOOGLEFINANCE" Funktion eine sehr schlechte Fond-Unterstützung hat
und man sich immer die Kürzel aus z.B. http://www.boerse-frankfurt.de besorgen
muss. Einige Fonds werden trotz Kürzel nicht unterstützt (z.B. FvS Multiple
Opportunities, ISIN LU0323578657, Kürzel S6TB). Mittels der Funktion
"IMPORTXML" wird der Kurs von einer Webseite wie www.ariva.de per
XML-Grapping abgegriffen. Das funktioniert hier für sehr gut für Fonds und
Aktien
Anbindung an Google Sheets
Zunächst zu
den Schritten für das Vorgehen mittels Google Sheets Verknüpfung. Im
Grundgedanken sollte man wie folgt vorgehen:
- Erstellen einer Google Sheet Liste mit den gewünschten Aktien und ISIN Daten
- Nutzen der Funktion "IMPORTXML" direkt in Google Sheet
- Mittels Datenimport aus Text in Excel können dann per .csv die Aktienkurse importiert werden
Vorgehen in Google Sheets
Wie schon
gesagt, erstellt man sich zuerst in Google Sheets (Link) eine Tabelle mit z.B. den folgenden
Informationen:
- Aktienname
- ISIN
- Abfrage URL
- Aktuelle Kurs
Eine solche
Datei sieht z.B. wie diese aus (Link):
Google Sheet Datei |
Die Formeln
kann man dynamisch machen, so dass z.B. die Formel für die Abfrage URL wie
folgt lautet: "="https://www.ariva.de/" & B2". Dadurch erleichtert man sich viel Arbeit.
Wichtig ist
die Formel in der letzten Spalte "Aktueller Kurs":
"=IMPORTXML(""
& C2 & "";"//span[@itemprop='price'][1]")".
Die
IMPORTXML-Funktion ruft die Webseite aus C2 auf und gibt den gewünschten XPath-Wert zurück. In diesem Fall ist es der aktuelle Kurs. Dieser ist tief in der xml-Struktur im
Attribut "itemprop="price" zu finden. Auf anderen Webseiten wie
z.B. Finanzen.net kann er woanders liegen, dieses Beispiel ist für Ariva.de.
Um die XPath
des Kurses zu finden, kann man z.B. im Firefox Browser auf die Webseite der
gewünschten Aktie/Fond gehen, dann drückt man F12 und gelangt in einen
Debugger-Modus. Dort sucht man nach dem Kurs und gelangt dann in die
Xml-Struktur. Dort kann dann per Rechtsclick => Kopieren => XPath, der
XPath kopiert werden.
Freigeben des Sheets
Sofern man
fertig ist, muss man den Sheet noch als .csv freigeben. Dies geschieht
innerhalb von Google Sheets per Datei => Im Web veröffentlichen. Im
Anschluss wählt man das Tabellenblatt aus und den Typen als .CSV Datei.
Veröffentlichung der Datei |
Sollte man
es als Webseite veröffentlichen kommt Excel 2013 damit nicht klar und will die
Webseite einbinden. Da Excel anscheinend noch intern auf den Internet-Explorer
zugreift und Google Sheets diesen nicht optimal unterstützt, ist der CSV-Import
auf jeden Fall vorzuziehen!
Man sollte
auch die erneute automatische Veröffentlichung bei Änderung aktivieren. Diese
Option ist standardmäßig aktiviert und kann sonst unter "Veröffentlichte
Inhalte und Einstellungen" aktiviert werden.
Die
erscheinende URL sollte man sich merken, diese wird dann für Excel benötigt.
Import der CSV-Datei in Excel
Man sollte
sich die URL als Verknüpfung in den Ordner, wo man seine eigene Excel-Datei
hat, ablegen. Hintergrund ist der, dass Excel 2013 nach der Konfiguration des
Imports bei einem erneuten Import Teile der URL abschneidet. Somit findet er
diese nicht mehr. Wenn man eine Verknüpfung zur Webseite (bzw. zum CSV-Export)
abgelegt hat, kann man diesen immer direkt auswählen.
Ansonsten
geht man in Excel wie folgt vor:
- Unter "Daten" => externe Daten abrufen => Aus Text die soeben erstelle Verknüpfung auswählen (Alternativ die URL als Dateiname einfügen)
- In unserem Beispiel lautet die URL "https://docs.google.com/spreadsheets/d/e/2PACX-1vSQtpzwuakNPzkLFpILjRU9AAaQ6s9Zw9zoWPG4JvPKLI2EXi55wGiDjJDOGddvFQXrpCQXtf6vl4Kj/pub?gid=0&single=true&output=csv "
- "Öffnen" drücken
- Im nächsten Fenster auf "Weiter" drücken
- Dann bei den Trennzeichen noch zusätzlich das Komma auswählen
- "Fertig stellen" drücken
- Jetzt wird noch nach dem gewünschten Ort gefragt. Info hierzu, Excel generiert selbstständig neue Spalte und entfernt nicht alte Vorhandene. In diesem Beispiel wähle ich A1 aus
- Wenn alles so gemacht wurde, erhalte ich folgenden Inhalt in Excel:
Import in Excel |
Jetzt kann
man mit den Daten weiter arbeiten. Möchte man die Daten aktualisieren, so
drückt man unter "Daten => Alle aktualisieren".
Dann
erscheint ein neues Fenster:
Aktualisierung der URL |
Hier sieht
man auch das Problem, welches ich vorher beschrieben habe. Es werden Teile der
URL abgeschnitten. Sollte man eine Verknüpfung erstellt haben, dann ist auch
die Verknüpfung abgeschnitten, jedoch erscheint im Fenster wo hier "Es
wurden keine Suchergebnisse gefunden." steht die Verknüpfung.
Andere Daten importieren als nur den aktuellen Kurs
Möchte man
noch andere Daten der Aktienkurse importieren, so passt man sein Google Sheet
entsprechend an. Hier muss die Formel "IMPORTXML" angepasst werden
bzw. der XPath, der die gewünschten Daten beinhaltet. So sieht man z.B. den
aktuellen Gewinn in € bzw. % in der folgenden Struktur:
Weitere XPath Struktur |
Somit muss
man die „lastcolwin“ und „colwin“ Daten abfragen. (Es gab 0,355€ Gewinn bzw.
0,75%). Hat man jedoch nur mit Aktien zu tun, so ist die Funktion
"GOOGLEFINANCE" einfacher zu handhaben. Oder man nutzt einfach nur
Google Sheets.