Filtrovanie údajov vo vzorcoch jazyka DAX

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako 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 dotazov a vrátite sa len podmnožinu zdrojové údaje. Filter sa použije dynamicky zakaždým, keď aktualizácie výsledky vzorcov, v závislosti od aktuálneho kontextu údajov.

Obsah tohto článku

Vytvorenie filtra v tabuľke použitej 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é používa tabuľku ako argument. SUMX vypočíta súčet pre tabuľku.

  • Druhá časť vzorca, FILTER(table, expression),povie SUMX , ktoré údaje sa majú použiť. 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 pozostáva z dvoch častí: prvá časť názvy tabuľky, na ktorú sa vzťahuje filter. V druhej časti 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é operátora AND, ktorá označuje, že 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 FILTER, ktoré vracajú tabuľku, nikdy tabuľku ani riadky nevrátia priamo, ale sú vždy vložené do inej funkcie. Ďalšie informácie o funkcii FILTER a iných funkciách používaných na filtrovanie vrátane ďalších príkladov nájdete v článku Funkcie filtrovania (DAX).

    Poznámka : Výraz filtra je ovplyvnený kontextom, v ktorom je použitý. Ak napríklad filter použijete v meraní a toto meranie je použité v kontingenčnej tabuľke alebo v kontingenčnom grafe, podmnožina údajov, ktorá sa vráti, môže byť ovplyvnená dodatočný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 na odstránenie duplicít

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

  • 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 aj 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ôžete 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é sú definované operácie, 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, ktorá sa zoskupia 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 filtre, pri výpočte vzorca, miera.

Ď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é ste predtým použili a vrátenie všetky riadky v tabuľke, do ktorého sa má vykonať operácie agregácie alebo iné funkcie. Ak chcete použiť jedného alebo viacerých stĺpcov, namiesto v tabuľke, ako argumenty 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ž prepisuje existujúce filtre, ale môžete určiť, aby boli niektoré existujúce filtre zachované. Stĺpce, ktoré nazvete argumentmi funkcie ALLEXCEPT, určujú, ktoré stĺpce sa budú aj naďalej filtrovať. Ak chcete prepísať filtre vo väčšine stĺpcov, ale nie vo všetkých, funkcia ALLEXCEPT je vhodnejšia ako funkcia ALL. Funkcia ALLEXCEPT je mimoriadne užitočná, keď vytvárate kontingenčné tabuľky, ktoré sa dajú filtrovať v mnohých rôznych stĺpcoch, a chcete kontrolovať hodnoty, ktoré sa vo vzorci používajú. Ďalšie informácie vrátane podrobného príkladu použitia funkcie ALLEXCEPT v kontingenčnej tabuľke nájdete v téme Funkcia ALLEXCEPT.

Na začiatok stránky

Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
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.

×