Sdílet prostřednictvím


ALL

platí pro:Počítaný sloupecPočítaná tabulkamíravizuální

Vrátí všechny řádky v tabulce nebo všechny hodnoty ve sloupci a ignoruje všechny použité filtry. Tato funkce je užitečná pro vymazání filtrů a vytváření výpočtů na všech řádcích tabulky.

Syntax

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

Parametry

Semestr Definice
table Tabulka, u které chcete vymazat filtry.
column Sloupec, u kterého chcete vymazat filtry.

Argumentem ALL funkce musí být odkaz na základní tabulku nebo odkaz na základní sloupec. U ALL funkce nelze použít výrazy tabulky ani výrazy sloupců.

Návratová hodnota

Tabulka nebo sloupec s odebranými filtry

Poznámky

  • Tato funkce se nepoužívá sama o sobě, ale slouží jako zprostředkující funkce, která se dá použít ke změně sady výsledků, u kterých se provádí jiný výpočet.

  • Normální chování výrazů DAX obsahujících funkci ALL() je, že všechny použité filtry budou ignorovány. Existují však některé scénáře, kdy se nejedná o případ z důvodu auto-exist, technologie DAX, která optimalizuje filtrování, aby se snížilo množství zpracování potřebné pro určité DAX dotazy. Příkladem, kdy automaticky existují a ALL() poskytují neočekávané výsledky, je filtrování dvou nebo více sloupců stejné tabulky (například při použití průřezů) a na stejné tabulce je míra, která používá ALL(). V tomto případě automaticky existuje sloučení více filtrů do jednoho a bude filtrovat pouze existující kombinace hodnot. Z důvodu tohoto sloučení se míra vypočítá na existujících kombinacích hodnot a výsledek bude založen na filtrovaných hodnotách místo všech hodnot podle očekávání. Další informace o automatickém fungování a jeho vlivu na výpočty najdete v článku o sql.bi.comspolečnosti Microsoft MVP Alberta Ferrariho Understanding DAX Auto- Exist .

  • Následující tabulka popisuje, jak můžete používat funkce ALL a ALLEXCEPT v různých scénářích.

    Funkce a využití Popis
    ALL() Odebere všechny filtry všude. ALL() lze použít pouze k vymazání filtrů, ale ne k vrácení tabulky.
    ALL(tabulka) Odebere všechny filtry ze zadané tabulky. V důsledku toho ALL(Tabulka) vrátí všechny hodnoty v tabulce a odeberou se všechny filtry z kontextu, které by jinak mohly být použity. Tato funkce je užitečná při práci s mnoha úrovněmi seskupení a chcete vytvořit výpočet, který vytvoří poměr agregované hodnoty k celkové hodnotě. První příklad ukazuje tento scénář.
    ALL (sloupec[, sloupec[, ...]]) Odebere všechny filtry ze zadaných sloupců v tabulce; všechny ostatní filtry pro ostatní sloupce v tabulce stále platí. Všechny argumenty sloupců musí pocházet ze stejné tabulky. Varianta ALL(Column) je užitečná, když chcete odebrat kontextové filtry pro jeden nebo více konkrétních sloupců a zachovat všechny ostatní kontextové filtry. Druhý a třetí příklad ukazují tento scénář.
    ALLEXCEPT(tabulka, sloupec1 [;sloupec2]...) Odebere všechny kontextové filtry v tabulce s výjimkou filtrů použitých pro zadané sloupce. Toto je praktická zkratka pro situace, kdy chcete odebrat filtry pro mnoho, ale ne všechny sloupce v tabulce.
  • Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).

Příklad 1

Výpočet poměru prodejů kategorie k celkovému prodeji

Předpokládejme, že chcete zjistit objem prodeje pro aktuální buňku v kontingenční tabulce vydělený celkovým prodejem pro všechny prodejce. Pokud chcete zajistit, aby jmenovatel byl stejný bez ohledu na to, jak může uživatel kontingenční tabulky filtrovat nebo seskupovat data, definujete vzorec, který používá ALL k vytvoření správného celkového součtu.

Následující tabulka ukazuje výsledky při vytvoření nové míry, All Reseller Sales Ratio, pomocí vzorce uvedeného v části kódu. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do oblasti Popisky řádků oblasti kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců. Potom přetáhněte míru All Reseller Sales Ratiodo oblasti Hodnoty kontingenční tabulky. Pokud chcete zobrazit výsledky jako procenta, použijte u buněk obsahujících míru formátování pomocí funkcí formátování Excelu formátování čísla v procentech.

Popisky řádků Příslušenství Kola Oděv Součásti Celkový součet
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%
Celkový součet 0,70% 82,47% 2.18% 14,65% 100.00%

vzorce

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

Vzorec se sestaví takto:

  1. Čitatel, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), je součet hodnot v ResellerSales_USD[SalesAmount_USD] pro aktuální buňku v kontingenční tabulce s kontextovými filtry použitými na CalendarYear a ProductCategoryName.

  2. U jmenovatele začnete zadáním tabulky, ResellerSales_USD a pomocí funkce ALL odeberete všechny kontextové filtry v tabulce.

  3. Potom pomocí funkce SUMX sečte hodnoty ve sloupci ResellerSales_USD[SalesAmount_USD]. Jinými slovy, získáte součet ResellerSales_USD[SalesAmount_USD] pro všechny prodejce prodeje.

Příklad 2

Calculate Ratio of Product Sales to Total Sales Through Current Year

Předpokládejme, že chcete vytvořit tabulku zobrazující procento prodeje v porovnání s roky pro každou kategorii produktu (ProductCategoryName). Chcete-li získat procento pro každý rok v každé hodnotě ProductCategoryName, je nutné rozdělit součet prodejů pro daný rok a kategorii produktů součtem prodeje pro stejnou kategorii produktů za všechny roky. Jinými slovy, chcete zachovat filtr productCategoryName, ale odebrat filtr roku při výpočtu jmenovatele procenta.

Následující tabulka ukazuje výsledky při vytvoření nové míry Reseller Sales Yearpomocí vzorce uvedeného v oddílu kódu. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do popisků řádků oblasti kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců oblasti. Pokud chcete zobrazit výsledky jako procenta, použijte funkce formátování Excelu k použití procentuálního formátu čísla u buněk obsahujících míru Reseller Sales Year.

Popisky řádků Příslušenství Kola Oděv Součásti Celkový součet
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%
Celkový součet 100.00% 100.00% 100.00% 100.00% 100.00%

vzorce

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

Vzorec se sestaví takto:

  1. Čitatel, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), je součet hodnot v ResellerSales_USD[SalesAmount_USD] pro aktuální buňku v kontingenční tabulce s kontextovými filtry použitými u sloupců CalendarYear a ProductCategoryName.

  2. U jmenovatele odeberete existující filtr v calendarYear pomocí funkce ALL(Column). Tím se vypočítá součet nad zbývajícími řádky v tabulce ResellerSales_USD po použití existujících kontextových filtrů z popisků sloupců. Čistý efekt je, že pro jmenovatele se součet vypočítá přes vybraný ProductCategoryName (implicitní kontextový filtr) a pro všechny hodnoty v roce.

Příklad 3

Výpočet příspěvku kategorií produktů k celkovému prodeji za rok

Předpokládejme, že chcete vytvořit tabulku, která zobrazuje procento prodeje pro každou kategorii produktů v jednotlivých ročních intervalech. Pokud chcete získat procento pro každou kategorii produktů v určitém roce, musíte vypočítat součet prodejů pro danou konkrétní kategorii produktu (ProductCategoryName) v roce n a výslednou hodnotu vydělit součtem prodeje za rok n ve všech kategoriích produktů. Jinými slovy, chcete zachovat filtr podle roku, ale odebrat filtr ProductCategoryName při výpočtu jmenovatele procenta.

Následující tabulka ukazuje výsledky při vytvoření nové míry Reseller Sales CategoryNamepomocí vzorce uvedeného v oddílu kódu. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do oblasti Popisky řádků oblasti kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců. Potom přidejte novou míru do oblasti Hodnoty kontingenční tabulky. Pokud chcete zobrazit výsledky jako procenta, použijte funkce formátování Excelu k použití procentuálního formátu čísla na buňky, které obsahují novou míru, Reseller Sales CategoryName.

Popisky řádků Příslušenství Kola Oděv Součásti Celkový součet
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%
Celkový součet 0,70% 82,47% 2.18% 14,65% 100.00%

vzorce

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

Vzorec se sestaví takto:

  1. Čitatel, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), je součet hodnot v ResellerSales_USD[SalesAmount_USD] pro aktuální buňku v kontingenční tabulce s kontextovými filtry použitými u polí, CalendarYear a ProductCategoryName.

  2. U jmenovatele použijete funkci ALL(Column) k odebrání filtru ProductCategoryName a výpočtu součtu zbývajících řádků v tabulce ResellerSales_USD po použití existujících kontextových filtrů z popisků řádků. Čistým účinkem je, že pro jmenovatele se součet vypočítá přes vybraný rok (implicitní kontextový filtr) a pro všechny hodnoty ProductCategoryName.

funkce filtruALL funkceALLEXCEPT funkceFILTER