In meinen Artikeln zu den besten Aktien Screenern für Value Investoren (Teil 1 und Teil 2) hatte ich euch bereits eine Reihe an (kostenlosen) Screenern zur ersten Generierung von Investment-Ideen vorgestellt. Regelmäßig bekomme ich diesbezüglich die Rückfrage nach Screens, die direkt in Excel oder Google Sheets funktionieren und die ein etwas flexibleres Filtern ermöglichen.
In diesem Zusammenhang möchte ich euch einmal meinen einfachen Screener vorstellen, den ich in Google Sheets (bzw. Google Tabellen) erstellt habe.
Überblick Google Sheets
Für diejenigen unter euch, die Google Sheets noch nicht kennen bzw. noch nie genutzt haben, hier zunächst ein paar grundsätzliche Infos und Tipps zum Programm.
Google Sheets (zu deutsch Google Tabellen) ist ein Tabellenkalkulationsprogramm ähnlich zu Microsoft Excel, allerdings mit im Vergleich etwas eingeschränkter Funktionalität. Die wesentlichen Formeln funktionieren aber genauso bzw. heißen genauso wie in Excel. Es ist also erstmal keine große Umgewöhnung erforderlich. Google Sheets funktioniert ausschließlich online und ihr könnt das Programm über den folgenden Link aufrufen (aus welchem Browser ist erstmal egal):
Ich würde empfehlen, vorab einfach mal etwas mit dem Programm herumzuspielen. Ihr werdet dann schnell sehen, dass die Unterschiede zu Excel eigentlich sehr überschaubar sind.
Vorteile gegenüber Excel
Im Vergleich zum klassischen Excel hat Google Sheets / Google Tabellen ein paar entscheidende Vorteile:
- Auf die Tabellen von Google Sheets kann über einen Browser online immer zugegriffen werden, d.h. ihr benötigt keine separate Software auf eurem Rechner mehr (ok, das kann Excel über Office 365 inzwischen zugegebenermaßen zwar auch, ich kenne aber bisher wenige, die dieses Paket von Microsoft auch tatsächlich gebucht haben)
- Google Sheets hat die “googlefinance” Funktion integriert, die es erlaubt, Aktienkurse und weitere Finanzdaten direkt über Google Finance (die nicht mehr wirklich weiterentwickelte Finanzwebseite von Google) in das Tabellenblatt zu importieren
- Google Sheets erlaubt einen vergleichsweise simplen Import von Finanzdaten von anderen Portalen (z.B. von Yahoo! Finance), nämlich ohne dass ein Makro oder Ähnliches programmiert werden muss
Schaut euch auch mein Portfolio Analyse Tool für Google Sheets an.
Daten für unseren Value Screener
Um unseren eigenen Value Screener in Google Sheets zu bauen, benötigen wir die verschiedensten Infos. Zum einen benötigen wir natürlich ein paar Preisdaten, also i.W. den aktuellen Aktienkurs sowie ein paar Daten zur Entwicklung in den letzten 52 Wochen, um zu sehen, wie sich die Aktie über das letzte Jahr hinweg entwickelt hat.
Darüber hinaus brauchen wir außerdem Daten zur Bewertung, also z.B. ein Kurs-Gewinn-Verhältnis oder etwas Ähnliches. Wir wollen ja wissen, welche Aktien bzw. Unternehmen im Vergleich zum erzielten Gewinn am günstigsten bewertet sind.
Abschließend sollten wir auch die Kapitalrendite (also z.B. den Return on Equity bzw. ROE) in unseren Screen mit aufnehmen, da diese Kennzahl typischerweise einen guten ersten Anhaltspunkt für die Wettbewerbsposition des Unternehmens darstellt.
Hier meine Liste mit den Elementen eines Screeners in Google Sheets:
- Allgemeine Daten
- Indexzugehörigkeit
- Unternehmensname
- Ticker (separat für Google Sheets und Yahoo! Finance)
- Währung
- Kursdaten
- Aktienkurs
- 52-Wochen-Tief
- 52-Wochen-Hoch
- Abstand zum 52-W-H
- Aktueller Kurs im Vergleich zum 52-W-T
- Bewertung
- Dividende
- Dividende je Aktie
- Dividendenrendite
- Payout Ratio
- Profitabilität
- Kapitalrendite (vergleichbar zu EPS und KGV wäre ROE)
Das sieht vielleicht erstmal umfangreich aus. Tatsächlich ist es aber recht einfach möglich, diese Daten in unser Google Sheets zu importieren.
Daten direkt über Google Finance
Fangen wir am besten einmal mit den Daten an, die wir direkt mithilfe der “googlefinance” Funkion ziehen können. Ein komplette Liste der Funktionen von Google Sheets findet ihr hier: https://support.google.com/docs/table/25273?hl=en.
Die Struktur der “googlefinance” Funktion sieht folgendermaßen aus (eckige Klammern deuten auf optional Einträge hin, d.h. die Formel funktioniert grundsätzlich auch, wenn ihr diese Infos weglasst):
GOOGLEFINANCE(ticker, [attribute], [start_date], [end_date|num_days], [interval])
Eine detailliertere Erläuterung, wie ihr die Funktion genau verwendet (inkl. eines Beispiels) öffnet sich, wenn ihr mit der Maus über die Formel fahrt:
Wenn wir einmal davon ausgehen, dass sich unser Google Finance Tickersymbol in der Spalte D befindet (für die erste Aktie genauer gesagt in der Zelle D10), dann sehen die Formeln für das Einfügen der Währungs- und Kursdaten wie folgt aus:
Währung | googlefinance($D10,”currency”) |
Aktueller Kurs | googlefinance($D10) |
52-Wochen-Tief | googlefinance($D10,”low52″) |
52-Wochen-Hoch | googlefinance($D10,”high52″) |
Gewinn je Aktie bzw. EPS | googlefinance($D10,”eps”) |
Kurs-Gewinn-Verhältnis bzw. KGV | googlefinance($D10,”pe”) |
Damit haben wir schonmal einen wesentlichen Teil unseres Datenbedarfs abgedeckt. Da die “googlefinance” Funktion allerdings keinen Import von Dividenden und Kapitalrenditen erlaubt, müssen wir diese Daten aus einer anderen Quelle importieren.
Datenimport von anderen Finanzwebseiten
Für den Import von Daten aus externen Quellen (also z.B. von Yahoo! Finance) stellt Google Sheets eine weitere Funktion, nämlich die so genannte “importxml” Funktion, zur Verfügung:
IMPORTXML(url, xpath_query)
Mehr Details zu dieser Funktion könnt ihr in meinem Artikel zum Web Scraping mit IMPORTXML nachlesen. Dort wird auch die Logik hinter dem so genannten XPATH genau erläutert. Ganz grob kann man aber sagen, dass wir zunächst über die URL auf die richtige Seite navigieren und anschließend über den XPATH genau die Stelle auf der Seite identifizieren, an der sich der gewünschte Datenpunkt befindet.
Hier möchte ich dem entsprechend nur kurz die Methodik für den Import der zwei für uns relevanten Datenpunkte – nämlich Dividende und Return on Equity (ROE) – darstellen.
Dividende
Bzgl. des Imports der Dividende sowie der Dividendenrendite von Yahoo! Finance mithilfe der “importxml” Funktion gibt es drei Dinge zu beachten:
- Die URL muss flexibilisiert werden und den entsprechenden Ticker aus Google Sheets berücksichtigen. Hierfür nutzen wir die CONCATENATE Funktion, welche den Anfang der URL (“https://finance.yahoo.com/quote/”) und den Ticker (in Zelle E10) zu einer URL (z.B. “https://finance.yahoo.com/quote/FNTN.DE” für die Freenet AG) zusammenführt
- Die Dividende wird bei Yahoo! Finance sowohl als absoluter Wert je Aktie als auch als Dividendenrendite in Prozent angegeben… und zwar in einer Zelle bzw. in einem Textfeld (die Darstellung bei Yahoo! wäre z.B. “1.65 (9.25%)” für die Freenet AG). Möchten wir nun die absolute Dividende und die Dividendenrendite trennen und in unserem Tabellenblatt in separate Zellen schreiben, dann müssen wir die beiden Datenpunkte mithilfe der SPLIT Funktion trennen
- Den XPATH können wir mithilfe der Browser Funktion “Untersuchen” identifizieren. Wie das genau geht, könnt ihr in meiner detaillierten Beschreibung im Artikel zum Web Scraping mit IMPORTXML nachlesen
Die Funktion für den Import der Dividende sieht dann folgendermaßen aus:
=split(IMPORTXML(concatenate(“https://finance.yahoo.com/quote/”,$E10),$H$2),“()”)
wobei Zelle E10 den Yahoo! Finance Ticker und Zelle H2 den XPATH enthält. Den XPATH habe ich hier in eine separate Zelle geschrieben, weil aus irgendeinem Grund die Formel nicht immer funktioniert, wenn der XPATH direkt in die Formel eingetragen wird. Hier der XPATH für die Dividende auf Basis der Seitenstruktur von Yahoo! Finance:
//*[@id=”quote-summary”]/div[2]/table/tbody/tr[6]/td[2]
Return on Equity (ROE)
Das Vorgehen zum Import der Eigenkapitalrendite ist ganz äquivalent zum Import der Dividende. Der wesentliche Unterschied besteht darin, dass die Eigenkapitalrendite bzw. der Return on Equity (ROE) bei Yahoo! Finance unter einer anderen URL (nämlich unter dem Reiter “Key Statistics”) zu finden ist. Darüber hinaus können wir auf die SPLIT Funktion verzichten, da wir in diesem Fall nur einen Datenpunkt in der entsprechenden Zelle vorliegen haben. Die Funktion erscheint also im Vergleich zum Import der Dividendendaten etwas einfacher:
=IMPORTXML(concatenate(“https://finance.yahoo.com/quote/”,$E10,“/key-statistics”),$H$3)
Ganz äquivalent habe ich den folgenden XPATH in eine separate Zelle (die Zelle H3) geschrieben:
//*[@class=”Mb(10px) Pend(20px) smartphone_Pend(0px)”]/div[3]/table/tbody/tr[2]/td[2]
Berechnung auf Basis anderer Kennwerte in Google Sheets
Weitere Kennwerte wie das Payout Ratio, die 52-Wochen Bandbreite sowie den prozentualen Abschlag gegenüber dem 52-Wochen-Hoch können wir abschließend ganz einfach auf Basis der bereits importierten Daten berechnen.
Darüber hinaus habe ich mir in meiner Version des Screeners einen Farbfilter eingebaut, sodass alle Werte farblich hervorgehoben werden, die meinen Grenzwert unter- oder überschreiten. Beispielsweise werden alle Werte mit einer Eigenkapitalrendite oberhalb von 20% entsprechend grün hinterlegt. Hierfür könnt ihr die Funktionalität “Conditional Formatting” verwenden (zu finden oben im Menü unter “Format”), die eigentlich selbsterklärend ist.
Limitierung des Datenimports
Falls ihr bis hierher gelesen habt, dann habt ihr bereits festgestellt, dass es eigentlich recht einfach ist, einen Aktien Screener in Google Sheets aufzusetzen und mit den entsprechenden Daten zu befüllen. Daten die es nicht direkt über die “googlefinance” Funktion gibt, könnt ihr recht einfach von anderen Seiten importieren.
“Das hört sich alles fast schon zu gut an” werden einige Skeptiker jetzt bestimmt sagen. Und tatsächlich gibt es auch aus meiner Sicht ein paar Faktoren, die die Freude über diesen Screener etwas trüben:
- Bei zu vielen Daten bzw. zu vielen Aktien in der Liste kann das System recht langsam werden. Ich habe die Erfahrung gemacht, dass Listen mit bis zu ca. 50 Werten noch ganz gut funktionieren und behelfe mir mit einer Listenauswahl. Das heißt konkret: Ich habe eine SDAX-Liste eine MDAX-Liste und so weiter, die ich mir jeweils per LOOKUP Funktion in das verformelte Tabellenblatt kopiere, um die maximale Anzahl an gleichzeitigen Berechnungen zu begrenzen
- Die Qualität der Daten ist etwas gemischt. Das gilt sowohl für die Infos von Google Finance, als auch für die Daten von Yahoo! Finance. Grundsätzlich können die Daten allerdings aus jeder beliebigen Online-Quelle gescrapt werden (also z.B. auch von Ariva, oder finanzen.net etc.)
Alles in allem sind das aber glaube ich Limitierungen, die es bei den meisten (oder sogar allen!) kostenlosen Screening-Optionen auch geben wird, sodass diese nicht per sé gegen die Lösung in Google Sheets sprechen. Auf der anderen Seite hat die Lösung viele Vorteile, da wir bzgl. der zu importierenden Daten und auch der Struktur des Screeners sehr flexibel sind und die Daten direkt in unserer Tabellenkalkulation weiterverwenden können.
Mehr über die verschiedenen Optionen zum Import von Finanzdaten nach Excel bzw. Google Sheets erfahren
Fazit
Einen Aktien Screener in Google Sheets, dem Online Tabellenkalkulationsprogramm von Google, zu erstellen ist recht einfach – speziell im Vergleich zu einer Lösung in Microsoft Excel.
Das liegt vor allem daran, dass Google Sheets mit “googlefinance” und “importxml” gleich zwei Funktionen zur Verfügung stellt, die das Importieren von Finanzdaten ins Spreadsheet stark erleichtern.
Ein Import sowohl von aktuellen Kursen, als auch von Daten zu Dividenden und sogar Kapitalrenditen ist so ohne Weiteres möglich.
Analog zu anderen kostenfreien Lösungen gibt es aber auch bei Google Sheets eine Limitation hinsichtlich der Geschwindigkeit beim Download einer großen Anzahl an Daten sowie eine gewisse Beschränkung, was die Datenqualität angeht.
Habt ihr bereits Erfahrungen mit einem Screener in Google Sheets gesammelt? Was haltet ihr davon im Vergleich zu anderen Optionen? Aus welchen Quellen ladet ihr die Daten in euer Spreadsheet bzw. welchen Quellen vertraut ihr am meisten? … kommentiert einfach unten, wenn ihr etwas Interessantes beizutragen habt.
3 Kommentare zu „Einen eigenen Screener in Google Sheets erstellen: So geht’s“
Hallo Axel,
bin begeistert von diesem Artikel.
Ich habe Google Sheets bisher nicht verwendet, sondern nutze “echtes” Excel mit Makros, weil ich meistens sehr viel mehr Daten aus dem Web abrufen und verarbeiten möchte.
Aber diese Lösung, wie du sie hier beschreibst, kann ich mir gut für kleine Anwendungen vorstellen.
Viele Grüße
Petra
Danke Axel für die detaillierte Vorstellung dieser Möglichkeit!
Hallo Axel,
ein schöner Artikel. Ich bauche mir gerade den Screener nach und habe einige Probleme mit der bedingten Formatierung mit Prozentzahlen (also z.B. ROE oder Dividendenrendite). Die Foramtieruung funktioniert hinten und vorne nicht.
Vielleicht kannst du mir einen Tipp geben.
Mfg
Robert