Visual Level Filter in Power BI: Probleme beim Crossfilter

Visual Level Filter sind generell problematisch in Power BI: die Datentransparenz leidet tendenziell durch die leicht zu übersehenden Filter auf Visualeben. Eine besondere Problematik tut sich auf bei der Verwendung von Visual Level Filter auf die gleiche Tabelle in zwei in Beziehung stehenden Visuals.

Ausgangssituation

Wir haben eine einfache (flache) Faktentabelle mit 3 Keyspalten und 2 Wertspalten:

Problematik von Visual Level Filter

Die Faktentabelle wird mit den folgenden beiden Visuals für Costs und Hours visualisiert:

Wird jetzt ein Crossfilter im linken Costs Visual gesetzt, so ändert sich - unerwartet - der Wert für das zugehörige Element im rechten Hours Visual:

Auf das rechte Hours Visual wirkt ohne Crossfilter bereits ein Filter, dessen Herkunft wir später klären:

Bei aktivem Crossfilter wirken aber 3 Filter auf das rechte Hours Visual. Die Herkunft des "Product = Corn" Filters ist klar, aber die Herkunft des Filters "Cost Type <> Type 2" ist unklar und ist wohl die Ursache für den abweichenden Wert bei aktivem Crossfilter:

Das rechte Hours Visual hat den Visual Level Filter "Hour Type <> Type C", das erklärt die Filterung des Visuals bereits im Normalzustand:

Das linke Costs Visual hat ebenfalls einen Visual Level Filter, nämlich "Cost Type <> Type 2". Dieser wirkt zuerst auf das Cost Visual selbst und wird bei aktivem Crossfilter an alle in Beziehung stehenden Visuals weitergegeben und verändert so die Stundenermittlung im rechten Hours Visual:

Lösung mittels Measures

Der Effekt kann sehr einfach mit einer verbreiteten Best Practice beseitigt werden: niemals die Wertspalten (= implizite Measures) in einem Visual verwenden sondern ein explizites Measure anzulegen. Dieses wird mit der Filterbedingung für die korrekte Ermittlung der Kennzahl ausgestattet und der Visual Level Filter kann entfernt werden:

Costs = 
    CALCULATE(
        SUM(Faktentabelle[Costs]);
        Faktentabelle[Cost Type] <> "Type 2"
    )
Hours = 
    CALCULATE(
        SUM(Faktentabelle[Hours]);
        Faktentabelle[Hour Type] <> "Type C"
    )

In den Visuals werden jetzt die beiden Measures eingesetzt. Bei aktivem Crossfilter ermitteln beiden Measure das idente Ergebnis wie auch ohne Crossfilter - Problem gelöst:

Fazit

Visual Level Filter sind verlockend, da rasch umgesetzt, aber machen fast immer früher oder später Probleme. Die aufgezeigte Crossfilter-Problematik sollte als Argument gegen die Verwendung von Visual Level Filter gesehen werden.

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Power BI Camp - Präsenztrainings in Wien und Nürnberg!

Dashboarding mit Power BI, DAX & Datenmodellierung und Power Query. Drei Einzelmodule oder als ganze Trainingswoche - für Einsteiger und Fortgeschrittene!

Termine 2022

Wien: (7./8. Februar 2022)
und 25.-28 April 2022
Nürnberg: (14./15. Februar 2022)
und 9.-12. Mai 2022

Jetzt buchen und Rabatt sichern.

Jetzt buchen!

Leave a Replay

Schreibe einen Kommentar

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!