Udostępnij za pośrednictwem


Funkcja ALL

Zwraca wszystkie wiersze w tabeli lub wszystkie wartości w kolumnie, ignorując wszelkie zastosowane filtry. Ta funkcja jest przydatna do czyszczenia filtrów i przeprowadzania obliczeń na wszystkich wierszach tabeli.

Składnia

ALL( {<table> | <column>[, <column>[, <column>[,…]]]} )

Parametry

Termin

Definicja

table

Tabela, w której mają zostać wyczyszczone filtry.

column

Kolumna, w której mają zostać wyczyszczone filtry.

Argumentem funkcji ALL musi być odwołanie do tabeli podstawowej lub do kolumny podstawowej. Nie można z nią używać wyrażenia tabeli ani wyrażenia kolumny.

Wartość zwracana

Tabela lub kolumna z usuniętymi filtrami.

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.

<Status tematu:> Niektóre informacje w tym temacie wchodzą w skład dokumentacji wstępnej i mogą zostać zmienione w przyszłych wydaniach. Informacje wchodzące w skład dokumentacji wstępnej zawierają opisy nowych funkcji lub zmian dotyczących istniejących funkcji w programie Microsoft SQL Server 2012 z dodatkiem Service Pack 1 (SP1) w wersji Community Technology Preview 4 (CTP4). W sytuacjach, gdy kolumna [Column] jest oznaczona jako kolumna dat przy użyciu okna dialogowego Oznaczanie jako tabeli dat

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. Ten scenariusz zilustrowano w pierwszym przykładzie.

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.

Ten scenariusz zilustrowano w drugim i trzecim przykładzie.

ALLEXCEPT(tabela, kolumna1 [,kolumna2]...)

Usuwa wszystkie filtry kontekstowe w 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: obliczanie stosunku sprzedaży w kategorii do łącznej sprzedaży

Opis

Należy znaleźć kwotę sprzedaży dla bieżącej komórki w tabeli przestawnej podzieloną przez łączną kwotę sprzedaży dla wszystkich odsprzedawców. Aby upewnić się, że mianownik będzie zawsze taki sam, niezależnie od sposobu przefiltrowania lub pogrupowania danych tabeli przestawnej, należy zdefiniować formułę używającą funkcji ALL do obliczenia poprawnej sumy końcowej.

W poniższej tabeli pokazano wyniki uzyskane po utworzeniu nowej miary o nazwie Stosunek do sprzedaży wszystkich odsprzedawców przy użyciu formuły pokazanej w sekcji kodu. Aby zobaczyć działanie tej formuły, dodaj pole CalendarYear do obszaru Etykiety wierszy tabeli przestawnej i pole ProductCategoryName do obszaru Etykiety kolumn. Następnie przeciągnij miarę Stosunek do sprzedaży wszystkich odsprzedawców do obszaru Wartości tabeli przestawnej. Aby wyświetlić wyniki jako wartości procentowe, użyj funkcji formatowania programu Excel w celu zastosowania formatowania procentowego do komórek, które zawierają miarę.

Sprzedaż wszystkich odsprzedawców

Etykiety kolumn

 

 

 

 

Etykiety wierszy

Accessories

Bikes

Clothing

Components

Suma końcowa

2005

0.02%

9.10%

0.04%

0.75%

9.91%

2006

0.11%

24.71%

0.60%

4.48%

29.90%

2007

0.36%

31.71%

1.07%

6.79%

39.93%

2008

0.20%

16.95%

0.48%

2.63%

20.26%

Suma końcowa

0.70%

82.47%

2.18%

14.65%

100.00%

Kod

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])

Komentarze

Formuła jest tworzona w następujący sposób:

  1. Licznik, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), jest sumą wartości w kolumnie ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej, przy czym filtry kontekstowe są stosowane do kolumn CalendarYear i ProductCategoryName.

  2. Aby obliczyć mianownik, najpierw należy określić tabelę ResellerSales_USD, a następnie użyć funkcji ALL w celu usunięcia wszystkich filtrów kontekstowych zastosowanych do tabeli.

  3. Następnie funkcja SUMX sumuje wartości w kolumnie ResellerSales_USD[SalesAmount_USD]. Innymi słowy, zostaje uzyskana suma wartości sprzedaży z kolumny ResellerSales_USD[SalesAmount_USD] dla wszystkich odsprzedawców.

Aby uzyskać więcej informacji dotyczących tworzenia miar, zobacz temat Tworzenie miary w tabeli przestawnej lub na wykresie przestawnym.

[!UWAGA]

W powyższym przykładzie są używane tabele ResellerSales_USD, DateTime i ProductCategory z przykładowego skoroszytu języka DAX. Aby uzyskać więcej informacji dotyczących przykładów, zobacz temat Pobieranie przykładowych danych.

Przykład: obliczanie stosunku sprzedaży produktu do łącznej sprzedaży w bieżącym roku

Opis

Należy utworzyć tabelę z procentem sprzedaży porównywanym na przestrzeni lat dla poszczególnych kategorii produktów (ProductCategoryName). Aby uzyskać procent dla poszczególnych lat i każdej wartości ProductCategoryName, należy podzielić sumę wartości sprzedaży dla określonego roku i kategorii produktów przez sumę sprzedaży dla tej samej kategorii produktów we wszystkich latach. Innymi słowy, przy obliczaniu mianownika wartości procentowej należy zachować filtr dla kolumny ProductCategoryName i usunąć filtr dla roku.

W poniższej tabeli pokazano wyniki uzyskane po utworzeniu nowej miary o nazwie Roczna sprzedaż odsprzedawców przy użyciu formuły pokazanej w sekcji kodu. Aby zobaczyć działanie tej formuły, dodaj pole CalendarYear do obszaru Etykiety wierszy tabeli przestawnej i pole ProductCategoryName do obszaru Etykiety kolumn. Aby wyświetlić wyniki jako wartości procentowe, użyj funkcji formatowania programu Excel w celu zastosowania formatowania procentowego do komórek, które zawierają miarę Roczna sprzedaż odsprzedawców.

Roczna sprzedaż odsprzedawców

Etykiety kolumn

 

 

 

 

Etykiety wierszy

Accessories

Bikes

Clothing

Components

Suma końcowa

2005

3.48%

11.03%

1.91%

5.12%

9.91%

2006

16.21%

29.96%

27.29%

30.59%

29.90%

2007

51.62%

38.45%

48.86%

46.36%

39.93%

2008

28.69%

20.56%

21.95%

17.92%

20.26%

Suma końcowa

100.00%

100.00%

100.00%

100.00%

100.00%

Kod

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))

Komentarze

Formuła jest tworzona w następujący sposób:

  1. Licznik, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), jest sumą wartości w kolumnie ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej, przy czym filtry kontekstowe są stosowane do kolumn CalendarYear i ProductCategoryName.

  2. Aby obliczyć mianownik, należy usunąć istniejący filtr z kolumny CalendarYear, używając funkcji ALL(kolumna). Następnie jest obliczana suma dla pozostałych wierszy w tabeli ResellerSales_USD, po zastosowaniu istniejących filtrów kontekstowych z obszaru Etykiety kolumn. W efekcie mianownik jest sumą obliczoną dla wybranej wartości ProductCategoryName (domniemany filtr kontekstowy) i wszystkich wartości lat.

Aby uzyskać więcej informacji dotyczących tworzenia miar, zobacz temat Tworzenie miary w tabeli przestawnej lub na wykresie przestawnym.

[!UWAGA]

W tym przykładzie są używane tabele ResellerSales_USD, DateTime i ProductCategory z przykładowego skoroszytu języka DAX. Aby uzyskać więcej informacji dotyczących przykładów, zobacz temat Pobieranie przykładowych danych.

Przykład: obliczanie udziału kategorii produktów w łącznej sprzedaży w danym roku

Opis

Należy utworzyć tabelę przedstawiającą procent sprzedaży każdej kategorii produktów w każdym roku. Aby uzyskać procent dla poszczególnych kategorii produktów w określonym roku, należy obliczyć sumę wartości sprzedaży dla określonej kategorii produktów (ProductCategoryName) w roku n, a następie podzielić ją przez sumę sprzedaży we wszystkich kategoriach produktów dla roku n. Innymi słowy, przy obliczaniu mianownika wartości procentowej należy zachować filtr dla roku, a usunąć filtr dla kolumny ProductCategoryName.

W poniższej tabeli pokazano wyniki uzyskane po utworzeniu nowej miary Nazwa kategorii sprzedaży odsprzedawców przy użyciu formuły pokazanej w sekcji kodu. Aby zobaczyć działanie tej formuły, dodaj pole CalendarYear do obszaru Etykiety wierszy tabeli przestawnej i pole ProductCategoryName do obszaru Etykiety kolumn. Następnie dodaj nową miarę do obszaru Wartości tabeli przestawnej. Aby wyświetlić wyniki jako wartości procentowe, użyj funkcji formatowania programu Excel w celu zastosowania formatowania procentowego do komórek, które zawierają nową miarę Nazwa kategorii sprzedaży odsprzedawców.

Nazwa kategorii sprzedaży odsprzedawców

Etykiety kolumn

 

 

 

 

Etykiety wierszy

Accessories

Bikes

Clothing

Components

Suma końcowa

2005

0.25%

91.76%

0.42%

7.57%

100.00%

2006

0.38%

82.64%

1.99%

14.99%

100.00%

2007

0.90%

79.42%

2.67%

17.01%

100.00%

2008

0.99%

83.69%

2.37%

12.96%

100.00%

Suma końcowa

0.70%

82.47%

2.18%

14.65%

100.00%

Kod

=SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))

Komentarze

Formuła jest tworzona w następujący sposób:

  1. Licznik, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), jest sumą wartości w kolumnie ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej, przy czym filtry kontekstowe są stosowane do pól CalendarYear i ProductCategoryName.

  2. Aby obliczyć mianownik, należy za pomocą funkcji ALL(kolumna) usunąć filtr z kolumny ProductCategoryName, a następnie obliczyć sumę pozostałych wierszy tabeli ResellerSales_USD po zastosowaniu istniejących filtrów kontekstowych z obszaru Etykiety wierszy. W efekcie mianownik jest sumą obliczoną dla wybranego roku (domniemany filtr kontekstowy) i dla wszystkich wartości pola ProductCategoryName.

Aby uzyskać więcej informacji dotyczących tworzenia miar, zobacz temat Tworzenie miary w tabeli przestawnej lub na wykresie przestawnym.

[!UWAGA]

W tym przykładzie są używane tabele ResellerSales_USD, DateTime i ProductCategory z przykładowego skoroszytu języka DAX. Aby uzyskać więcej informacji dotyczących przykładów, zobacz temat Pobieranie przykładowych danych.

Zobacz także

Odwołanie

Funkcja ALL

Funkcja ALLEXCEPT

Funkcja FILTER

Inne zasoby

Funkcje filtru (język DAX)