Funkcja ALLEXCEPT (język DAX)
Usuwa wszystkie filtry kontekstowe z tabeli z wyjątkiem filtrów zastosowanych do określonych kolumn.
Składnia
ALLEXCEPT(<table>,<column>[,<column>[,…]])
Parametry
Termin |
Definicja |
---|---|
tabela |
Tabela, z której są usuwane wszystkie filtry kontekstowe, oprócz filtrów znajdujących się w kolumnach określonych w kolejnych argumentach. |
kolumna |
Kolumna, dla której mają zostać zachowane filtry kontekstowe. |
Pierwszym argumentem funkcji ALLEXCEPT musi być odwołanie do tabeli podstawowej; wszystkie kolejne argumenty muszą być odwołaniami do kolumn podstawowych.W funkcji ALLEXCEPT nie można używać wyrażenia tabeli ani wyrażenia kolumny.
Wartość zwracana
Tabela wszystkich filtrów usunięte z wyjątkiem dla filtrów w określonych kolumnach.
Uwagi
Ta funkcja nie jest używany przez samego siebie, ale służy jako funkcja pośrednich, używany do zmiany zestaw wyniki, nad którymi wykonywania niektórych innych obliczeń.
Zgodnie z opisem w poniższej tabeli funkcji ALL i ALLEXCEPT można używać w różnych scenariuszach.
Funkcja i użycie |
Opis |
---|---|
ALL(tabela) |
Usuwa wszystkie filtry z określonej tabeli.W efekcie funkcja ALL(tabela) zwraca wszystkie wartości w tabeli, usuwając z kontekstu wszystkie filtry, które w przeciwnym wypadku mogłyby zostać zastosowane. Ta funkcja jest przydatna w przypadku pracy z wieloma poziomami grupowania, gdy trzeba obliczyć stosunek wartości zagregowanej do wartości łącznej. |
ALL (kolumna[, kolumna[, …]]) |
Usuwa wszystkie filtry z określonych kolumn w tabeli; wszystkie inne filtry dotyczące innych kolumn w tabeli są nadal stosowane.Wszystkie argumenty „kolumna” muszą pochodzić z jednej tabeli. Wariant ALL(kolumna) jest przydatny, gdy trzeba usunąć filtry kontekstowe z co najmniej jednej określonej kolumny i zachować wszystkie inne filtry kontekstowe. |
ALLEXCEPT(tabela, kolumna1 [,kolumna2]...) |
Usuwa wszystkie filtry kontekstowe z tabeli z wyjątkiem filtrów zastosowanych do określonych kolumn. Jest to wygodny skrót do zastosowania w sytuacjach, gdy trzeba usunąć filtry z wielu, ale nie ze wszystkich, kolumn tabeli. |
Przykład
W poniższym przykładzie pokazano formułę, której można użyć w mierze.Aby uzyskać więcej informacji na temat tworzenia miara Zobacz Tworzenie miary w tabeli przestawnej lub na wykresie przestawnym.
Formuła sumuje SalesAmount_USD i Usuń wszystkie filtry kontekstowe tabela DateTime, z wyjątkiem przypadków, jeśli zastosowano filtr do kolumna CalendarYear za pomocą funkcja ALLEXCEPT.
Ostrzeżenie
W powyższym przykładzie są używane tabele ResellerSales_USD i DateTime z przykładowego skoroszytu języka DAX.Aby uzyskać więcej informacji dotyczących próbek, zobacz Pobieranie przykładowych danych dla programu PowerPivot .
=CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))
W formule jest używana funkcja ALLEXCEPT, więc ilekroć dowolna kolumna z tabeli DateTime inna niż CalendarYear jest używana do fragmentowania tabeli przestawnej, formuła usuwa wszelkie filtry fragmentatora, dając w wyniku wartość równą sumie wartości SalesAmount_USD dla wartości etykiety kolumny, tak jak pokazano w tabeli 1.
Jeśli jednak do fragmentowania tabeli przestawnej jest używana kolumna CalendarYear, wyniki są inne.Kolumna CalendarYear jest określona jako argument funkcji ALLEXCEPT, więc jeśli dane są fragmentowane według lat, do lat jest stosowany filtr na poziomie wiersza, tak jak pokazano w tabeli 2.Zaleca się porównanie tych tabel w celu zrozumienia zachowania funkcji ALLEXCEPT().
Zobacz także