Lessons Learned 2014 - Alterspyramide Darstellung
Vor längerer Zeit wurde ich gebeten eine Altersstruktur über die Konzernmitarbeiter in QlikView darzustellen. Eine gut zu lesendes Chart dafür ist eine Alterspyramide, bei der die Altersstruktur getrennt nach Frauen und Männern auf zwei Seiten dargestellt wird. Ein schönes Beispiel dazu findet man online bei Statistik Austria.
Im QlikView Script habe ich mir dafür ein eigenes Feld "Altersklasse" vorbereitet.
Die selten genutzte Funktion age() rechnet das Alter einer Person zum heutigen Tag today() aus. Class() wird benutzt um das Alter der Personen in 5-Jahres-Scheiben zu gruppieren. Da die Class()-Funktion wenig elegant die Textsyntax 30 <= x < 35 liefert, geht man am besten noch mit einem String-Replace() auf die schönere Darstellung 30-35.
Um das Chart zu bauen, benutzt man am besten ein gestapeltes Kombichart in horizontaler Ausrichtung. Das Chart benötigt 2 Dimensionen: Altersklasse und Geschlecht sowie eine Expression.
Wer die Formel unterhalb liest, der sieht, dass das weibliche Geschlecht mit einem negativen Vorzeichen versehen wird. Das ist natürlich nicht sehr gentlemanlike, und führte im Projekt - höflich ausgedrückt - eher zu einer Ablehnung dieses Charts.
Nachdem in letzter Zeit in der QlikCommunity viel über Unicode und Numberformat diskutiert wurde, nahm ich mich des Problems wieder an, und suchte die Männlich- und Weiblich-Unicodezeichen heraus.
Hinterlegt man bei der Formel folgenden Zahlencode
so löst man das Problem. Der erste Zahlencode wird für positive Werte (in diesem Fall männlich), der zweite Zahlencode für negative Werte (in diesem Fall weiblich) angezeigt. Das Chart zeigt nun die Werte deutlich höflicher an!
Das komplette Beispiel findet sich hier zum Download.
![]() |
Bevölkerungspyramide von Österreich und Wien |
Load *, dual(replace(class(Alter,5),'<= x <','-'),class(Alter,5)) as Altersklassen; LOAD age(today(),Geburtsdatum) as Alter, Geburtsdatum, Nachname, Vorname, Geschlecht FROM Personal.csv (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Die selten genutzte Funktion age() rechnet das Alter einer Person zum heutigen Tag today() aus. Class() wird benutzt um das Alter der Personen in 5-Jahres-Scheiben zu gruppieren. Da die Class()-Funktion wenig elegant die Textsyntax 30 <= x < 35 liefert, geht man am besten noch mit einem String-Replace() auf die schönere Darstellung 30-35.
Um das Chart zu bauen, benutzt man am besten ein gestapeltes Kombichart in horizontaler Ausrichtung. Das Chart benötigt 2 Dimensionen: Altersklasse und Geschlecht sowie eine Expression.
![]() |
Kombi Diagramm, Ausrichtung Horizontal und Subtyp Gestapelt |
Wer die Formel unterhalb liest, der sieht, dass das weibliche Geschlecht mit einem negativen Vorzeichen versehen wird. Das ist natürlich nicht sehr gentlemanlike, und führte im Projekt - höflich ausgedrückt - eher zu einer Ablehnung dieses Charts.
![]() |
"Minus"-Frauen kommen nicht gut an! |
Nachdem in letzter Zeit in der QlikCommunity viel über Unicode und Numberformat diskutiert wurde, nahm ich mich des Problems wieder an, und suchte die Männlich- und Weiblich-Unicodezeichen heraus.
Hinterlegt man bei der Formel folgenden Zahlencode
♂#.##0;♀#.##0
so löst man das Problem. Der erste Zahlencode wird für positive Werte (in diesem Fall männlich), der zweite Zahlencode für negative Werte (in diesem Fall weiblich) angezeigt. Das Chart zeigt nun die Werte deutlich höflicher an!
Das komplette Beispiel findet sich hier zum Download.