Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Táto časť popisuje, ako vytvoriť filtre v rámci vzorcov DAX (Data Analysis Expressions). Môžete vytvoriť filtre vo vzorcoch a obmedziť hodnoty zo zdrojových údajov, ktoré sa používajú vo výpočtoch. Môžete to urobiť tak, že zadáte tabuľku ako vstup do vzorca a potom definujete výraz filtra. Výraz filtra, ktorý poskytnete, sa použije na dotaz údajov a vrátenie len podmnožiny zdrojových údajov. Filter sa dynamicky používa pri každej aktualizácii výsledkov vzorca v závislosti od aktuálneho kontextu údajov.

Obsah tohto článku

Creating a Filter on a Table used in a Formula

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

Predpokladajme napríklad, že máte tabuľku údajov, ktorá obsahuje informácie o objednávkach o predajcoch, a chcete vypočítať množstvo predaných predajcov. Chcete však zobraziť sumu predaja iba pre predajcov, ktorí predávali viaceré jednotky produktov s vyššou hodnotou. Nasledujúci vzorec na základe vzorového zošita DAX znázorňuje jeden príklad, ako môžete tento výpočet vytvoriť pomocou filtra:

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

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

  • V druhej časti vzorca sa zobrazuje FILTER(table, expression),, SUMX ktoré údaje použiť. SUMX vyžaduje tabuľku alebo výraz, ktorých výsledkom je tabuľka. V tomto prípade namiesto použitia všetkých údajov v tabuľke použijete funkciu FILTER na určenie riadkov z tabuľky, ktoré sa použijú.

    Výraz filtra má dve časti: prvá časť obsahuje názvy tabuľky, na ktorú sa filter vzťahuje. Druhá časť definuje výraz, ktorý sa má použiť ako podmienka filtra. V tomto prípade filtrujte predajcov, ktorí predávali viac než 5 jednotiek a produkty, ktoré stoja viac ako 100 $. Operátor ( && je logický operátor AND, ktorý označuje, že obidve časti podmienky musia byť pravdivé, aby riadok patrí do filtrovanej podmnožiny.

  • Tretia časť vzorca informuje funkčnú SUMX , ktoré hodnoty sa majú sčítať. V tomto prípade používate iba sumu predaja.

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

    Poznámka: Výraz filtra je ovplyvnený kontextom, v ktorom sa používa. Ak napríklad používate filter v miere a miera sa používa v kontingenčnej tabuľke alebo v kontingenčnej tabuľke kontingenčný graf, podmnožinu vrátených údajov môžu ovplyvniť ďalšie filtre alebo rýchle filtre, 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ňujte duplicity

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é, keď chcete spočítať počet jedinečných hodnôt v stĺpci alebo použiť zoznam jedinečných hodnôt v iných operáciách. DaX poskytuje dve funkcie na vrátenie odlišných hodnôt: DISTINCT (funkcia)a VALUES (funkcia).

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

  • Funkcia VALUES tiež vráti zoznam jedinečných hodnôt, ale tiež vráti neznámeho člena. Je to užitočné, keď používate hodnoty z dvoch tabuliek, ktoré sú spojené vzťahom, a hodnota v jednej tabuľke chýba 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. Funkcie preto použijete na získanie zoznamu hodnôt, ktoré sa potom odovzdané inej funkcii. 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ľúča Product Key a potom pomocou funkcie COUNTROWS spočítať produkty v tomto zozname:

=COUNTROWS(DISTINCT('ResellerSales_USD'[Kód ProductKey]))

Na začiatok stránky

Vplyv kontextu na filtre

Po pridaní vzorca DAX do kontingenčnej tabuľky alebo kontingenčný graf môže byť výsledok vzorca ovplyvnený kontextom. Ak pracujete s tabuľkou Power Pivot, kontext je aktuálny riadok a jeho hodnoty. Ak pracujete v kontingenčnej tabuľke alebo kontingenčný graf, kontext znamená množinu alebo podmnožinu údajov definovanú operáciami, ako je napríklad filtrovanie alebo filtrovanie. Návrh kontingenčnej tabuľky alebo tabuľky kontingenčný graf tiež ukladá vlastný kontext. Ak napríklad vytvoríte kontingenčnú tabuľku, ktorá zoskupí 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 miery, 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 miery.

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

Na začiatok stránky

Odstraňovanie filtrov

Pri práci so zložitými vzorcami by ste sa mali presne vedieť, čo sú aktuálne filtre, alebo upraviť časť filtra vzorca. DaX poskytuje niekoľko funkcií, ktoré vám umožňujú odstrániť filtre a ovládať, ktoré stĺpce sa zachovajú ako súčasť aktuálneho kontextu filtra. Táto časť poskytuje prehľad toho, ako tieto funkcie ovplyvňujú výsledky vo vzorci.

Prepísanie všetkých filtrov pomocou funkcie ALL

Funkciu ALL môžete použiť na prepísanie všetkých filtrov, ktoré sa predtým použili, a na vrátenie všetkých riadkov v tabuľke do funkcie, ktorá vykonáva agregačnú alebo inú operáciu. Ak ako argumenty pre tabuľku použijete jeden alebo viacero stĺpcov namiesto tabuľky, ALLfunkcia ALL vráti všetky riadky, pričom ignoruje všetky kontextové filtre.

Poznámka: Ak poznáte terminológiu relačnej databázy, môžete ju ALL napríklad pri vytváraní 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 všetkých produktov. Je potrebné vziať do úvahy skutočnosť, že ak sa vzorec používa v miere, používateľ kontingenčnej tabuľky môže pomocou rýchleho filtra filtrovať konkrétny produkt s názvom produktu v riadkoch. Ak teda chcete získať skutočnú hodnotu menovateľa bez ohľadu na filtre alebo rýchle filtre, je potrebné pridať funkciu ALL, aby sa prepísať všetky filtre. Nasledujúci vzorec je jedným z príkladov, ako použiť funkciu 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 zohľadňuje aktuálny kontext, čo znamená, že ak pridáte vzorec do vypočítaného stĺpca, použije sa kontext riadka a ak v rámci miery pridáte vzorec do kontingenčnej tabuľky, 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ľky.

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

Prepísanie konkrétnych filtrov pomocou funkcie ALLEXCEPT

Funkcia ALLEXCEPT tiež prepíše existujúce filtre, môžete však určiť, aby sa niektoré existujúce filtre zachovali. Stĺpce, ktoré pomenujte 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, allEXCEPT je pohodlnejší ako ALL. Funkcia ALLEXCEPT je užitočná najmä pri vytváraní kontingenčných tabuliek, ktoré môžu byť filtrované v mnohých rôznych stĺpcoch, a keď chcete ovládať hodnoty, ktoré sa vo vzorci používajú. Ďalšie informácie vrátane podrobného príkladu používania funkcie ALLEXCEPT v kontingenčnej tabuľke nájdete v téme FUNKCIA 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.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×