In diesem Blog-Post möchten wir einmal demonstrieren wie man ein Ressourcen-Auslastungsdiagramm mit Power BI erzeugen kann. Die Aufgabe ist wie folgt. Wir haben eine Datenquelle (in unserem Fall Excel) in der für Mitarbeiter und Projekte für jeden Monat des Jahres eine prozentuale Auslastungsangabe eingetragen ist, d.h. es ist geplant, dass sich ein bestimmter Mitarbeiter in einem bestimmten Monat zu einem bestimmten Prozentsatz seiner Arbeitszeit mit einem bestimmten Projekt beschäftigen soll. Als Beispiel für diesen Artikel haben wir einfach einmal die folgende Excel-Tabelle erstellt.
Ziel ist es auf Basis dieser Tabelle ein Ressourcen-Auslastungsdiagramm zu erzeugen das so ähnlich aussieht wie das Diagramm im Team Foundation Server. Als Basis für dieses Diagramm nutzen wir ein Balkendiagramm. Das Diagramm soll die folgende Eigenschaft haben: Immer wenn eine Ressource in einem Monat überlastet ist soll der Balken in rot angezeigt werden, ansonsten in grün. Außerdem wollen wir eine Möglichkeit schaffen die Auslastung eines Mitarbeiters durch einen Drill-Down näher zu analysieren, d.h. wenn erkannt wurde dass ein Mitarbeiter in einem bestimmten Monat überlastet ist, dann soll es möglich sein einen Drilldown durchzuführen so dass klar wird welche Aufgabe wie viel Prozent der Arbeitszeit in Anspruch nimmt. Wie genau man ein solches Diagramm bauen kann werden wir nun zeigen. Als erstes müssen wir die Daten an unseren Power BI Bericht anbinden.
Dazu starten wir Power BI und fügen dann über Daten abrufen | Excel unsere Excel-Datei in den Power BI Bericht ein.
Nun müssen wir die richtige Excel Datei auswählen.
In unserem Fall ist das Demo Daten Ressourcenverwaltung. In dieser Datei wählen wir dann die Tabelle aus in der die Daten für das Ressourcendiagramm gespeichert sind. Im Beispiel ist das die Tabelle 11. Diese muss ausgewählt werden und dann klicken wir auf den Button Laden.
In unserem Beispiel müssen wir die Daten nicht weiter bearbeiten weil diese in der Excel-Datei schon so enthalten sind wie wir sie für das Ressourcen-Auslastungsdiagramm benötigen.
Bevor wir weitermachen werden wir allerdings noch eben die Datenmenge in Auslastung
Um das Auslastungsdiagramm zu erzeugen müssen wir nun erstmal ein Balkendiagramm erzeugen.
An die Achse binden wir die Namen der Mitarbeiter, als Wert geben wir nun Jan an, damit dort die Werte für Januar angezeigt werden. Da es sich bei den Prozentangaben um Zahlen handelt werden diese für den angegebenen Monat und Mitarbeiter über alle Aufgaben aggregiert, d.h. es wird die Gesamtauslastung angezeigt.
Damit haben wir zumindest schon einmal das Diagramm erstellt. Dieses wird nun im nächsten Schritt etwas verschönert, d.h. wir setzen den Titel-Text auf Januar, verkleinern das Diagramm etwas und setzen die Text-Ausrichtung des Titels auf zentriert.
Eine der Anforderungen ist nun, dass der Balken dann in rot angezeigt wird wenn der Prozentwert der Auslastung für den Mitarbeiter über 100% liegt. Liegt der Wert darunter, so ist die Auslastung OK und der Balken des Mitarbeiters wird in grün dargestellt. Leider verfügt Power BI in der aktuellen Version nicht über die Möglichkeit der bedingten Formatierung von Diagrammteilen, daher müssen wir uns hier selbst etwas ausdenken.
Die Idee die wir dabei entwickelt haben ist relativ einfach. Es gibt offenbar zwei Zustände. Entweder ist der Wert der Auslastung unter 100%, dann ist es ein grüner Zustand oder der Wert ist über 100% dann ist es ein roter Zustand. Ist der Wert genau 100% wird die Arbeitsauslastung auch in grün angezeigt. Wir erstellen nun für jeden Monat ein Measure, das genau diese Logik als Formel abbildet und entweder eine 0 (<= 100%) oder eine 1 zurückliefert.
Hierzu erstellen wir ein Measure indem wir mit der rechten Maustaste auf die Datenmenge klicken und dann im Kontext-Menü auf Neues Measure klicken.
Das neue Measure nennen wir Jan_Indikator und die Formel ist, wie im folgenden Screenshot dargestellt. Ist der Wert größer 100 wird eine 1 zurückgeliefert, sonst eine 0.
Einen solchen Indikatorwert erstellen wir nun für jede Monatsspalte.
Nachdem dies vollbracht ist wird der Indikator-Wert an die Farbsättigung des Balkendiagramms gebunden.
Um einen Umschlag-Effekt von Grün auf Rot zu erzielen müssen wir nun die Farbsättigung bzw. den zugrundeliegenden Farbverlauf anpassen. Hierzu gehen wir in den Design-Bereich des Balkendiagramms und setzen die Farbe für das Minimum auf grün und die Farbe für das Maximum auf Rot. Da wir mit den diskreten Werten 0 und 1 arbeiten werden die teilweise gewöhnungsbedürftigen Zwischentöne gar nicht verwendet. Als Minimum-Wert stellen wir nun die 0 und als Maximum-Wert die 1 ein.
Das Ergebnis was wir mit diesen Einstellungen erzielen konnten kann sich schon einmal sehen lassen und entspricht ziemlich genau dem, was wir erreichen wollten. Wir haben ein Diagramm dessen Balken für Werte unter 100% grün und für Werte über 100% rot sind.
Nun fehlt eigentlich nur noch die Funktion mit der wir in die einzelnen Balken hineindrillen können um festzustellen mit welchen Aufgaben die Mitarbeiter beschäftigt sind. Hierzu müssen wir eine Hierarchie erstellen. In der Hierarchie befindet sich auf der Haupt-Ebene der Name des Mitarbeiters und diesem untergeordnet sind die Projekte des Mitarbeiters.
Um eine solche Hierarchie zu erstellen muss man einfach mit der rechten Maustaste im Bereich Felder auf den Namen klicken und dort dann Neue Hierarchie auswählen.
Die Hierarchie nennen wir um in Mitarbeiter.
In die Hierarchie wird nun noch das Feld Aufgabe per Drag & Drop gezogen.
Damit ist die Hierarchie soweit fertig. Als letzten Schritt müssen wir nun die neue Hierarchie Mitarbeiter an die Achse des Balkendiagramms binden.
Nachdem dies geschehen ist stehen uns nun die Steuerelemente für Hierarchien zur Verfügung.
Klickt man nun rechts auf den Pfeil nach unten und dann auf den Balken eines Mitarbeiters werden dann die Aufgaben des Mitarbeiters angezeigt.
Dieses Diagramm kopieren wir jetzt elf Mal und binden die jeweiligen Monate und zugehörigen Indikatoren an die entsprechenden Felder. Was noch wichtig ist, ist dass wir die Diagramme alle gleich groß machen und dass wir das Maximum der Achse auf 200 setzen, damit die dargestellten Balken der Balkendiagramme auch optisch vergleichbar sind. Als Abmessungen für die Diagramme habe ich die folgenden Parameter verwendet.
Der fertige Bericht sieht dann wie folgt aus:
Grundsätzlich kann man den Trick mit den diskreten Werten für die Farbsättigung auch mit drei Farben (z.B. grün, gelb und rot) anwenden. Hierzu muss man einfach im Measure drei Zustände zurückgeben und dann bei der Farbsättigung „Abweichend“ einschalten. Hier bekommt man einen weiteren Farbwert und auch ein weiteres Eingabefeld für den Abweichungswert.