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:
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.
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.
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:
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.
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:
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.
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.