Den Filterkontext untersuchen

Abgeschlossen

Mit der Funktion VALUES können Ihre Formeln bestimmen, welche Werte sich im Filterkontext befinden.

Die VALUES-Funktionssyntax ist folgende:

VALUES(<TableNameOrColumnName>)

Die Funktion erfordert die Übergabe eines Tabellen‑ oder Spaltenverweises. Wenn Sie einen Tabellenverweis übergeben, gibt sie ein Tabellenobjekt mit den Spalten zurück, die Zeilen für den Inhalt des Filterkontexts enthalten. Wenn Sie einen Spaltenverweis übergeben, gibt sie eine einspaltige Tabelle mit eindeutigen Werten zurück, die sich im Filterkontext befinden.

Die Funktion gibt immer ein Tabellenobjekt zurück, und eine Tabelle kann mehrere Zeilen enthalten. Um zu überprüfen, ob ein bestimmter Wert im Filterkontext enthalten ist, muss Ihre Formel daher zunächst überprüfen, ob die Funktion VALUES eine einzelne Zeile zurückgibt. Zwei Funktionen können Sie dabei unterstützen, diese Aufgabe zu erfüllen: Die Funktionen HASONEVALUE und SELECTEDVALUE.

Die Funktion HASONEVALUE gibt TRUE zurück, wenn ein bestimmter Spaltenverweis auf einen einzelnen Wert gefiltert wurde.

Die Funktion SELECTEDVALUE vereinfacht die Aufgabe, zu bestimmen, was ein einzelner Wert sein kann. Wenn der Funktion ein Spaltenverweis übergeben wird, gibt sie einen einzelnen Wert zurück. Wenn sich mehr als ein Wert im Filterkontext befindet, wird BLANK zurückgegeben (oder ein alternativer Wert, den Sie an die Funktion übergeben).

Im folgenden Beispiel verwenden Sie die Funktion HASONEVALUE. Fügen Sie das folgende Measure, das die Verkaufsprovision berechnet, der Tabelle Sales hinzu. Bei Adventure Works beträgt der Provisionssatz 10 Prozent des Umsatzes für alle Länder/Regionen mit Ausnahme der USA. In den USA verdienen Verkäufer 15 % Provision. Formatieren Sie das Measure als Währung mit zwei Dezimalstellen, und fügen Sie es dann der Tabelle auf Seite 3 des Berichts hinzu.

Sales Commission =
[Revenue]
    * IF(
        HASONEVALUE('Sales Territory'[Country]),
        IF(
            VALUES('Sales Territory'[Country]) = "United States",
            0.15,
            0.1
        )
    )

Screenshot einer Tabelle mit den Spalten „Region“, „Revenue“ und „Sales Commission“. Die Spalte „Revenue“ zeigt eine Summe, während die Verkaufsprovision BLANK ist.

Beachten Sie, dass das Gesamtergebnis des Measures Sales Commission BLANK ist. Der Grund dafür ist, dass sich mehrere Werte im Filterkontext für die Spalte Country in der Tabelle Sales Territory befinden. In diesem Fall gibt die Funktion HASONEVALUEFALSE zurück, was dazu führt, dass das Measure Revenue mit BLANK multipliziert wird (ein mit BLANK multiplizierter Wert ist BLANK). Sie müssen eine Iteratorfunktion verwenden, die später in diesem Modul erläutert wird, um eine Summe zu erzeugen.

Die folgenden drei weiteren Funktionen können Sie zum Testen des Filterzustands verwenden:

  • ISFILTERED – Gibt TRUE zurück, wenn ein übergebener Spaltenverweis direkt gefiltert wird.
  • ISCROSSFILTERED – Gibt TRUE zurück, wenn ein übergebener Spaltenverweis indirekt gefiltert wird. Eine Spalte gilt als kreuzgefiltert, wenn ein auf eine andere Spalte in derselben oder in einer verknüpften Tabelle angewandter Filter sich durch die Filterung auch auf die referenzierte Spalte auswirkt.
  • ISINSCOPE – Gibt TRUE zurück, wenn eine übergebene Spaltenreferenz die Ebene in einer Hierarchie von Ebenen darstellt.

Kehren Sie zu Seite 2 des Berichts zurück, und ändern Sie dann die Definition des Measures Revenue % Total Country, um zu testen, ob sich die Spalte Region in der Tabelle Sales Territory im Gültigkeitsbereich befindet. Wenn sie sich nicht im Gültigkeitsbereich befindet, sollte das Ergebnis es Measures BLANK sein.

Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS('Sales Territory'[Region])
    )
RETURN
    IF(
        ISINSCOPE('Sales Territory'[Region]),
        DIVIDE(
            CurrentRegionRevenue,
            TotalCountryRevenue
        )
    )

Screenshot der aktualisierten Matrix, sodass die Gesamtzusammenfassungen der Gruppe nun BLANK sind