Użyj SELECTEDVALUE zamiast VALUES
Jako modeler danych czasami może być konieczne napisanie wyrażenia DAX, które sprawdza, czy kolumna jest filtrowana według określonego value.
W earlier wersjach DAXto wymaganie zostało bezpiecznie osiągnięte przy użyciu wzorca obejmującego trzy funkcje DAX; IF, HASONEVALUEandVALUES. Poniższa definicja measure przedstawia przykład. Oblicza kwotę podatku od sprzedaży, ale tylko dla sprzedaży dokonanej dla klientów australijskich.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
W tym przykładzie funkcja HASONEVALUE zwraca TRUE tylko wtedy, gdy pojedyncza value kolumny Country-Region jest widoczna w bieżącym kontekście filter. Gdy jest TRUE, funkcję VALUES porównuje się z dosłownym tekstem "Australia". Gdy funkcja VALUES zwraca wartość TRUE, sprzedaż measure jest mnożona przez 0,10 (co odpowiada 10%). If funkcja HASONEVALUE zwraca FALSE— ponieważ więcej niż jeden valuefilters kolumnie — funkcja firstIF zwraca BLANK.
Zastosowanie HASONEVALUE jest techniką defensywną. Jest to wymagane, ponieważ istnieje możliwość, że wiele valuesfilter w kolumnie Country-Region. W tym przypadku funkcja VALUES zwraca tabelę wielu wierszy. Porównanie tabeli z wieloma wierszami do skalarnej value skutkuje error.
Zalecenie
Zaleca się użycie funkcji SELECTEDVALUE. Osiąga ten sam wynik co wzorzec opisany w tym artykule, ale robi to bardziej wydajnie i elegancko and.
Korzystając z funkcji SELECTEDVALUE, przykładowa definicja measure jest now przepisana.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Napiwek
Możliwe jest przekazanie alternatywnego wyniku value do funkcji SELECTEDVALUE. Alternatywny wynik value jest zwracany, albo gdy nie stosuje się filters—or, albo gdy nie ma wielokrotności filtersstosowanych do kolumny.
Related zawartość
- Szkolenie path: Wykorzystanie DAX w Power BI Desktop
- Pytania? Spróbuj zapytać społeczności usługi Power BI
- Sugestie? Przyczynianie się pomysłami na ulepszanie Power BI