ALL
Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne
Zwraca all wierszy w tabeli, orallvalues w kolumnie, ignorując wszystkie filters, które mogły zostać zastosowane. Ta funkcja jest przydatna do czyszczenia filtersand tworzenia obliczeń na all wierszach w tabeli.
Składnia
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Parametry
Termin | Definicja |
---|---|
table |
Tabela, dla której chcesz wyczyścić filters. |
column |
Kolumna, dla której chcesz wyczyścić filters. |
Argument funkcji ALL musi być odwołaniem do tabeli podstawowej or odwołaniem do kolumny podstawowej. Nie można używać wyrażeń tabeli or wyrażeń kolumn z funkcją ALL.
Zwracanie value
Tabela or kolumna z usuniętym filters.
Uwagi
Ta funkcja jest not używana przez siebie, ale służy jako funkcja pośrednia, która może służyć do zmiany zestawu wyników, nad którymi wykonywane są inne obliczenia.
Normalne zachowanie w wyrażeniach DAX zawierających funkcję ALL() polega na tym, że wszystkie zastosowane filters zostaną zignorowane. Istnieją jednak pewne scenariusze, w których jest to not przypadku z powodu
auto-exist
, technologia DAX, która optymalizuje filtrowanie w celu zmniejszenia ilości przetwarzania wymaganego dla niektórych zapytań DAX. Przykładem, w którym automatyczne istnienie andALL() zapewnia nieoczekiwane wyniki, jest filtrowanie dwóch or większej liczby kolumn tej samej tabeli (na przykład w przypadku używania fragmentatorów), and istnieje measure w tej samej tabeli, która używa ALL(). W takim przypadku autoistnieje scali wiele filters w jeden and będzie filter tylko w przypadku istniejących kombinacji values. Ze względu na to scalanie measure zostanie obliczona na istniejących kombinacjach valuesand wynik będzie oparty na filtrowanych values zamiast allvalues zgodnie z oczekiwaniami. Aby dowiedzieć się więcej o autoistnieniujego obliczeń, zobacz artykuł Microsoft MVP Alberto Ferrari's Understanding article onAuto-Exist (Omówienie Auto-Exist). W poniższej tabeli opisano sposób używania funkcji ALLandALLEXCEPT w różnych scenariuszach.
Użycie and funkcji Opis ALL() Usuwa allfilters wszędzie. ALL() można użyć tylko do wyczyszczenia filters, ale not zwrócić tabelę. ALL(tabela) Usuwa allfilters z określonej tabeli. W effectALL(Tabela) zwraca allvalues w tabeli, usuwając wszystkie filters z kontekstu, który w przeciwnym razie mógł zostać zastosowany. Ta funkcja jest przydatna podczas pracy z wieloma poziomami grupowania, and chcesz utworzyć obliczenie, które tworzy stosunek zagregowanej value do całkowitej value. W przykładzie first pokazano ten scenariusz. ALL (kolumna[, kolumna[, ...]]) Usuwa allfilters z określonych kolumn w tabeli; all inne filters w innych kolumnach w tabeli nadal mają zastosowanie. All argumenty kolumn muszą pochodzić z tej samej tabeli. Wariant ALL(kolumna) jest przydatny, gdy chcesz usunąć filters kontekstu dla jednej or bardziej szczegółowych kolumn and, aby zachować all inny kontekst filters. W secondand trzecim przykładzie pokazano ten scenariusz. ALLEXCEPT(Tabela, Kolumna1 [,Kolumna2]...) Usuwa all kontekstu filters w tabeli exceptfilters, które są stosowane do określonych kolumn. Jest to wygodny skrót w sytuacjach, w których chcesz usunąć filters dla wielu, ale notallkolumn w tabeli. Ta funkcja jest not obsługiwana do użycia w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych or reguł zabezpieczeń na poziomie wiersza.
Przykład 1
Calculate stosunek sprzedaży kategorii do łącznej sprzedaży
Załóżmy, że chcesz find ilość sprzedaży dla bieżącej komórki w tabeli przestawnej podzielona przez łączną sprzedaż dla all odsprzedawców. Aby upewnić się, że mianownik jest taki sam niezależnie od tego, jak użytkownik tabeli przestawnej może filtrować or grupowanie danych, należy define formułę, która używa ALL do utworzenia poprawnej sumy końcowej.
W poniższej tabeli przedstawiono wyniki tworzenia nowych measure, All Reseller Sales Ratio, przy użyciu formuły pokazanej w sekcji kodu. Aby zobaczyć, jak to działa, dodaj pole CalendarYear do obszaru Row Labels tabeli przestawnej, and dodać pole ProductCategoryName do obszaru Column Labels. Następnie przeciągnij measure, All Reseller Sales Ratio, do obszaru Values tabeli przestawnej. Aby wyświetlić wyniki jako wartości procentowe, użyj funkcji formatowania programu Excel, aby zastosować formatowanie procentowe do komórek, które containsmeasure.
Etykiety wierszy | Akcesoria | Rowery | Odzież | Składniki | 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% |
Formuła
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Formuła jest skonstruowana w następujący sposób:
Licznik
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
to sumvalues w ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej z filters kontekstu zastosowanymi w kolumnie CalendarYear and ProductCategoryName.W przypadku mianownika należy zacząć od określenia tabeli, ResellerSales_USD, and użyć funkcji ALL, aby usunąć all kontekstu filters tabeli.
Następnie użyjesz funkcji SUMX, aby sumvalues w kolumnie ResellerSales_USD[SalesAmount_USD]. Innymi słowy, uzyskujesz sum ResellerSales_USD[SalesAmount_USD] dla sprzedaży odsprzedawców all.
Przykład 2
stosunek Calculate sprzedaży Product do łącznej sprzedaży za pośrednictwem bieżącej Year
Załóżmy, że chcesz utworzyć tabelę przedstawiającą procent sprzedaży w porównaniu z latami dla każdej kategorii product (ProductCategoryName). Aby uzyskać wartość procentową dla każdej year dla każdej value ProductCategoryName, należy dividesum sprzedaży dla tej konkretnej kategorii yearandproduct według sum sprzedaży dla tej samej kategorii product w ciągu all lat. Innymi słowy, chcesz zachować filter w kolumnie ProductCategoryName, ale usunąć filter na year podczas obliczania mianownika wartości procentowej.
W poniższej tabeli przedstawiono wyniki utworzenia nowej measure, Reseller Sales Yearprzy użyciu formuły przedstawionej w sekcji kodu. Aby zobaczyć, jak to działa, dodaj pole CalendarYear do obszaru Row Labels tabeli przestawnej, and dodać pole ProductCategoryName do obszaru Column Labels. Aby wyświetlić wyniki jako wartości procentowe, użyj funkcji formatowania programu Excel, aby zastosować liczbę procentową format do komórek zawierających measure, Reseller Sales Year.
Etykiety wierszy | Akcesoria | Rowery | Odzież | Składniki | 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% |
Formuła
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Formuła jest skonstruowana w następujący sposób:
Licznik,
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
, jest sumvalues w ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej z kontekstem filters zastosowanymi w kolumnach CalendarYear and ProductCategoryName.W przypadku mianownika należy usunąć istniejącą filter w kolumnie CalendarYear przy użyciu funkcji ALL(kolumna). Spowoduje to obliczenie sum pozostałych wierszy w tabeli ResellerSales_USD po zastosowaniu istniejącego kontekstu filters z etykiet kolumn. effect netto polega na tym, że dla mianownika sum jest obliczany na podstawie wybranej wartości ProductCategoryName (implikowany kontekst filter) and dla allvalues w Year.
Przykład 3
Calculate współtworzenie kategorii Product do łącznej sprzedaży na Year
Załóżmy, że chcesz utworzyć tabelę, która pokazuje procent sprzedaży dla każdej kategorii product, na podstawie year—według-year. Aby uzyskać wartość procentową dla każdej kategorii product w określonej year, należy calculatesum sprzedaży dla tej konkretnej kategorii product (ProductCategoryName) w year n, and następnie divide wynikową value przez sum sprzedaży dla year n ponad allproduct kategorii. Innymi słowy, chcesz zachować filter na year, ale usunąć filter w kolumnie ProductCategoryName podczas obliczania mianownika wartości procentowej.
W poniższej tabeli przedstawiono wyniki tworzenia nowych measure, Reseller Sales CategoryName, przy użyciu formuły pokazanej w sekcji kodu. Aby zobaczyć, jak to działa, dodaj pole CalendarYear do obszaru
Etykiety wierszy | Akcesoria | Rowery | Odzież | Składniki | 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% |
Formuła
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Formuła jest skonstruowana w następujący sposób:
Licznik
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
to sumvalues w ResellerSales_USD[SalesAmount_USD] dla bieżącej komórki w tabeli przestawnej z filters kontekstu zastosowanymi w polach CalendarYear and ProductCategoryName.W przypadku mianownika należy użyć funkcji ALL(Kolumna), aby usunąć filter w kolumnie ProductCategoryName andcalculatesum pozostałych wierszy w tabeli ResellerSales_USD po zastosowaniu istniejącego kontekstu filters z etykiet wierszy. effect netto polega na tym, że dla mianownika sum jest obliczany na podstawie wybranej Year (implikowanego kontekstu filter) and dla allvalues ProductCategoryName.
Related zawartości
Filter functionsALL functionALLEXCEPT functionFILTER function