Kontakt

Nutzen Sie dieses Kontaktformular oder schreiben Sie mir direkt per E-Mail.

Q&A – Fragen und Antworten rund im Power BI

Stellen Sie mir hier Ihre Fragen zu Power BI. Senden Sie mir Ihre Frage einfach per E-Mail an frage@jantrummel.de.

Ich werde alle Fragen selbstverständlich anonymisiert veröffentlichen, sodass keine Rückschlüsse auf Sie, Ihr Unternehmen oder Ihre Daten gezogen werden können.

Dieser Service ist für Sie kostenfrei!

Fragen aus dem Juli 2021

Visualisierungen mit Messachsen

Frage vom 29.07.2021

Hallo Herr Trummel,

vielen dank für die wirklich sehr gute Antwort zu meinem gestrigen Thema.
Ich habe folgendes Ergebnis:

Mein Fragebogen hat verschiedene Kategorien aus denen ich die Antwort Punktzahl jeweils zusammen gerechnet habe.
Diese Kategorien habe ich ebenfalls zu einer Gesamtpunktzahl zusammen gerechnet.
Nun möchte ich gern diese Ergebnisse Grafisch darstellen, am liebsten auf die Weise wie es in docs.microsoft.com zu finden ist.

Der Link ist: Leitfaden - Bewertungen | Microsoft Docs

Hier ein Screenshot:

Zwei Visualisierungen mit unterschiedlich farbigen Messachsen
Visualisierungen von Microsoft


Dies sind 2 Visualisierungen und ich benötige beide oder ähnliche. Leider finde ich keine passenden.
Gibt es derartige Visualisierungen oder müsste ich mich mit dem Thema Visualisierungen selbst erstellen befassen?

Antwort

Exakt solche Visualisierungen kann ich leider nicht finden. Ich habe jedoch in der App Source Visualisierungen entdeckt, die der Aufgabenstellung nahekommen.

LinearGauge - xViz

Die erste Visualisierung ist das LinearGauge der Firma xViz. Es erzeugt eine einzige Messachse, die Sie in drei unterschiedliche Kategorien einteilen können (Bedingte Formatierung). Außerdem kann der aktuelle Wert mithilfe einer Linie visualisiert werden.

Mehr Infos zu dieser Visualisierung und ein fertiges Beispiel zum Herunterladen finden Sie auf der Seite des Herstellers: https://xviz.com/visuals/linear-gauge/?utm_source=xviz_landing&utm_medium=powerbi_productuser

Multiple Sparklines

Um mehrere Messachsen (zum Beispiel für jede Person) zu erzeugen, können Sie die Visualisierung Multiple Sparklines des Entwicklers Zubair nutzen. Verwenden Sie dort im Bereich Bullet / Bar Chart eine Spalte in der Form Zielwert | AktuellerWert (s. Blatt Die Daten).

Hier kann jedoch nur eine Frage pro Person ausgewertet werden.

Mehr Infos zu dieser Visualisierung und ein Beispiel zum Herunterladen finden Sie auf der Seite von Zubair unter https://www.excelnaccess.com/sparklines/.

Und hier meine Demodatei zum Ausprobieren.

PS: Die Visualisierungen sind kostenpflichtig, deshalb können Sie sie in meinem Demobericht nur eingeschränkt nutzen.


Zahlen aus Spalten verrechnen

Frage vom 28.07.2021

Hallo Herr Trummel,

gern möchte ich Ihren kostenlosen Service nutzen und Ihnen eine Frage stellen.

Wir haben Umfragewerte aus MSForms.
Die Fragen bilden je eine Spalte für sich und haben je einen Wert zwischen 0 – 10.
Nun möchte ich gern bestimmte Spalten miteinander Summieren um einen Gesamtwert zu erhalten.

An dieser Stelle komme ich mit SUM nach meinem Wissen nach nicht weiter, ebenso mit SUMX.
Ich hoffe sehr, dass Sie eine Antwort parat haben und mir aus meiner Misere heraus helfen können.

Antwort

Diese Aufgabe lässt sich mit dem Entpivotieren von Power Query lösen.

Gehen wir einmal von folgendem Beispiel aus:

PersonFrage 1Frage 2Frage 3
A10310
B925
C9104
D0101
E534
Die Beispieltabelle hat für jede Frage eine Spalte.

Laden Sie die Daten in den Power Query-Editor. Markieren Sie die drei Spalten Frage 1, Frage 2 und Frage 3.

In Power Query markieren Sie die 3 Frage-Spalten

Wählen Sie dann auf dem Reiter Transformieren den Befehl Spalten entpivotieren.

Menüband von Power Query, Befehl "Spalten entpivotieren" ist rot und umrandet
Klicken Sie auf Spalten entpivotieren

Power Query löst die drei Spalten nun in zwei Spalten mit Attribut-Wert-Paaren auf. Diese können Sie natürlich noch umbenennen und anschließend ins Datenmodell laden.

Die Tabelle in Power Query mit den Spalten "Attribut" und "Wert"
Die drei Spalten sind nun entpivotiert.

Jetzt können Sie die Wert-Spalte einfach summieren und je Person bzw. Frage auswerten.


Zeiten in Schichten einteilen

Frage vom 26.07.2021

Hallo Jan,

ich bin übers Internet zu deiner Seite gekommen und ich hoffe du kannst mir helfen.

Meine Frage:

Ich habe eine große Excel Datei, die ich im Power BI nach gewissen Prozessen und Bereich auswerten will.

Dabei muss ich aber auch noch nach der Zeit/Schichten auswerten.

Kann ich irgendwo mir Zeitfilter setzen wie zB. Von 06:00-14:29; 14:30-22:59; 23:00-05:59 ?

Vielen lieben Dank für deine Hilfe

Antwort

Gehen wir einmal von folgendem Beispiel aus:

ArbeiterBeginn
A09:00
B09:00
C16:30
D16:30
E23:00
Die Beispieltabelle Zeiten

Wir wollen herausfinden, welche Arbeiter in welcher Schicht waren.

Dazu habe ich mir in Excel eine minutengenaue Tabelle mit Uhrzeiten von 00:00 – 23:59 Uhr angelegt. Jeder Uhrzeit habe ich die entsprechende Schicht zugeordnet:

Tabelle mit den Spalten "Zeit" und "Schicht"
Die Zeitdimension

Anschließend habe ich die Tabelle ins Datenmodell geladen und dort beide Tabellen miteinander verbunden:

2 in Power BI verbundene Tabellen
Verbinden Sie beide Tabellen miteinander

Jetzt kann ich das Feld Schicht aus der Zeitdimension als Filter benutzen. Probieren Sie es aus:

PS: Die Zeitdimension habe ich nur der Vollständigkeit halber mit in den Bericht aufgenommen. Sie mussten Produktivbericht natürlich nicht gezeigt werden.


Frage zu PowerBI Desktop

Frage vom 26.07.2021

Guten Tag Herr Trummel,

Meine Frage:

Ich habe 4 Exceltabellen mit Umsatzdaten aus 4 verschiedenen Jahren und möchte diese in einer Grafik visualisieren. Die Grafik soll primär die Umsätze der verschiedenen Jahre mit den Monaten als "x-Achse" zeigen.

Dazu habe ich versucht, Beziehungen zwischen den Exceltabellen über die Spalte "Bestelldatum" herzustellen, die in jeder Tabelle vorhanden ist (z.B. 01.01.2019). Alle "Bestelldatum"-Spalten sind vom Typ "Datum".

Ich gehe davon aus, dass es notwendig ist, ein extra Excelblatt zu verwenden, um die Excel-Blätter über das Datum zu verknüpfen? Wenn das richtig ist, wie muss dieses aussehen?

Im nächsten Schritt möchte ich auch die Summe der Umsätze, die bis zu jedem Monat im Jahr aufgelaufen sind, in der gleichen Grafik darstellen (falls diese Information für die Beziehungsaufgabe notwendig ist).

Vielen Dank im Voraus.

Antwort

Ich gehe davon aus, dass die vier Excel-Tabellen gleich aufgebaut sind.

In diesem Fall müssen Sie die vier Tabellen zu einer großen Tabelle zusammenfassen. Sie können die vier Tabellen mit Power Query einlesen und dann über den Befehl Abfragen anfügen zu einer großen Abfrage vereinigen.

Hier lesen Sie mehr zum Thema Abfragen anfügen.

Schauen Sie sich bei der Gelegenheit auch einmal die Abfrage auf einen Ordner an. Damit können Sie solche Aufgaben automatisieren.

Hier lesen Sie mehr zu Abfragen auf Ordner.

Nehmen Sie dann das Feld Jahr aus der integrierten Datumshierarchie des Feldes Bestelldatum, um den Umsatz für alle Jahre in einer Visualisierung anzuzeigen.

Für umfassende Datumsberechnungen empfehle ich jedoch die Arbeit mit einer Datumstabelle.


Fragen aus dem Mai 2021

Prozentuale Abweichungsberechnung

Frage vom 27.5.2021

Ich habe bei Power BI eine Übersichtsseite für die KPIs ganz nach vorne gesetzt. Hier ist es so, dass jeweils von dem aktuellen Monat z.B. die Nachbearbeitungszeit im Team „IT Ops“ dargestellt wird. Ich würde jetzt gerne auch noch die prozentuale Abweichung zu dem jeweiligen Vormonat in einer %-Zahl darstellen. Unter dem eigentlichen KPI Wert zum Beispiel. Allerdings komme ich nicht darauf, wie ich das darstellen kann. Kennen Sie hier eine Lösung?

Antwort

Um diese Aufgabe zu lösen, benötigen Sie eine Kalendertabelle, sowie die Funktionen CALCULATE und PREVIOUSMONTH. Wenn die Nachbearbeitungszeiten in Summe über 24 Stunden hinausgehen, müssen Sie für die korrekte Darstellung ein eigenes Measure schreiben.

Wie dies gelingen kann, habe ich beispielhaft in folgendem Beitrag skizziert:

Lesen Sie hier, wie Sie Berechnungen mit Zeit-Werten durchführen können

Fragen aus dem April 2021

Spezielle Sortierung einstellen

Frage vom 08.04.2021

Hallo Herr Trummel,

wenn ich eine Auswertung in Power BI fahre, wie kann ich das Ergebnis nach meinem Wunsch anzeigen lassen.

Es geht z.B. um folgende Tabelle:

EffortMärzAprilGesamt
Low101323
High251540
Medium251237

Ich würde gerne zuerst Low, dann Medium und dann High anzeigen lassen.

Gibt es hierzu eine Sortiermöglichkeit? Alphabetisch geht es ja nicht und leider auch nicht anhand der Anzahl, da sich diese jeden Monat ändern kann. 

Antwort

Sie benötigen eine Zahlenspalte, um die Sortierung von Effort an diese zu binden. Da ich nicht weiß, woher Ihre Daten kommen und wie sie im Detail aussehen, gehe ich wie folgt vor:

Hilfstabelle für die Sortierung erzeugen

Erzeugen Sie in Power BI Desktop eine neue Tabelle. Klicken Sie dazu auf der Registerkarte Start auf die Schaltfläche Daten eingeben. Tragen Sie folgende Werte in die Tabelle ein und klicken Sie anschließend auf Laden.

Das Eingabefenster für den Befehl "Daten eingeben" in Power BI
Erzeugen Sie diese Hilfstabelle

Beziehung zwischen den Tabellen erzeugen

Wechseln Sie nun in den Bereich Modell und erzeugen Sie eine Beziehung zwischen Ihrer Tabelle und der neu geschaffenen Tabelle Effort Sortierung. Ziehen Sie dazu das Feld Effort aus Ihrer Tabelle auf das Feld Sort-Bezeichnung in der Hilfstabelle.

Die beiden Tabelle sind über eine 1-zu-N-Beziehung miteinander verbunden (Modell von Power BI)
Verbinden Sie beide Tabellen miteinander

Sortierspalte mit DAX-Formel einbinden

Nun wechseln Sie in den Bereich Daten. Wählen Sie Ihre Tabelle aus und erzeugen Sie eine neue Spalte. Geben Sie folgende Formel ein:

Nr = RELATED('Effort Sortierung'[Sort-Nr])

Die Anweisung ordnet jeder Zeile die richtige Nummer zu.

Effort nach Spalte Sort-Nr sortieren

Wählen Sie nun die Spalte Effort aus, klicken Sie auf die Registerkarte Spaltentools und dort auf die Schaltfläche Nach Spalte sortieren. Wählen Sie aus der Liste das Feld Nr aus.

Der Befehl „Nach Spalte sortieren" zeigt eine geöffnete Liste. Dort ist das Feld "Nr" gewählt.
Binden Sie die Sortierung von Effort an Nr.

Nun werden die Daten aus Effort so sortiert, wie die Zahlen in der Spalte Nr.

Die Matrix zeigt die korrekte Sortierung
Effort wird nun wie gewünscht sortiert

Tipp: Die Hilfstabelle können Sie jetzt über das Kontextmenü ausblenden, damit sie in der Felder-Liste nicht mehr angezeigt wird.


Dezimalzahlen in Uhrzeiten umwandeln (auch über 24 Stunden)

Frage vom 06.04.2021

Guten Morgen Herr Trummel,

ich hoffe Sie hatten schöne Osterfeiertage.

Vielen Dank für ihre Antwort. Es funktioniert auch soweit, allerdings habe ich einige Zeiten, die über 24 Stunden hinausgehen. Dort zeigt mir Power Query beim transformieren „Error“ an.

Gibt es hierfür auch noch eine Möglichkeit?

Diese Frage bezieht sich auf die Antwort der Frage vom 31.03.2021 (Dezimalzahlen in Uhrzeiten umwandeln).

Antwort

Laden Sie die Daten - ohne vorherige Bearbeitung durch Power Query - ins Datenmodell.

Eine Spalte mit Dezimalzahlen in einer Tabelle in Power BI.
Die Dezimalzahlen

Erzeugen Sie eine neue Spalte und geben Sie folgende Formel ein:

Uhrzeit = 
IF(Tabelle1[Zeiten]>=1440,
    QUOTIENT(Tabelle1[Zeiten], 60) 
        & 
    FORMAT(
        MOD(Tabelle1[Zeiten], 60) / 24,
        ":nn:ss"
    ),
    FORMAT(
        Tabelle1[Zeiten]/1440,
        "hh:nn:ss"
    )
)

Die Idee ist, die Dezimalzahlen geschickt umzurechnen und dann in Uhrzeiten umzuwandeln. Beachten Sie jedoch bitte, dass Sie im Ergebnis einen Text erhalten werden. Nun zur Erklärung der Formel:

Mithilfe der IF-Funktion prüfen Sie, ob die Dezimalzahl größer oder gleich 1440 ist.

Ist dies der Fall, folgen zwei Berechnungen:

Zunächst einmal berechnen Sie die Stunden. Dazu führen sie mit der Funktion QUOTIENT eine Division durch 60 ohne Rest durch. Das Ergebnis ist die Stundenangabe. Es folgt der Verkettungsoperator &.

Jetzt berechnen Sie die Minuten und Sekunden. Dazu verwenden Sie den Rest der Division durch 60. Nutzen Sie hierfür die Funktion MOD. Diesen Rest müssten Sie theoretisch wieder mit 60 multiplizieren, um eine vollwertige Stundenangabe zu erhalten, und das Ergebnis anschließend durch 1440 teilen. Die Multiplikation im Zähler kürzt sich jedoch weg und im Nenner bleibt 24 stehen. Das Ergebnis dieser Berechnung wandeln Sie dann in eine Zeichenkette um, die Minuten und Sekunden darstellt. Hierzu nutzen Sie die Funktion FORMAT. Beachten Sie, dass die Funktion als Angabe für Minuten tatsächlich das "n" erwartet!

Wenn die IF-Funktion ermittelt, dass die Dezimalzahl kleiner als 1440 ist, ist die Berechnung dagegen wesentlich einfacher. Teilen Sie die Dezimalzahl durch 1440 und wandeln Sie das Ergebnis mithilfe der Funktion FORMAT in eine Uhrzeit um.

In einer zweiten Spalte dieser Power BI-Tabelle sind die in Uhrzeiten umgerechneten Dezimalzahlen zu sehen.
Das Ergebnis der Formel ist ein Text.

Fragen aus dem März 2021

Dezimalzahlen in Uhrzeiten umwandeln

Frage vom 31.03.2021

Hallo Herr Trummel,

ich bin gerade dabei meine KPI-Auswertungen weiter zu bauen. Allerdings sitze ich jetzt schon eine ganze Weile daran, herauszufinden wie ich Uhrzeiten, die ich als Dezimalwerte (z.B. 5,8 Minuten) vorliegen habe, in ein Uhrzeitformat umwandeln kann. In Excel ist das mit dem Format „Uhrzeit“ ja recht einfach, aber für Power Bi finde ich einfach keine passende Formel oder Funktion.

Können Sie mir hier weiterhelfen?

Antwort

Gehen wir beispielhaft von folgenden Dezimalzahlen aus, die allesamt Minuten darstellen sollen:

Zeiten
5,8
0,6
7,2
0,5
0,1

Vorüberlegungen

Bei der Beantwortung dieser Frage hilft uns ein bisschen Mathematik:

Halten wir uns vor Augen, dass sowohl in Excel als auch in Power BI die Zahl 1 für einen Tag steht. Darüber hinaus wissen wir, dass ein Tag aus 24 Stunden (also aus 24 Einheiten) besteht. Ein Tag entspricht also rechnerisch dem Bruch 24 Vierundzwanzigstel (24/24). Eine Stunde können wir daher als ein Vierundzwanzigstel (1/24) darstellen.

Die nächstkleinere Einheit ist die Minute. Eine Stunde umfasst 60 Minuten. Somit können wir den Nenner des oben genannten Bruchs erweitern, indem wir 24 × 60 = 1440 rechnen. Eine Minute können wir also darstellen als 1/1440.

Dezimalzahlen in Power Query umrechnen

Laden Sie die Daten der Beispieltabelle jetzt in Power Query. Nun teilen Sie alle Werte der Spalte durch 1440. Wählen Sie dazu auf der Registerkarte Transformieren in der Befehlsgruppe Zahlenspalte die Schaltfläche Standard. Klicken Sie dann auf den Befehl Dividieren.

Zeigt die Befehle für die Schaltfläche Standard in Power Query
Wählen Sie für die Spalte den Befehl Dividieren

Geben Sie die Zahl 1440 in das Textfeld ein und bestätigen Sie mit OK.

Das Dialogfeld "Dividieren" in Power Query
Tragen Sie hier 1440 ein.

Ändern Sie nun noch den Datentyp der Spalte in Zeit. Damit sind Sie fertig.

Summe für aktuelles Jahr

Frage vom 23.03.2021

Hallo Herr Trummel,

der Grund meines Anrufes ist ein häufiges Problem, bei dem ich gerne Daten des aktuellen Jahres summieren / zählen möchte, ohne einen Datenschnitt zu benutzen.

Das Measure soll aufgrund der Systemzeit erkennen, wann der erste Tag des Jahres ist, und soll die Periode bis „Today()“ berechnen.

Gibt es hierzu eine Standardlösung?

Antwort

Gehen wir von folgender Tabelle aus:

DatumBetrag
01.01.202010,00 €
20.05.202010,00 €
24.12.202010,00 €
01.01.202120,00 €
01.02.202120,00 €
01.03.202110,00 €
20.05.202130,00 €

Gemäß Aufgabenstellung darf das Measure nur die Beträge vom 01.01.21, 01.02.21 und 01.03.21 summieren (Stand heute: 23.03.2021).

Laden Sie die Tabelle ins Datenmodell von Power BI und verbinden Sie sie mit der Kalendertabelle.

2 Tabellen im Datenmodell von Power BI, die mit einer 1:n-Beziehung verbunden sind

Erzeugen Sie nun das folgende Measure:

Betragssumme dieses Jahr = 
CALCULATE(
    SUM(Beispieldaten[Betrag]),
    DATESBETWEEN(
        Kalender[Datum],
        DATE(YEAR(TODAY()),1,1),
        TODAY()
    )
)

Die Funktion DATESBETWEENN erzeugt eine Liste mit Datumsangaben, und zwar von einem Start- bis zu einem Enddatum.

Das Startdatum ist hier immer der 1. Januar des aktuellen Jahres. Diesen errechnen Sie mit folgendem Ausdruck:

DATE(YEAR(TODAY()),1,1),

Die Funktion YEAR gibt aus dem aktuellen Datum (Funktion TODAY) die Jahreszahl zurück. Dieses verwenden Sie in der Funktion DATE, um ein gültiges Datum zu erzeugen.

Das Enddatum ist immer das heutige Datum, also TODAY.

Die Funktion CALCULATE sorgt nun dafür, dass SUM nur Beträge addiert, deren Datumsangaben in der von DATESBETWEEN erzeugten Datums-Liste enthalten sind.

Das Measure errechnet (Stand heute: 23.03.2021) einen Wert von 50,- €.

Wenn Sie nicht summieren, sondern zählen möchten, nutzen Sie statt SUM einfach die Funktion COUNT.


Fragen aus dem Januar 2021

Formel aus dem Seminar

Frage vom 21.01.2021

Diese Frage bezieht sich auf eine Übungsaufgabe aus meinem Power BI-Seminar. Die Aufgabe lautete:

Schreiben Sie ein Measure, das den Umsatz mit den Büchern zeigt, wobei nur solche Bücher beachtet werden sollen, von denen mindestens 30 Stück verkauft wurden.

Hier ist die Lösung:

Umsatz Bücher ab 30 Stück = 
CALCULATE(
    [Umsatz],
    FILTER('Bücher',[Anzahl verkaufte Bücher] >= 30)
)

In einer Matrix-Visualisierung sollten Sie dieses Measure dann für jede Literaturepoche ausgeben, sodass sich folgendes Bild hätte ergeben sollen:

Matrix, die den Umsatz je Literaturepoche für Bücher zeigt, die mehr als 30 mal verkauft wurden.
Lösung der Aufgabe

Ein Teilnehmer hatte jedoch eine andere Formel geschrieben. Diese sehen Sie hier:

Teilnehmerlösung = 
CALCULATE(
    [Umsatz],
    FILTER(Bestellungen,COUNT(Bestellungen[Buch-Nr])>=30)
)

Die Matrix zeigte dann auch ein anderes Bild:

Matrix in Power BI, die einen Umsatz je Literaturepoche zeigt. Die Umsatzspalte heißt "Teilnehmerlösung".
Die Matrix mit dem Measure Teilnehmerlösung.

Was genau tut das Measure Teilnehmerlösung und warum liefert es ein anderes Ergebnis? Lesen Sie im Folgenden die Antwort!

Antwort

Zuerst beschreibe ich Ihnen, warum das Measure Umsatz Bücher ab 30 Stück die richtige Antwort liefert. Betrachten Sie als Beispiel die Zeile Biedermeier, für die das Measure einen Umsatz von 418 € liefert.

Die Funktion CALCULATE berechnet das Measure Umsatz unter Berücksichtigung einer Filterbedingung neu. Diese Filterbedingung wird hier mit der Funktion FILTER realisiert. FILTER liefert eine virtuelle Tabelle, die eben jene Zeilen enthält, für die der Umsatz neu kalkuliert werden soll.

Betrachten Sie nun die Funktion FILTER genauer: Die Funktion bezieht sich auf eine der Grundtabellen des Datenmodells. Dies ist hier die Tabelle Bücher. Der Ausdruck [Anzahl verkaufte Bücher] >= 30 ist wiederum eine Filterbedingung, die in der Tabelle bestimmte Zeilen ermittelt. Dies sind die Bücher, die mindestens 30 Mal verkauft worden sind.

Nun müssen Sie auch noch den Filterkontext berücksichtigen, der von der Matrix-Visualisierung erzeugt wird! Für unsere Beispielzeile mit der Epoche Biedermeier bedeutet dies, dass die Grundtabelle Bücher, die in FILTER benutzt wird, bereits auf alle Bücher aus dem Biedermeier gefiltert ist. Was FILTER sieht ist im Prinzip Folgendes:

Matrix in Power BI, die Bücher aus der Biedermeier-Epoche zeigt.
Die interne Sicht von FILTER auf die Grundtabelle Bücher.

Die Anweisung [Anzahl verkaufte Bücher] >= 30 von FILTER selbst reduziert diese Tabelle dann weiter auf die Zeile mit dem Titel Das Hospiz auf dem Großen St. Bernhard, da nur dieses Buch die Filterbedingung erfüllt.

Und somit zeigt die erste Matrix aus der Frage oben für den Biedermeier auch nur einen Umsatz von 418 €.

Nun beschreibe ich Ihnen, warum das Measure Teilnehmerlösung andere Daten liefert:

Die Funktion FILTER greift hier auf die Tabelle Bestellungen. Bedingt durch den Filterkontext der Matrix sieht FILTER nur die Zeilen der Grundtabelle, in denen Bücher aus der jeweiligen Epoche verkauft worden sind. Nehmen wir als Beispiel wieder den Biedermeier, dann sieht FILTER diese Daten:

Matrix in Power BI mit Bestellungen von Büchern aus dem Biedermeier.
Die interne Sicht von FILTER auf die Tabelle Bestellungen.

Die Filterbedingung COUNT(Bestellungen[Buch-Nr])>=30 besagt nun, dass diese Zeilen von FILTER zurückgegeben werden, wenn die Anzahl der Buch-Nummern größer oder gleich 30 ist. Dies ist hier der Fall (s. Bild)! Der Umsatz aller Bestellungen mit Biedermeier-Büchern beläuft sich auf 874 €. Und das ist auch der Wert, der in der zweiten Matrix aus der Frage in der Zeile Biedermeier steht!

Beachten Sie, dass es in der Teilnehmerlösung keinen Bezug auf ein bestimmtes Buch gibt! Es geht immer um die gesamten Bestellungen der jeweiligen Literaturepoche!

Nun bleibt abschließend nur noch zu klären, warum das Gesamtergebnis der zweiten Matrix aus der Frage 5.230 € zeigt, wobei Sie bei der Addition der einzelnen Werte 1.028 + 360 + 874+ 965 + 913 + 492 doch auf 4.632 € kommen! Macht Power BI hier einen Fehler? Mitnichten!

Für Measures in Power BI gilt, dass Sie in jeder Zeile einer Visualisierung exklusiv und unabhängig von anderen Zeilen berechnet werden. Dies ist ein entscheidender Unterschied zu Berechnung von Kennzahlen in klassischen Pivot-Tabellen in Excel! Für die Zeile Gesamt gilt nun, dass FILTER auf alle Zeilen der Tabelle Bestellungen blickt. Eigentlich auch logisch, da es in der Gesamt-Zeile ja keine Einschränkung mehr auf eine Literaturepoche gibt. Und da die Anzahl der Buch-Nummern in der ungefilterten Tabelle Bestellungen natürlich größer als 30 ist, wird eben auch der Gesamtumsatz zurückgegeben.

Datenschnitt - Datumsbereich nur bis heute

Frage vom 21.01.2021

Bei dieser Frage geht es um einen Datenschnitt in Power BI, über den ein Datumsbereich gewählt werden kann. Nehmen Sie als Beispiel diesen Datenschnitt:

Datenschnitt in Power BI, der einen Schieberegler zeigt, über den ein Datumsbereich eingestellt werden kann.
Datenschnitt zur Auswahl eines Datumsbereichs

Die Frage war, ob es möglich ist, das angezeigte Enddatum (im Bild der 31.12.2025) immer dynamisch auf das aktuelle Datum zu setzen.

Antwort

Um diese Frage zu beantworten, habe ich in der Kalendertabelle mit folgender Formel eine neue berechnete Spalte angelegt:

Datumsauswahl = 
IF(
    Datumstabelle[Datum] <= TODAY(), 
    Datumstabelle[Datum],
    BLANK()
)

Die Formel prüft für jede Zeile der Kalendertabelle, ob das Datum vor dem heutigen Datum liegt bzw. ob es dem heutigen Datum entspricht. Die Funktion TODAY liefert dafür das aktuelle Systemdatum. Mit BLANK fügen Sie ein Leerzeichen ein, wenn das Datum noch in der Zukunft liegt.

Eine Tabelle in Power BI, die in der Spalte "Datumsauswahl" nur Einträge beinhaltet, wenn das Datum vor dem aktuellen Systemdatum liegt
Die Formel liefert nur Datumsangaben, die nicht hinter dem aktuellen Systemdatum liegen

Wenn Sie nun die Spalte Datumsauswahl in den Datenschnitt einfügen, reicht der auswählbare Datumsbereich nur bis zum aktuellen Systemdatum.

Ein Datenschnitt in Power BI, der nur Datumsangaben bis zum aktuellen Systemdatum zeigt (hier: 24.01.2021).
Der Datumsbereich im Datenschnitt endet jetzt beim aktuellen Systemdatum

Arbeitstage (inkl. Feiertage) berechnen

Frage vom 21.01.2021

Wie können in einem Projekt die Arbeitstage berechnet werden? Wie können sowohl Wochenendtage als auch Feiertage aus der Zählung ausgeschlossen werden?

Antwort

Lesen Sie dazu meinen Beitrag in der Rubrik Wissenswertes. Ich habe ihn um die Berechnung von Feiertagen erweitert:


Fragen aus dem Dezember 2020

Power BI und Teams - keine Lizenz

Frage vom 18.12.2020

Können Anwender in Teams freigegebene Power BI-Berichte lesen, wenn sie keine Power BI Pro-Lizenz besitzen?

Antwort

Nein, das ist nicht möglich. Benutzer, die weder die Power BI Pro-Lizenz besitzen, noch Mitglied einer Power BI Premium-Kapazität sind, können in Teams freigegebene Bericht zwar anklicken. Der Inhalt wird jedoch nicht geladen.

Mehr dazu lesen Sie in diesem Microsoft-Artikel:

https://docs.microsoft.com/de-de/power-bi/collaborate-share/service-collaborate-microsoft-teams

Bericht mit dynamischer Berechtigung freigeben

Frage vom 18.12.2020

Wir wollen unseren Power BI-Bericht freigeben, allerdings soll jeder Nutzer nur eine Projekte sehen können. Geht das?

Antwort

Ja, das geht. Ich habe einen Beitrag dazu geschrieben:

Monatsnamen in Datumstabelle einfügen

Frage vom 08.12.2020

Ich benutze eine Kalendertabelle als markierte Datumstabelle, um Berechnungsfehler auszuschließen (empfohlen von Marco Russo und Alberto Ferrari in Ihrem Buch Power BI…).

Dabei ist mir aber aufgefallen das der Drilldown in Diagrammen nicht so gut funktioniert wie in einer automatischen Datumshierarchie.

Außerdem möchte ich gerne 2 Jahre im Diagramm einsehen. Die Daten sollen natürlich nach Datum sortiert sein. Angezeigt werden soll aber nur das Jahr und der Monat als Name nicht als Zahl.

Also:

2019 Januar, Februar, ...

2020 Januar, Februar, ...

Wenn ich das über die Funktion gruppieren löse, ist das Datum etwas unscharf da die Daten monatlich auf 30 Tage verteilt werden (kaufm. Jahr).

Haben Sie einen Tipp das zu lösen?

Antwort

Erzeugen Sie in Ihrer Datumstabelle mit der Funktion FORMAT eine Spalte mit Monatsnamen.

Wechseln Sie in Power BI Desktop in den Bereich Daten und wählen Sie die Datumstabelle aus. Klicken Sie dann auf der Registerkarte Start auf Neue Spalte.

Menüband von Power BI Desktop. Die Registerkarte "Start" und der Befehl "Neue Spalte" sind rot umkreist.
Fügen Sie eine neue Spalte ein.

Geben Sie folgende Formel ein:

Monatsname = FORMAT(Datumstabelle[Date],"MMMM")

Des Weiteren gehe ich davon aus, dass Sie in Ihrer Datumstabelle eine Spalte mit Monatsnummern (Zahlen) haben (berechnet z.B. mit der Funktion MONTH).

Damit die Monatsnamen nicht alphabetisch sortiert werden, binden Sie die Sortierung der Monatsnamen an die Monatsnummern.

Wählen Sie Spalte Monatsname an und klicken Sie auf der Registerkarte Spaltentools auf die Schaltfläche Nach Spalte sortieren. Wählen Sie in der Liste die Spalte Monatsnummer.

Befehl "Nach Spalte sortieren" in Power BI Desktop. In der Liste ist "Monatsnummer" gewählt.
Binden Sie die Sortierung der Monatsnamen an die Monatsnummern.

Nun können Sie die Monatsnamen in Ihren Visualisierungen verwenden.

DAX-Measure für eine m:n-Beziehung

Frage vom 03.12.2020

Ich möchte gern aus 2 Tabellen ein DAX-Measure erstellen, bei dem es um folgendes geht:

Tabelle 1: Fertigungen mit Spalte Lieferdatum

Tabelle 2: Reklamationen mit Spalte Auftragsdatum

Beide Tabellen sind über die Spalte FANummer miteinander verknüpft (m:n-Beziehung).

Nun möchte ich eine Quote ermitteln:

Wie viele Reklamationen sind innerhalb von 15 Monaten nach Lieferdatum für eine FANummer eingegangen.

Hier sind die beiden Tabellen (Demodaten):

Tabelle Fertigungen

FANummerLieferdatum
101.01.2020
101.01.2020
202.01.2020
202.01.2020
202.01.2020
330.06.2020
407.09.2020
407.09.2020

Tabelle Reklamationen

FANummerAuftragsdatumBezeichnung
131.12.2020A
109.05.2021B
127.03.2020C
207.08.2021D
314.05.2021E
301.01.2021F
406.12.2021G
403.03.2022H
404.09.2023I
406.07.2029J

In diesem Beispiel wären das die Reklamationen A, C, E, F und G.

Ich brauche ein Measure, dass die Anzahl der von der Bedingung betroffenen Reklamationen ermittelt, hier also 5. 

Antwort

Folgendes Measure löst die Aufgabe:

Reklas M15 = 
SUMX( 
    SUMMARIZE( 
        'Fertigungen',
        Fertigungen[FANummer],
        "Anzahl Reklas M15",
        COUNTROWS(
            FILTER(
                RELATEDTABLE(Reklamationen),
                Reklamationen[Auftragsdatum] >= MAX('Fertigungen'[Lieferdatum]) && 
                Reklamationen[Auftragsdatum] <= MAXX(Fertigungen,EDATE(Fertigungen[Lieferdatum],15))
            )
        )
    ),
    [Anzahl Reklas M15]
)

Gehen wir die einzelnen Funktionen einmal von außen nach innen durch:

Mit SUMX addiere ich Zahlen in einer Tabellenspalte.

Die Tabelle erzeuge ich hier mit Hilfe der Funktion SUMMARIZE (es handelt sich um eine sogenannte virtuelle Tabelle). Sie gruppiert die Datensätze der Tabelle Fertigungen nach FANummern und berechnet die Ergebnisspalte „Anzahl Reklas M15“, indem sie die Anzahl der verbundenen Reklamationen berechnet, bei denen das Auftragsdatum zwischen dem Lieferdatum und dem Lieferdatum in 15 Monaten liegt.

Diese Berechnung ist nicht ganz simpel, ich versuche es aber mal in einfachen Worten zu erklären:

Der Trick ist, dass ich mir zu jeder Fertigung (also zu jeder Zeile in der von SUMMARIZE gelieferten Tabelle) die mit ihr verbundenen Reklamationen ermitteln lasse. Das erreiche ich mit der Funktion RELATEDTABLE. Die von der Funktion gelieferten Datensätze muss ich jedoch weiter filtern, weshalb ich RELATEDTABLE als zu filternde Tabelle in der Funktion FILTER nutze.

Als Filterbedingung gebe ich nun an, dass das jeweilige Auftragsdatum der Reklamation größer oder gleich dem Lieferdatum und kleiner oder gleich dem Lieferdatum in 15 Monaten sein muss. Achtung: Da wir uns jetzt in der Tabelle Reklamationen bewegen, kann ich nicht mehr direkt auf das Lieferdatum zugreifen. Ich kann es aber mit Hilfe der Funktion MAX ermitteln, die auf Grund des Filterkontextes, den SUMMARIZE erzeugt, das Lieferdatum der in der äußeren Funktion betrachteten Fertigung liefert. Ja, das ist wirklich etwas knifflig...

Das Lieferdatum in 15 Monaten erzeuge ich, indem ich mit der Funktion EDATE das Lieferdatum um 15 Monate in die Zukunft verschiebe. Auch hier kann ich nicht direkt auf das Liederdatum zugreifen, daher nutze ich die Funktion MAXX – MAXX, weil ich hier eine Berechnung eingeben kann (nämlich EDATE).

Die Funktion COUNTROWS zählt die Zeilen der von FILTER zurückgegebenen Tabelle. Damit erhalte ich die Anzahl der Reklamationen, die der jeweiligen Fertigung zugeordnet sind und im 15-Monats-Rahmen des Lieferdatums liegen. Die Zahl steht in der der Ergebnisspalte "Anzahl Reklas M15".

Zum Schluss addiert SUMX alle Zahlen aus der Ergebnisspalte "Anzahl Reklas M15" auf und bildet damit das Gesamtergebnis.

Schauen wir uns die Ergebnisse an:

In einer Tabellen-Visualisierung gebe ich die Spalten FANummer (aus Fertigung), Lieferdatum und das Measure aus:

Tabelle "Fertigungen" mit 3 Zeilen
Die Fertigungen mit dem Measure Reklas M15

In einer weiteren Tabellen-Visualisierung gebe ich zur Kontrolle die FANummer (diesmal aus Reklamationen), das Auftragsdatum, die Bezeichnung sowie das Measure aus:

Tabelle "Reklamationen" mit 5 Zeilen
Die Tabelle "Reklamationen" mit dem Measure "Reklas M15"

Meiner Ansicht nach sollte das Ergebnis korrekt sein.

Trotzdem gilt: Bitte testen Sie das Measure ausgiebig, bevor Sie den Ergebnissen wirklich vertrauen! Bekanntlich steckt der Teufel im Detail!


Fragen aus dem November 2020

Anzahl Arbeitstage in einem Projekt berechnen

Frage vom 09.11.2020

Wie kann man die Arbeitstage in einem Projekt oder einem Auftrag bestimmen?

Antwort

Dazu habe ich den Beitrag in meiner Rubrik Wissenswertes geschrieben. Sie finden die Antwort hier:


Fragen aus dem Oktober 2020

Externe Gastbenutzer in Power BI

Frage vom 27.10.2020

Kann man Power BI-Berichte auch an externe Gastbenutzer weitergeben?

Antwort

Ja das geht. Das Gastbenutzer benötigt dafür eine Power BI Pro-Lizenz. Sie können ihm diese Lizenz zur Verfügung stellen, falls der Gastbenutzer selbst keine Lizenz besitzt.

Wie Sie Gastbenutzer anlegen und diesem Lizenzen zuweisen, erklärt dieser Artikel: https://docs.microsoft.com/de-de/power-bi/admin/service-admin-azure-ad-b2b

Alle DAX-Funktionen erklärt

Frage vom 27.10.2020

Wo finde ich eine Übersicht über die DAX-Funktionen in Power BI?

Antwort

Eine sehr gute Übersicht über die DAX-Funktionen finden Sie hier:

https://docs.microsoft.com/de-de/dax/dax-function-reference

GANTT-Diagramme in Power BI

Frage vom 27.10.2020

Kann man in Power BI ein GANTT-Diagramm (Balkenplan-Diagramm) erstellen, um Projekte / Aufgaben in zeitlicher Abfolge in Form von Balken auf einer Zeitachse darzustellen?

Antwort

Ja, das geht. Gehen Sie folgendermaßen vor:

Roter Pfeil markiert die Option "Visual aus einer Datei importieren" in Power BI Desktop
  • Lernen Sie die Visualisierung kennen, indem Sie in Excel eine einfache Demo-Tabelle anlegen, die Sie in Power BI Desktop importieren:
Excel-Tabelle mit den Spalten Aufgabe, Startdatum und Ende sowie 4 Zeilen.
  • Fügen Sie in Power BI Desktop die neue Gantt-Visualisierungen in einen Bericht und ziehen Sie die Felder Aufgabe, Startdatum und Enddatum in die gleichnamigen Bereiche in der Felder-Leiste.

Hier ist Ihr Gantt-Diagramm in Power BI!

Ein Gantt-Diagramm in Power BI mit 4 Balken auf einer Zeitachse.

Erfahrungen mit Power BI

Frage vom 27.10.2020

Auf welche Weise findet Power BI erfahrungsgemäß in Unternehmen seine Anwendung?


Es ist ja als Selbsthilfe-Tool für jeden gestrickt, trotzdem halte ich es auch nicht für unwahrscheinlich, dass am Ende sehr wenige Personen für sehr viele Personen Dashboards basteln.


Welche Erfahrungen haben Sie denn schon gemacht bzw. gibt es da eine Tendenz die sich abzeichnet?

Antwort


Im Prinzip soll es genau so sein, wie Sie vermuten: Einige Berichtsdesigner erzeugen mit Power BI Desktop Berichte, welche sie über den Power BI-Dienst einer größeren Zahl an Nutzern zur Verfügung stellen.

Das Konzept soll gerade nicht sein, dass jeder mit Power BI Desktop seine eigenen Berichtsdateien baut, denn dann erzeugt jeder seine eigenen kleinen Wissensinseln und es findet kein Austausch von Erkenntnissen statt.

Wie dies in den Unternehmen umgesetzt wird, hängt natürlich sehr stark davon ab, ob diese den Power BI-Dienst verwenden und ob die Vorteile der Anwendung richtig kommuniziert werden.

Meiner Erfahrung nach tun sich viele Unternehmen mit dem Dienst sehr schwer, da sie ihre Daten nicht in der Microsoft-Cloud speichern wollen. Der Preis spielt dabei eine eher untergeordnete Rolle. Es geht vielmehr um Fragen der Datensicherheit.

Gerade durch die Corona-Krise haben Unternehmen jedoch den Nutzen und die Notwendigkeit von Cloud-Lösungen erkannt. Dagegen steht, dass Datenschützer jüngst wieder massiv Microsoft für seine Datenschutzbedingungen kritisieren.
https://www.heise.de/news/Datenschutzbehoerden-erklaeren-den-Einsatz-von-Microsoft-365-fuer-rechtswidrig-4931745.html

Es bleibt abzuwarten, wie sich die Lage hier entwickelt und ob Microsoft mehr auf die Wünsche der europäischen Kunden in Punkto Datenschutz eingehen wird.