Filtrovanie údajov vo vzorcoch jazyka DAX

Poznámka:  Radi by sme vám čo najrýchlejšie poskytovali najaktuálnejší obsah Pomocníka vo vašom vlastnom jazyku. Táto stránka bola preložená automaticky a môže obsahovať gramatické chyby alebo nepresnosti. Naším cieľom je, aby bol tento obsah pre vás užitočný. Dali by ste nám v dolnej časti tejto stránky vedieť, či boli pre vás tieto informácie užitočné? Tu nájdete anglický článok pre jednoduchú referenciu.

Táto časť popisuje spôsob vytvárania filtrov vo vzorcoch Data Analysis Expressions (DAX). Môžete vytvoriť filtrov vo vzorcoch na obmedzenie hodnoty zo zdroja údajov, ktoré sa používajú vo výpočtoch. To urobíte špecifikovať tabuľky ako vstup pre vzorec, a potom definovať výrazu filtra. Výraz filtra predložíte sa používa na dotaz na údaje a vrátiť sa len podmnožinu zdrojové údaje. Filtra dynamicky zakaždým, keď aktualizácie výsledky vzorcov, v závislosti od aktuálneho kontextu údajov.

Obsah tohto článku

Vytvorenie filtra do tabuľky vo vzorci

Filtre na odstránenie duplicít

Vplyv kontextu na filtre

Odstránenie filtrov

Prepísanie všetkých filtrov použitím funkcie ALL

Prepísanie konkrétnych filtrov použitím funkcie ALLEXCEPT

Vytvorenie filtra v tabuľke použitej vo vzorci

Filtre môžete použiť vo vzorcoch, ktoré ako vstup používajú tabuľky. Namiesto zadanie názvu tabuľky použijete funkciu FILTER na definovanie podmnožiny riadkov z danej tabuľky. Táto podmnožina sa potom odovzdá do ďalšej funkcie, pre operácie ako napríklad vlastné agregácie.

Predpokladajme, že máte tabuľku údajov, ktorá obsahuje informácie o objednávkach predajcov, a chcete vypočítať, koľko každý predajca predal. Objem predaja však chcete ukázať iba tým predajcom, ktorí predali viac jednotiek vašich produktov s vyššou hodnotou. Nasledujúci vzorec, založený na vzorovom zošite vzorca DAX, ukazuje príklad, ako takýto výpočet vytvoriť 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 PowerPivot agregačných funkcií, ktoré má tabuľka ako argument. SUMX vypočíta súčet pre tabuľku.

  • Druhá časť vzorca, FILTER(table, expression),povie SUMX údajov na používanie. SUMX vyžaduje tabuľky alebo výraz, ktorý má za následok tabuľky. Tu, namiesto všetky údaje v tabuľke použijete funkciu FILTER môžete určiť, ktoré riadky z tabuľky sa používajú.

    Výraz filtra má dve časti: prvá časť názvy tabuľky, na ktorú sa vzťahuje filter. Druhá časť definuje výraz použiť ako podmienka filtra. V tomto prípade filtrujete predajcov, ktorý predal viac než 5 jednotky a produkty v cene viac ako 100. Operátor & &, je logickým operátorom AND, ktorá označuje, že v oboch častiach podmienku musia byť pravdivé pre riadok, do ktorej má patriť filtrované podmnožina.

  • Tretia časť vzorca hovorí funkcii SUMX , ktoré hodnoty sa majú sčítať. V tomto prípade používate iba výšku tržieb.

    Všimnite si, že funkcie, ako napríklad FILTER, ktorý vráti tabuľku, nikdy vrátiť tabuľku alebo riadky priamo, ale sú vždy vloženom do inej funkcie. Ďalšie informácie o FILTER a ďalšie funkcie, ktoré používajú na filtrovanie, vrátane ďalšie príklady, pozrite si tému Funkcie filtrovania (DAX).

    Poznámka: Výraz filtra závisí od kontextu, v ktorom sa používa. Ak používate filter opatrenie a opatrenie použije v zostave kontingenčnej tabuľky alebo kontingenčného grafu, podmnožiny údajov, ktorý vráti môže mať vplyv ďalšie filtre alebo rýchle filtre, ktoré používateľ použité v kontingenčnej tabuľke. Ďalšie informácie o kontexte, prečítajte si tému kontext vo vzorcoch DAX.

Filtre na odstránenie duplicít

Okrem filtrovanie určitých hodnôt, sa môžete vrátiť jedinečnú množinu hodnôt z inej tabuľky alebo stĺpca. To môže byť užitočné, ak chcete spočítať počet jedinečných hodnôt v stĺpci, alebo použite zoznam jedinečných hodnôt pre ďalšie operácie. Jazyk DAX poskytuje dvoch funkcií na vrátenie rôzne hodnoty: rôzne funkcie a funkcie hodnoty.

  • Funkcia DISTINCT preskúma jeden stĺpec, ktorý ste určili za argument funkcie, a vráti nový stĺpec obsahujúci len rôzne hodnoty.

  • Funkcia VALUES tiež vráti zoznam s jedinečnými hodnotami, ale tiež vráti neznámeho člena. Toto je užitočné pri používaní hodnôt z dvoch tabuliek, ktoré sú spojené vzťahu a hodnota je chýbajúce v jednej tabuľke a prezentovať v ostatných. Ďalšie informácie o neznámeho člena, prečítajte si tému kontext vo vzorcoch DAX.

Obe tieto funkcie vrátia celý stĺpec hodnôt. Tieto funkcie teda používate, aby ste získali zoznam hodnôt, ktorý sa potom odovzdá do ďalšej funkcie. Nasledujúci vzorec môžete napríklad použiť, ak chcete získať zoznam rôznych produktov predávaných určitým predajcom. Môžete tak urobiť použitím jedinečného kódu Product Key. Potom môžete produkty v zozname spočítať pomocou funkcie COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Na začiatok stránky

Vplyv kontextu na filtre

Keď pridáte vzorci DAX do kontingenčnej tabuľky alebo kontingenčného grafu, výsledok vzorca môže vplyv kontextu. Ak pracujete v tabuľke PowerPivot, kontext je aktuálny riadok a jeho hodnoty. Ak pracujete v zostave kontingenčnej tabuľky alebo kontingenčného grafu, kontexte znamená, že súbor alebo podmnožinu údajov, ktorá je definovaná operácie, ako napríklad rezanie alebo filtrovania. Návrh kontingenčnej tabuľky alebo kontingenčného grafu ukladá aj svoj vlastný kontext. Napríklad, ak ste vytvorili kontingenčnú tabuľku, že skupiny predaja podľa metrík region a rok, iba údaje, ktoré sa týka týchto oblastí a roky sa zobrazí v kontingenčnej tabuľke. Preto sú vypočítané miery, ktoré pridáte do kontingenčnej tabuľky v kontexte nadpisy stĺpcov a riadkov plus žiadne filtre vo vzorci mieru.

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

Na začiatok stránky

Odstránenie filtrov

Pri práci so zložitými vzorcami chcete možno presne vedieť, aké sú aktuálne filtre, alebo môžete chcieť upraviť filtrovaciu časť vzorca. Vzorec DAX poskytuje niekoľko funkcií, ktoré umožňujú odstrániť filtre a kontrolovať, ktoré stĺpce sú uchované ako časť aktuálneho kontextu filtra. Táto časť vám poskytne prehľad o tom, ako tieto funkcie vo vzorci ovplyvňujú výsledky.

Prepísanie všetkých filtrov použitím funkcie ALL

Môžete použiť funkciu ALL na prepísanie filtre, ktoré už boli použité, a vrátiť všetky riadky v tabuľke funkcia, ktorá vykonáva operácie agregácie alebo iné. Ak chcete použiť jedného alebo viacerých stĺpcov, namiesto v tabuľke, ako argumenty pre ALL, funkcia ALL vráti všetky riadky, ignorovať všetky kontextové filtre.

Poznámka: Ak je vám známa terminológia relačnej databázy, môžete funkciu ALL vnímať tak, že generuje prirodzené vonkajšie spojenie zľava všetkých tabuliek.

Predpokladajme napríklad, že máte tabuľky Tržby a Produkty a chcete vytvoriť vzorec, ktorý vypočíta súčet tržieb za aktuálny produkt vydelený tržbami za všetky produkty. Musíte vziať do úvahy, že ak sa vzorec použije v meraní, používateľ kontingenčnej tabuľky môže používať rýchle filtre na filtrovanie určitého produktu s názvom produktu v riadkoch. Ak teda chcete získať pravú hodnotu menovateľa bez ohľadu na všetky filtre alebo rýchle filtre, musíte pridať funkciu ALL, aby prepísala 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(Products)))

  • Prvá časť vzorca, SUM (tržby[výška]), vypočíta čitateľa.

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

  • Druhá časť vzorec vypočíta menovateľ. Funkcia ALL prepíše filtre, ktoré môžete použiť pre Products tabuľky.

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

Prepísanie konkrétnych filtrov použitím funkcie ALLEXCEPT

Funkcia ALLEXCEPT tiež prepíše existujúce filtre, ale môžete určiť, či niektoré existujúce filtre by mali byť zachované. Stĺpce, aby ste meno ako argumenty funkcie ALLEXCEPT zadajte stĺpce, ktoré budú filtrovať. Ak chcete prepísať filtre z väčšina stĺpcov, ale nie všetky, ALLEXCEPT je pohodlnejšie ako všetky. Funkcia ALLEXCEPT je užitočné najmä pri vytváraní kontingenčné tabuľky, ktoré možno filtrovať na mnoho rôznych stĺpcov a chcete určiť hodnoty, ktoré sú použité vo vzorci. Ďalšie informácie vrátane podrobných príklad, ako používať ALLEXCEPT v kontingenčnej tabuľke, pozrite si tému Funkcie ALLEXCEPT.

Na začiatok stránky

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

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

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×