Lessons Learned 2012 - Indexed Time Series Chart

Ende Mai wird es langsam spät für "Lessons Learned" aus dem Vorjahr, aber die "Indexed Time Series Chart" Darstellung wollte ich auf unserem Blog noch vorstellen :-).  Die konkrete Anforderung war: Man will die Umsatzentwicklung mehrerer Filialen prozentuell ab einem Stichtag X gegenüberstellen. So will der Benutzer ablesen, welche Filialen eine gute Umsatzentwicklung hingelegt haben, und welche hinterherhinken.

Ein Liniendiagramm mit absoluten Zahlen ist hier schwieriger zu interpretieren: eine direkte Gegenüberstellung von "umsatzstarken" Filialen zu kleineren Filialen lässt sich aufgrund der Skalierung schwer umsetzen. Das folgende Bild zeigt einen alten Datenbestand von Yahoo Finance aus dem Jahr 2009. Welche Aktie sich gut entwickelt hat ist kaum zu erkennen. Der Kurs der "Immofinanz" ist im Vergleich zur "Vienna Insurance" soviel niedriger, dass die Skalierung kaum eine Interpretation über die Aktienkursentwicklung zuläßt.


Eine bessere Darstellung für unsere Anforderung wäre, den Stichtag 01. Juli 2009 für alle Aktien mit 100% zu indizieren, und dann die prozentuelle Entwicklung über die Zeit zu betrachten. Die Kollegen von qvdesign haben dazu einen schönen Blogeintrag mit Beispiels .qvw anhand des "Big Mac Index" gebastelt.

Das Prinzip angewandt auf unsere Daten zeigt: Die Immofinanz hat sich im gewählten Zeitraum mit Abstand am Besten entwickelt.


Als Dimension dient hier das Datum und der "Name" der Aktie.  Technisch interessant ist aber vor allem die Formel die in QlikView benutzt wird:

sum(Close)/(sum(total <Name> if(Date=min(total Date),Close)))
Der Dividend sum(Close) ist noch klar: Close ist die Kennzahl die hier dargestellt werden soll.

Der Divisor ist der spannende Teil: Um aber pro Aktie/Filiale/Name immer auf den ersten Tag (= die 100%) referenzieren zu können muss man QlikView mit dem "total <Name>"-Qualifier aus der eigenen Chart-Dimension herausspringen lassen und dann mit "Date=min (total Date)" das erste Datum pro Name holen.



Alle meine bisherigen Lösungen für diese Art Darstellung hatten Einschränkungen, und sind entsprechend nicht zu empfehlen:

sum(Close)/firstsortedvalue(total<Name> Close,Date)
> Funktioniert nur, wenn es pro Tag genau einen Close-Wert gibt!

sum(Close)/sum({$<DateX={$(vMinDate)} >} if (SymbolX = Symbol,CloseX))
> Mit Set Anaylsis mußte ich die Faktentabelle nochmal als "Lookup" laden. Schon mit kleinen Datenmengen langsam.
Das Beispiel findet sich unter: http://content.heldendaten.eu/indexedtimechart.zip
PS: leider funktioniert das Datenladen von YahooFinance scheinbar nicht mehr! Deswegen dieser alte Datentopf!







0 Response to "Lessons Learned 2012 - Indexed Time Series Chart"

Kommentar veröffentlichen

heldendaten GmbH,2017