Wenn du mit Project Online oder Project for the Web arbeitest, hast du sicherlich schon mal die Situation erlebt, dass du für einen Projektstatusbericht nur die wichtigsten Informationen, wie zum Beispiel den nächsten Meilenstein, der abzuschließen ist, oder die aktuelle Projektphase, in der sich das Projekt befindet, auswerten wolltest. Diese Informationen stehen bekanntlich in den Tabellen „Vorgänge“ oder in Project for the Web in der Tabelle msdyn_projecttask. Das Problem hierbei ist allerdings, dass die Werte nicht so einfach zu filtern sind, da alle Arbeitspakete in den Tabellen enthalten sind. Wie kannst du also aus einer Tabelle nur den relevantesten Wert auswählen und in deinem Bericht anzeigen? In diesem Blog-Beitrag zeige ich dir, wie du mit Power BI und Power Query eine Gruppierung nach dem Maximalwert erstellen kannst, um genau das zu tun. Du wirst sehen, dass es gar nicht so schwer ist und dass du mit wenigen Schritten ans Ziel kommst.
Hinweis: In diesem Artikel gehe ich davon aus, dass du die entsprechende Tabelle „Vorgänge“ schon in Power BI eingebunden hast. Sollte das nicht der Fall sein, dann binde diese Tabelle bitte zuvor ein, bevor du mit dem Artikel fortfährst. Du kannst diesem Link folgen, um mehr über die Anbindung von Project Online an Power BI zu erfahren. Für Project for the Web kannst du diesem Link folgen, um zu sehen, wie du die Datenquelle msdyn_projecttask einbindest.
Kopie von der Tabelle „Vorgänge“ anlegen
Um eine Gruppierung nach dem Maximalwert zu erstellen, brauchen wir zunächst eine Kopie von der Tabelle „Vorgänge“, in der wir die Änderungen vornehmen können. So gehen wir sicher, dass wir die Originaltabelle nicht verändern und immer noch auf alle Daten zugreifen können. Um eine Kopie anzulegen, öffne Power BI Desktop und dann den Power Query Editor. Klicke hierzu auf „Start (1)“ und dann auf „Daten transformieren (2)“. Im Power Query Editor siehst du links die Liste der eingebundenen Tabellen.

Führe einen Rechtsklick auf die Tabelle „Vorgänge (1)“ aus und wähle im Kontextmenü die Option „Duplizieren (2)“. Dadurch wird eine neue Tabelle erstellt, die eine Kopie der ursprünglichen Tabelle „Vorgänge“ ist. Du kannst diese Tabelle umbenennen. In meinem Beispiel nenne ich die Tabelle „Projektphasen“. In dieser Tabelle werden wir nun die nächsten Schritte durchführen, um die Gruppierung zu erzeugen.

Filtern der relevanten Informationen
Wir haben nun eine Kopie der Tabelle „Vorgänge“ erstellt, in der wir die Gruppierung nach dem Maximalwert durchführen können. Bevor wir das tun, müssen wir die Daten filtern, die wir für unsere Auswertung brauchen, um nur die aktuellen Phasen der Projekte zu betrachten. Im Power Query Editor wählst du die Tabelle „VorgangIstSammelvorgang“ aus und öffnest die Filteroptionen. Hier setzt du den Wert auf „true“, um nur Vorgänge zu sehen, die auch ein Sammelvorgang sind. Sollte der User mit Projektsammelvorgängen arbeiten, werden diese dir auch immer noch in der Tabelle angezeigt, auch diese müssen wir entfernen. Suche dazu die Spalte „VorgangIstProjektSammelvorgang“ und setzte hier den Filterwert auf „false“. Als letztes filtern wir jetzt nich alle Arbeitspakete raus, deren Fertigungsgrad kleiner 100 ist. Suche hierzu die Spalte „VorgangProzentAbgeschlossen“ und entfernen den Filter „Alles (auswählen)“. Scrolle dann ganz nach unten und entferne hier die 100. Nach Anwenden dieser drei Filter haben wir nur noch die relevanten Informationen in unserer Tabelle die wir benötigen. In der Vorschau siehst du, dass jede Zeile einer aktuellen Phase eines Projekts entspricht, was wir für unsere Gruppierung benötigen.

Tabelle gruppieren
Jetzt können wir endlich unsere Gruppierung erstellen. Da wir jedoch noch keine Referenz zu unserem Projektnamen haben, müssen wir zunächst eine Abfrage zusammenführen. Das bedeutet, dass wir eine andere Tabelle mit unserer aktuellen verknüpfen, um zusätzliche Informationen zu erhalten. In unserem Fall möchten wir den zugehörigen Projektnamen als Spalte einbinden. Hierzu klickst du im Ribbon auf „Start“ und wählst dann die Option „Abfrage zusammenführen“. Klicke in der angezeigten Tabelle auf die Spalte „ProjektID“. Im Auswahlfeld wählst du die eingebundene Tabelle „Projekte“ und klickst dann im unteren Bereich ebenfalls auf die Spalte „ProjektID“. Als Join-Art wählst du „Innerer Join (nur übereinstimmende Zeilen)“ aus. Das bedeutet, dass nur die Zeilen aus beiden Tabellen angezeigt werden, die einen gemeinsamen Wert in der Spalte „ProjektID“ haben. Wenn du danach auf „OK“ klickst, siehst du, dass eine neue Spalte namens „Projekte.ProjektTitel“ zu unserer Tabelle hinzugefügt wurde, die den Namen des jeweiligen Projekts enthält.

Jetzt werden die Werte aus der Tabelle „Projekte“ im Tabellenformat in eine Spalte eingebunden. Nun müssen wir nur den Spaltennamen anzeigen lassen. Bewege dazu die Maus auf das „Expandieren“-Symbol im Spaltenkopf. Wähle im sich öffnenden Menü die Option „Projektname“ aus. Entferne im unteren Bereich die Option „Ursprünglichen Spaltennamen als Präfix verwenden“. Klicke anschließend auf „OK“.

Prima, jetzt hast du den Projektnamen in deiner Tabelle. Als nächstes wollen wir die Daten nach dem Projektnamen gruppieren, um einen Überblick über die Phasen jedes Projekts zu bekommen. Dazu gehst du im Ribbonmenü auf „Start“ und klickst auf „Gruppieren nach“. Wähle im Fenster, das sich öffnet, die Spalte „Projektname“ aus. Diese wird die Basis für unsere Gruppierung sein. Außerdem brauchen wir noch die ProjektID, damit wir später eine Abhängigkeit erstellen können. Um diese hinzuzufügen, klickst du auf „Weitere (1)“ und dann auf „Gruppierung hinzufügen (2)“. Wähle hier die Spalte „ProjektID“ aus. Im unteren Bereich änderst du den Vorgang auf „Alle Zeilen (3)“. Klicke auf „OK“, um die Gruppierung zu erstellen.

Jetzt müssen wir den Maximalwert aus der Spalte „Anzahl“ berechnen. Dazu fügen wir eine neue Spalte hinzu. Klicke auf die Registerkarte „Spalte hinzufügen“ und dann auf den Button „Benutzerdefinierte Spalte“. Gib als Namen „MaxProzentWert (1)“ ein. Gehe dann in den Formeleditor. Gib dort „Table.Max (2)“ ein. Da wir den Maximalwert aus der Spalte „Anzahl (3)“ haben wollen, mache einen Doppelklick auf die Spalte „Anzahl“. Nun müssen wir noch die Spalte angeben, die die Formel auswerten soll. Füge ein Komma ein und gib dann den Spaltennamen in Hochkommas ein. In meinem Beispiel lautet die Spalte „VorgangProzentAbgeschlossen“. Die Formel sollte am Ende so aussehen.

Jetzt haben wir die Werte als Datensatz ebenfalls zur Spalte hinzugefügt. Du musst nur noch die Werte wie oben beschrieben expandieren. Wir benötigen hier den Phasennamen und natürlich den Wert „% abgeschlossen“. Klicke dazu wie zuvor auf das Expandieren-Symbol im Spaltenkopf. Wähle im sich öffnenden Menü die Spalten „VorgangsID“, „VorgangsName“ und „VorgangProzentAbgeschlossen“ aus. Klicke abschließend auf „OK“.

Natürlich kannst du das ganz auch mit Min-Werten machen. Du siehst jetzt zu jedem Projekt die Phasen mit dem maximalen Wert in der Spalte in der Spalte.