ALL
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuálového výpočtu
Vráti všetky riadky v tabuľke alebo všetky hodnoty v stĺpci, pričom sa ignorujú všetky filtre, ktoré mohli byť použité. Táto funkcia je užitočná na vymazanie filtrov a vytváranie výpočtov so všetkými riadkami v tabuľke.
Syntax
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
Parametre
Termín | Definícia |
---|---|
table |
Tabuľka, v ktorú chcete vymazať filtre. |
column |
Stĺpec, v rámci ktorému chcete vymazať filtre. |
Argument funkcie ALL musí byť odkaz na základnú tabuľku alebo odkaz na základný stĺpec. S funkciou ALL nemôžete použiť výrazy tabuľky ani výrazy stĺpca.
Vrátená hodnota
Tabuľka alebo stĺpec s odstránenými filtrami.
Poznámky
Táto funkcia sa nepoužíva samostatne, ale slúži ako pomocná funkcia, ktorá sa dá použiť na zmenu množiny výsledkov, pre ktorú sa vykoná iný výpočet.
Normálnym správaním DAX výrazov obsahujúcich funkciu ALL() je ignorovať všetky použité filtre. Existuje však niekoľko scenárov, v ktorých to tak nie je. Príčinou je
auto-exist
technológia DAX, ktorá optimalizuje filtrovanie s cieľom znížiť množstvo spracovania požadovaného pre určité DAX dotazy. Ak auto-exist a ALL() poskytnú neočakávané výsledky, príkladom je filtrovanie dvoch alebo viacerých stĺpcov rovnakej tabuľky (napríklad pri použití rýchlych filtrov) a v tej istej tabuľke, ktorá používa ALL(). V tomto prípade sa funkcia auto-exist zlúči viacerých filtrov do jedného a bude filtrovať len existujúce kombinácie hodnôt. Z dôvodu tohto zlúčenia sa miera vypočíta z existujúcich kombinácií hodnôt a výsledok bude založený na filtrovaných hodnotách a nie na všetkých hodnotách tak, ako sa očakáva. Ďalšie informácie o technológii auto-exist a jej vplyve na výpočty nájdete v článku MVP spoločnosti Microsoft Alberta Ferrariho Vysvetlenie DAX funkcie Auto-Exist článku o sql.bi.com.V nasledujúcej tabuľke sú popísané možnosti použitia funkcií ALL a ALLEXCEPT v rôznych scenároch.
Funkcia a použitie Popis ALL() Odstráni všade všetky filtre. ALL() možno použiť iba na vymazanie filtrov, ale nie na vrátenie tabuľky. ALL(tabuľka) Odstráni všetky filtre zo zadanej tabuľky. V skutočnosti ALL(Tabuľka) vráti všetky hodnoty v tabuľke, čím odstráni všetky filtre z kontextu, ktoré inak mohli byť použité. Táto funkcia je užitočná, keď pracujete s mnohými úrovňami zoskupenia a chcete vytvoriť výpočet, ktorý vytvorí pomer agregovanej hodnoty k celkovej hodnote. Tento scenár ukazuje prvý príklad. ALL (Stĺpec[, Stĺpec[, ...]]) Odstráni všetky filtre zo zadaných stĺpcov v tabuľke; stále však budú použité všetky ostatné filtre v ostatných stĺpcoch v tabuľke. Všetky argumenty stĺpcov musia pochádzať z rovnakej tabuľky. Variant ALL(stĺpec) je užitočný, keď chcete odstrániť kontextové filtre pre jeden alebo viac konkrétnych stĺpcov a zachovať všetky ostatné kontextové filtre. Druhý a tretí príklad ukazujú tento scenár. ALLEXCEPT(Tabuľka, Stĺpec1 [,Stĺpec2]...) Odstráni všetky kontextové filtre v tabuľke okrem filtrov, ktoré sú použité v zadaných stĺpcoch. Toto je praktická skratka pre situácie, v ktorých chcete odstrániť filtre v mnohých, ale nie všetkých stĺpcoch v tabuľke. Táto funkcia nie je podporovaná na použitie v režime DirectQuery, keď sa používa vo vypočítaných stĺpcoch alebo v pravidlách zabezpečenia na úrovni riadkov (RLS).
Príklad č. 1
Výpočet pomeru predaja v kategórii k celkovému predaju
Predpokladajme, že chcete vyhľadať sumu predaja pre aktuálnu bunku v kontingenčnej tabuľke, vydelenú celkovým predajom pre všetkých predajcov. Definujete vzorec, ktorý používa ALL na vytvorenie správneho celkového súčtu, čím zabezpečíte, že menovateľ bude rovnaký bez ohľadu na to, akým spôsobom používateľ kontingenčnej tabuľky filtruje alebo zoskupuje údaje.
V nasledujúcej tabuľke sa zobrazujú výsledky, keď je pomocou vzorca uvedeného v časti s kódom vytvorená nová miera pomeru predaja všetkých predajcov. Ak chcete zistiť, ako to funguje, pridajte pole KalendárnyRok do oblasti označenia riadkov kontingenčnej tabuľky a pole NázovKategórieProduktov do oblasti Označenia stĺpcov. Potom presuňte mierku Pomer predaja všetkých predajcovdo oblasti Hodnoty kontingenčnej tabuľky. Ak chcete zobraziť výsledky ako percentá, pomocou excelových funkcií formátovania použite formát percentuálneho čísla na bunky, ktoré obsahujú mieru.
Označenia riadkov | Príslušenstvo | Bicykle | Oblečenie | Komponenty | Celkový súč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ý súčet | 0,70% | 82.47% | 2.18% | 14,65% | 100,00% |
vzorcov
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
Vzorec je zostavený takto:
Čitateľ
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
je súčet hodnôt v ResellerSales_USD[SalesAmount_USD] pre aktuálnu bunku v kontingenčnej tabuľke s kontextovými filtrami použitými na stĺpce KalendárnyRok a NázovKategórieProduktov.Menovateľ určíte tak, že zadáte tabuľku ResellerSales_USD a pomocou funkcie ALL odstránite z tabuľky všetky kontextové filtre.
Potom použite funkciu SUMX na sčítanie hodnôt v stĺpci ResellerSales_USD[SalesAmount_USD]. Inými slovami, získate súčet ResellerSales_USD[SalesAmount_USD] pre predaj všetkých predajcov.
Príklad č. 2
Výpočet pomeru predaja produktov k celkovému predaju počas aktuálneho roka
Predpokladajme, že chcete vytvoriť tabuľku, ktorá zobrazuje porovnanie percent predaja v priebehu rokov pre každú kategóriu produktov (NázovKategórieProduktov). Ak chcete získať percento na každý rok na každú hodnotu NázovKategórieProduktov, musíte vydeliť súčet predaja na daný konkrétny rok a kategóriu produktov súčtom predaja na rovnakú kategóriu produktov za všetky roky. Inými slovami, ponecháte filter na názveKategórieProduktov, ale pri výpočte menovateľa percenta odstránite filter na roku.
Nasledujúca tabuľka ukazuje výsledky, keď je pomocou vzorca uvedeného v časti s kódom vytvorená nová miera Rok predaja predajcov. Ak chcete zistiť, ako to funguje, pridajte pole KalendárnyRok do Označenia riadkov oblasť kontingenčnej tabuľky a pole NázovKategórieProduktov do oblasti Označenia stĺpcov. Ak chcete zobraziť výsledky ako percentá, pomocou excelových funkcií formátovania použite formát percentuálneho čísla na bunky, ktoré obsahujú mieru, Rok predaja predajcu.
Označenia riadkov | Príslušenstvo | Bicykle | Oblečenie | Komponenty | Celkový súč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ý súčet | 100,00% | 100,00% | 100,00% | 100,00% | 100,00% |
vzorcov
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))
Vzorec je zostavený takto:
Čitateľ
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
je súčet hodnôt v ResellerSales_USD[SalesAmount_USD] pre aktuálnu bunku v kontingenčnej tabuľke s kontextovými filtrami použitými na stĺpce KalendárnyRok a NázovKategórieProduktov.Pre menovateľ odstránite existujúci filter v stĺpci KalendárnyRok pomocou funkcie ALL(Stĺpec). Takto sa vypočíta súčet zostávajúcich riadkov v tabuľke ResellerSales_USD po použití existujúcich kontextových filtrov z označení stĺpcov. Čistým efektom je, že pre menovateľ sa súčet vypočíta v rámci vybratej položky NázovKategórieProduktov (odvodený kontextový filter) a pre všetky hodnoty v roku.
Príklad č. 3
Výpočet príspevku kategórií produktov k celkovému predaju za rok
Predpokladajme, že chcete vytvoriť tabuľku, ktorá zobrazuje percento predaja jednotlivých kategórií produktov podľa jednotlivých rokov. Ak chcete získať percento pre každú kategóriu produktov v určitom roku, musíte vypočítať súčet predaja pre konkrétnu kategóriu produktu (NázovKategórieProduktov) v roku n a potom vydeliť výslednú hodnotu súčtom predaja za rok n vo všetkých kategóriách produktov. Inými slovami, ponecháte filter na roku, ale pri výpočte menovateľa percenta odstránite filter z položky NázovKategórieProduktov.
Nasledujúca tabuľka ukazuje výsledky, keď je pomocou vzorca uvedeného v časti s kódom vytvorená nová mierka NázovKategóriePredaja. Ak chcete zistiť, ako to funguje, pridajte pole KalendárnyRok do oblasti označenia riadkov kontingenčnej tabuľky a pole NázovKategórieProduktov do oblasti Označenia stĺpcov. Potom pridajte novú mierku do oblasti Values kontingenčnej tabuľky. Ak chcete zobraziť výsledky ako percentá, pomocou excelových funkcií formátovania použite formát percentuálneho čísla na bunky, ktoré obsahujú novú mieru, predaj predajcov NázovKategórie.
Označenia riadkov | Príslušenstvo | Bicykle | Oblečenie | Komponenty | Celkový súč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ý súčet | 0,70% | 82.47% | 2.18% | 14,65% | 100,00% |
vzorcov
= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))
Vzorec je zostavený takto:
Čitateľ
SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])
je súčet hodnôt v ResellerSales_USD[SalesAmount_USD] pre aktuálnu bunku v kontingenčnej tabuľke s kontextovými filtrami použitými na polia KalendárnyRok a NázovKategórieProduktov.Pre menovateľ odstránite filter na karte NázovKategórieProduktov pomocou funkcie ALL(Stĺpec) a vypočítate súčet zostávajúcich riadkov v tabuľke ResellerSales_USD po použití existujúcich kontextových filtrov z označení riadkov. Čistým efektom je, že pre menovateľ sa súčet vypočíta v rámci vybratého roka (odvodený kontextový filter) a pre všetky hodnoty položky NázovKategórieProduktov.
Súvisiaci obsah
Funkcie Filtrovanie funkcieALL funkcieALLEXCEPTFILTER funkcie