Udostępnij za pośrednictwem


Funkcja ALLEXCEPT

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

table

Tabela, z której są usuwane wszystkie filtry kontekstowe, oprócz filtrów znajdujących się w kolumnach określonych w kolejnych argumentach.

column

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 z usuniętymi wszystkimi filtrami z wyjątkiem filtrów zastosowanych do określonych kolumn.

Uwagi

Ta funkcja nie jest używana samodzielnie, lecz pełni rolę funkcji pośredniej — można jej użyć do zmiany zestawu wyników, na których jest wykonywane jakieś inne obliczenie.

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 dotyczących sposobu tworzenia miary, zobacz temat Tworzenie miary w tabeli przestawnej lub na wykresie przestawnym.

W formule są sumowane wartości z kolumny SalesAmount_USD i jest używana funkcja ALLEXCEPT w celu usunięcia wszystkich filtrów kontekstowych z tabeli DateTime, o ile filtr nie jest stosowany do kolumny CalendarYear.

[!UWAGA]

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 przykładów, zobacz temat Pobieranie przykładowych danych.

=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

Odwołanie

Funkcja ALL

Funkcja FILTER

Inne zasoby

Funkcje filtru (język DAX)