ALL

Platí pro:Calculated columnCalculated tableMeasureVisual calculation

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.

Syntaxe

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

Parametry

Pojem definice
table Tabulka, u které chcete vymazat filtry.
column Sloupec, u kterého chcete vymazat filtry.

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

Vrácená 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 to není případ kvůli automatickému použití technologie DAX, která optimalizuje filtrování, aby se snížilo množství zpracování potřebné pro určité dotazy DAX. Příkladem, kde automaticky existují a ALL() poskytují neočekávané výsledky, je při filtrování dvou nebo více sloupců stejné tabulky (například při použití průřezů) a ve stejné tabulce je míra, která používá funkci ALL(). V takovém případě se automaticky sloučí více filtrů do jednoho a filtruje se pouze u existujících kombinací 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 existenci a jejím vlivu na výpočty najdete v článku sql.bi.como funkci Microsoft MVP Alberto 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. Funkce ALL() se dá použít pouze k vymazání filtrů, ale ne k vrácení tabulky.
    ALL(tabulka) Odebere všechny filtry ze zadané tabulky. Funkce ALL(Table) vrátí všechny hodnoty v tabulce a odebere 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ý pomocí funkce ALL vytvoří správný celkový součet.

Následující tabulka ukazuje výsledky při vytvoření nové míry All Reseller Sales Ratio pomocí vzorce uvedeného v části s kódem. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do oblasti Popisky řádků kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců. Potom přetáhněte míru All Reseller Sales Ratio do 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ů Accessories Bikes Clothing Komponenty 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 %

Vzorec

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

Vzorec se sestaví takto:

  1. Čitatel je SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])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 Year pomocí vzorce uvedeného v oddílu kódu. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do oblasti Popisky řádků kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců. 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ů Accessories Bikes Clothing Komponenty 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 %

Vzorec

= 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 CategoryName pomocí vzorce uvedeného v části kódu. Pokud chcete zjistit, jak to funguje, přidejte pole CalendarYear do oblasti Popisky řádků kontingenční tabulky a přidejte pole ProductCategoryName do oblasti Popisky sloupců. Pak 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í formátu procentuálního čísla u buněk, které obsahují novou míru Reseller Sales CategoryName.

Popisky řádků Accessories Bikes Clothing Komponenty 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 %

Vzorec

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

Vzorec se sestaví takto:

  1. Čitatel je SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])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 pomocí funkce ALL(Column) odeberete filtr ProductCategoryName a vypočítáte součet nad zbývajícími řádky tabulky 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 filtru
ALL
ALLEXCEPT
FILTER