Applies ToExcel pre Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

Táto časť popisuje, ako vytvárať filtre vo vzorcoch jazyka DAX (Data Analysis Expressions). Môžete vytvárať filtre vo vzorcoch, čím obmedzíte hodnoty zo zdrojových údajov, ktoré sa používajú vo výpočtoch. Urobíte to tak, že zadáte tabuľku ako vstup do vzorca a potom definujete výraz filtra. Zadaný výraz filtra sa používa na dotazovanie údajov a vrátenie iba podmnožiny zdrojových údajov. Filter sa použije dynamicky pri každej aktualizácii výsledkov vzorca v závislosti od aktuálneho kontextu údajov.

Obsah tohto článku

Vytvorenie filtra v tabuľke použitej vo vzorci

Vo vzorcoch, ktoré používajú tabuľku ako vstup, môžete použiť filtre. Namiesto zadávania názvu tabuľky použite funkciu FILTER na definovanie podmnožiny riadkov zo zadanej tabuľky. Táto podmnožina sa potom odovzdá inej funkcii pre operácie, ako sú napríklad vlastné agregácie.

Predpokladajme napríklad, že máte tabuľku údajov, ktorá obsahuje informácie o objednávke o predajcoch, a chcete vypočítať, koľko jednotlivých predajcov sa predalo. Chcete však zobraziť čiastku predaja len pre tých predajcov, ktorí predali viac jednotiek produktov s vyššou hodnotou. Nasledujúci vzorec na základe vzorového zošita DAX zobrazuje jeden príklad toho, ako môžete vytvoriť tento výpočet pomocou filtra:

=SUMX(      FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Množstvo] > 5 &&      'ResellerSales_USD'[ProductStandardCost_USD] > 100),      'ResellerSales_USD'[SalesAmt]      )

  • Prvá časť vzorca určuje jednu z Power Pivot agregačných funkcií, ktorá vezme tabuľku ako argument. Funkcia SUMX vypočíta súčet v tabuľke.

  • Druhá časť vzorca FILTER(table, expression),SUMX určuje, ktoré údaje sa majú použiť. SUMX vyžaduje tabuľku alebo výraz, ktorý má za následok tabuľku. Tu namiesto použitia všetkých údajov v tabuľke môžete pomocou funkcie FILTER určiť, ktoré riadky z tabuľky sa použijú.

    Výraz filtra má dve časti: prvá časť pomenuje tabuľku, na ktorú sa filter vzťahuje. Druhá časť definuje výraz, ktorý sa má použiť ako podmienka filtra. V tomto prípade filtrujete predajcov, ktorí predali viac ako 5 jednotiek a produktov, ktoré stoja viac ako 100 EUR. Operátor && je logický operátor AND, ktorý označuje, že obidve časti podmienky musia byť pravdivé, aby riadok patril do filtrovanej podmnožiny.

  • Tretia časť vzorca určuje funkcii SUMX , ktoré hodnoty sa majú sčítať. V tomto prípade používate len čiastku predaja.

    Všimnite si, že funkcie ako FILTER, ktoré vracajú tabuľku, nikdy nevracajú tabuľku alebo riadky priamo, ale vždy sú vložené do inej funkcie. Ďalšie informácie o funkcii FILTER a ďalších funkciách používaných na filtrovanie vrátane ďalších príkladov nájdete v téme Funkcie filtrovania (DAX).

    Poznámka: Výraz filtra je ovplyvnený kontextom, v ktorom sa používa. Ak napríklad použijete filter v mierke a mierka sa použije v kontingenčnej tabuľke alebo kontingenčnom grafe, vrátená podmnožina údajov môže byť ovplyvnená ďalšími filtrami alebo rýchlymi filtrami, ktoré používateľ použil v kontingenčnej tabuľke. Ďalšie informácie o kontexte nájdete v téme Kontext vo vzorcoch DAX.

Filtre, ktoré odstraňujú duplicitné položky

Okrem filtrovania konkrétnych hodnôt môžete vrátiť aj jedinečnú množinu hodnôt z inej tabuľky alebo stĺpca. Môže to byť užitočné, ak chcete spočítať počet jedinečných hodnôt v stĺpci alebo použiť zoznam jedinečných hodnôt pre iné operácie. Jazyk DAX poskytuje dve funkcie na vrátenie jedinečných hodnôt: funkciu DISTINCT a funkciu VALUES.

  • Funkcia DISTINCT preskúma jeden stĺpec, ktorý zadáte ako argument funkcie, a vráti nový stĺpec, ktorý obsahuje iba jedinečné hodnoty.

  • Funkcia VALUES vráti aj zoznam jedinečných hodnôt, ale vráti aj neznámy člen. Je to užitočné, ak používate hodnoty z dvoch tabuliek, ktoré sú spojené vzťahom, a hodnota chýba v jednej tabuľke a nachádza sa v druhej. Ďalšie informácie o neznámom členovi nájdete v téme Kontext vo vzorcoch DAX.

Obe tieto funkcie vrátia celý stĺpec hodnôt. preto použijete funkcie na získanie zoznamu hodnôt, ktoré sa potom odovzdať do inej funkcie. Pomocou nasledujúceho vzorca môžete napríklad získať zoznam jedinečných produktov predávaných konkrétnym predajcom pomocou jedinečného kódu Product Key a potom spočítať produkty v tomto zozname pomocou funkcie COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[KódProduktu]))

Na začiatok stránky

Ako kontext ovplyvňuje filtre

Keď do kontingenčnej tabuľky alebo kontingenčného grafu pridáte vzorec DAX, výsledky vzorca môžu byť ovplyvnené kontextom. Ak pracujete v Power Pivot tabuľke, kontext je aktuálny riadok a jeho hodnoty. Ak pracujete v kontingenčnej tabuľke alebo kontingenčnom grafe, kontext znamená množinu alebo podmnožinu údajov definovanú operáciami, ako je napríklad krájanie alebo filtrovanie. Návrh kontingenčnej tabuľky alebo kontingenčného grafu si vyžaduje aj vlastný kontext. Ak napríklad vytvoríte kontingenčnú tabuľku, ktorá zoskupuje predaj podľa oblasti a roka, v kontingenčnej tabuľke sa zobrazia len údaje, ktoré sa vzťahujú na tieto oblasti a roky. Všetky mierky, ktoré pridáte do kontingenčnej tabuľky, sa preto vypočítavajú v kontexte záhlaví stĺpcov a riadkov a všetkých filtrov vo vzorci mierky.

Ďalšie informácie nájdete v téme Kontext vo vzorcoch DAX.

Na začiatok stránky

Odstraňujú sa filtre

Pri práci so zložitými vzorcami možno budete chcieť presne zistiť, aké sú aktuálne filtre, alebo možno budete chcieť upraviť časť filtra vzorca. Jazyk DAX poskytuje niekoľko funkcií, ktoré vám umožňujú odstrániť filtre a určiť, ktoré stĺpce sa zachovajú ako súčasť aktuálneho kontextu filtra. V tejto časti nájdete prehľad o tom, ako tieto funkcie ovplyvňujú výsledky vo vzorci.

Prepísanie všetkých filtrov funkciou ALL

Pomocou funkcie ALL môžete prepísať všetky predtým použité filtre a vrátiť všetky riadky v tabuľke funkcii, ktorá vykonáva agregáciu alebo inú operáciu. Ak namiesto tabuľky použijete jeden alebo viacero stĺpcov ako argumenty na ALL, funkcia ALL vráti všetky riadky, pričom sa neberú do úvahy kontextové filtre.

Poznámka: Ak poznáte terminológiu relačnej databázy, môžete si ALL predstaviť ako generovanie prirodzeného vonkajšieho spojenia všetkých tabuliek zľava.

Predpokladajme napríklad, že máte tabuľky Predaj a produkty a chcete vytvoriť vzorec, ktorý vypočíta súčet predaja pre aktuálny produkt vydelený predajom pre všetky produkty. Musíte vziať do úvahy skutočnosť, že ak sa vzorec používa v mierke, používateľ kontingenčnej tabuľky možno používa rýchly filter na filtrovanie konkrétneho produktu s názvom produktu v riadkoch. Ak chcete získať skutočnú hodnotu menovateľa bez ohľadu na filtre alebo rýchle filtre, musíte pridať funkciu ALL, aby ste prepísali všetky filtre. Nasledujúci vzorec je jedným z príkladov použitia funkcie ALL na prepísanie efektov predchádzajúcich filtrov:

=SUM (Predaj[Suma])/SUMX(Predaj[Suma],FILTER(Predaj; ALL(Produkty)))

  • Prvá časť vzorca SUM (Predaj[Suma]) vypočíta čitateľa.

  • Súčet berie do úvahy aktuálny kontext, čo znamená, že ak pridáte vzorec do vypočítaného stĺpca, použije sa kontext riadka a ak vzorec pridáte do kontingenčnej tabuľky ako mierku, použijú sa všetky filtre použité v kontingenčnej tabuľke (kontext filtra).

  • Druhá časť vzorca vypočíta menovateľa. Funkcia ALL prepíše všetky filtre, ktoré sa môžu použiť na Products tabuľku.

Ďalšie informácie vrátane podrobných príkladov nájdete v téme FUNKCIA ALL.

Prepísanie špecifických filtrov funkciou ALLEXCEPT

Funkcia ALLEXCEPT prepíše aj existujúce filtre, ale môžete určiť, že niektoré existujúce filtre sa majú zachovať. Stĺpce, ktoré pomenujete ako argumenty funkcie ALLEXCEPT, určujú, ktoré stĺpce sa budú naďalej filtrovať. Ak chcete prepísať filtre z väčšiny stĺpcov, ale nie zo všetkých, funkcia ALLEXCEPT je pohodlnejšia než ALL. Funkcia ALLEXCEPT je užitočná najmä pri vytváraní kontingenčných tabuliek, ktoré môžu byť filtrované podľa mnohých rôznych stĺpcov, a chcete ovládať hodnoty, ktoré sa používajú vo vzorci. Ďalšie informácie vrátane podrobného príkladu používania funkcie ALLEXCEPT v kontingenčnej tabuľke nájdete vo funkcii ALLEXCEPT.

Na začiatok stránky

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.