Ein treuer Leser brachte uns mit einer Aufgabe und dann doch mit eigener Lösung auf die Idee für diesen Artikel: Wir möchten den aktuellen Slicer- oder Filterwert auslesen. Wozu zeigt ein vielleicht doch alltägliches Beispiel: eine Statistik über gültige Lizenzen.
Die Aufgabe
Eine Softwarefirma verkauft ein eigenes Softwareprodukt – inklusive Lizenzvertrag. Die Gültigkeit einer Lizenz ist begrenzt und kann periodisch erneuert werden. Damit hat man (vereinfacht) folgende Rohdaten: Die Firma möchte nun wissen, wie sich die Anzahl gültiger Lizenzen über die Zeit entwickelt hat. Wir vergessen für das Beispiel das aktuelle Jahr und interessieren uns nur für den Monatsverlauf. Damit genügt eine sehr einfache Kalendertabelle: Eine Lizenz ist genau dann gültig, wenn der ausgewählte Monat größer oder gleich des Monats von Gültig von ist und gleichzeitig kleiner ist als der Monat von Gültig bis.
Die (eine) Lösung
Die beiden Tabellen werden _nicht_ verknüpft. Wir legen aber in der Kalendertabelle ein berechnetes Feld an:
Das Feld hat damit nur dann einen gültigen Wert, wenn eindeutig ein Eintrag ermittelt werden kann. Bei den Lizenzen legen wir ebenfalls ein berechnetes Feld an:
Hier filtern wir nur die Zeilen, die im Gültigkeitsraum liegen – ohne die beiden Tabellen zu verbinden. Die 0 wird am Ende addiert, da für manche Monate keine Lizenz vorliegt. Um eine Nullprüfung mit einem Konstrukt, wie “IF(ISBLANK([Ausdruck]);0;[AUSDRUCK])” zu vermeiden, addieren wir einfach eine 0. Damit bekommen wir mindestens eine “0” als Ergebnis. Unorthodox – aber es funktioniert.
Das Ergebnis
Für einen konkreten Monat können wir die Ergebnisse sehr einfach wie folgt darstellen: Eine Pivot-Tabelle oder ein Schaubild machen hier natürlich mehr Sinn:
Kommentar hinterlassen