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ť.

Kontext umožňuje vykonávať dynamickú analýzu, v ktorej sa výsledky vzorca môžu zmeniť tak, aby odrážali aktuálny riadok alebo výber buniek, ako aj všetky súvisiace údaje. Efektívne pochopenie kontextu a kontextu je veľmi dôležité na vytváranie výkonných vzorcov, dynamických analýz a riešenie problémov vo vzorcoch.

Táto časť definuje rôzne typy kontextu: kontext riadka, kontext dotazu a kontext filtra. Vysvetľuje, ako sa kontext vyhodnocuje pre vzorce vo vypočítavaných stĺpcoch a v kontingenčných tabuľkách.

Posledná časť tohto článku obsahuje prepojenia na podrobné príklady, ktoré znázorňujú zmenu výsledkov vzorcov podľa kontextu.

Vysvetlenie kontextu

Na vzorce Power Pivot to môžu ovplyvniť filtre použité v kontingenčnej tabuľke, vzťahy medzi tabuľkami a filtre použité vo vzorcoch. Kontext umožňuje vykonávať dynamickú analýzu. Pochopenie kontextu je dôležité na vytváranie vzorcov a riešenie problémov so vzorcami.

Existujú rôzne typy kontextu: kontext riadka, kontext dotazu a kontext filtra.

Kontext riadka môže byť "aktuálny riadok". Ak ste vytvorili vypočítaný stĺpec, kontext riadka pozostáva z hodnôt v každom riadku a hodnôt v stĺpcoch, ktoré súvisia s aktuálnym riadkom. K dispozícii sú aj niektoré funkcie(EARLIER a EARLIEST),ktoré získať hodnotu z aktuálneho riadka a potom túto hodnotu používajú pri vykonávaní operácie nad celú tabuľku.

Kontext dotazu odkazuje na podmnožinu údajov, ktorá je implicitne vytvorená pre každú bunku v kontingenčnej tabuľke v závislosti od hlavičiek riadkov a stĺpcov.

Kontext filtra je množina hodnôt povolených v každom stĺpci na základe obmedzení filtrov stanovených v riadku alebo definovaných výrazmi filtra vo vzorci.

Na začiatok stránky

Kontext riadka

Ak vytvoríte vzorec vo vypočítanej stĺpci, kontext riadka tohto vzorca bude počítať s hodnotami zo všetkých stĺpcov v aktuálnom riadku. Ak tabuľka súvisí s inou tabuľkou, obsah obsahuje aj všetky hodnoty z tejto inej tabuľky, ktoré súvisia s aktuálnym riadkom.

Predpokladajme napríklad, že vytvoríte vypočítaný stĺpec =[Dopravné] + [Daň],

, ktoré sčíta dva stĺpce z tej istej tabuľky. Tento vzorec sa správa ako vzorce v Excel, ktorá automaticky odkazuje na hodnoty z toho istého riadka. Všimnite si, že tabuľky sa líšia od rozsahov: pomocou notácie rozsahu nemôžete odkazovať na hodnotu z riadka pred aktuálnym riadkom a nemôžete odkazovať na ľubovoľnú jednotlivú hodnotu v tabuľke alebo bunke. S tabuľkami a stĺpcami musíte pracovať vždy.

Kontext riadka automaticky nasleduje vzťahy medzi tabuľkami a určuje, ktoré riadky v súvisiacich tabuľkách sú priradené k aktuálnemu riadku.

Nasledujúci vzorec napríklad používa funkciu RELATED na načítanie hodnoty dane zo súvisiacej tabuľky na základe oblasti, do ktorú bola objednávka odoslaná. Hodnota dane sa určuje na základe hodnoty oblasti v aktuálnej tabuľke, vyhľadanej oblasti v súvisiacej tabuľke a následne sa sadzba dane pre túto oblasť bude nachádzať v súvisiacej tabuľke.

= [Dopravné] + RELATED('Oblasť'[TaxRate])

Tento vzorec jednoducho získa sadzbu dane pre aktuálnu oblasť z tabuľky Oblasť. Nie je potrebné poznať ani zadať kľúč, ktorý spája tabuľky.

Kontext viacerých riadkov

Okrem toho daX obsahuje funkcie, ktoré iterujú výpočty v tabuľke. Tieto funkcie môžu mať viacero aktuálnych riadkov a kontext aktuálnych riadkov. V programovacích pojmoch môžete vytvoriť vzorce, ktoré sa opakuje cez vnútorné a vonkajšie slučky.

Predpokladajme napríklad, že zošit obsahuje tabuľku Produkty a tabuľku Predaj. Možno budete chcieť prejsť cez celú tabuľku predaja, ktorá je plná transakcií v prípade viacerých produktov, a zistiť najväčšie objednané množstvo pre každý produkt v ľubovoľnej jednej transakcii.

V Excel výpočet vyžaduje sériu medzisúhrtov, ktoré sa v prípade zmeny údajov musia znova zostaviť. Ak ste power user of Excel, môžete vytvoriť vzorce poľa, ktoré by túto úlohu chceli robiť. Prípadne môžete v relačnej databáze napísať vnorené podvýbery.

Pri použití vzorca daX však môžete vytvoriť jeden vzorec, ktorý vráti správnu hodnotu, a výsledky sa automaticky aktualizujú vždy, keď do tabuliek pridáte údaje.

=MAXX(FILTER(Predaj;[Kľúč Prod]=EARLIER([Kľúč Prod]));Predaj[Počet Objednávok])

Podrobný návod pre tento vzorec nájdete v časti PREDCHÁDZAJÚCE.

Skratka: Funkcia EARLIER uloží kontext riadka od operácie, ktorá predchádza aktuálnej operácii. Funkcia vždy ukladá do pamäte dve množiny kontextu: jedna množina kontextu predstavuje aktuálny riadok pre vnútornú slučku vzorca a ďalšia množina kontextu predstavuje aktuálny riadok vonkajšieho slučky vzorca. DaX automaticky vloží hodnoty medzi tieto dve slučky, aby ste mohli vytvoriť komplexné agregačné hodnoty.

Na začiatok stránky

Kontext dotazu

Kontext dotazu odkazuje na podmnožinu údajov, ktoré sa implicitne načítajú pre vzorec. Keď v kontingenčnej tabuľke zmieníte mieru alebo iné pole hodnoty do bunky, nástroj Power Pivot preskúma hlavičky riadkov a stĺpcov, rýchle filtre a filtre zostáv a určí kontext. Potom Power Pivot potrebné výpočty na vyplnenie jednotlivých buniek v kontingenčnej tabuľke. Množina načítaných údajov je kontext dotazu pre každú bunku.

Keďže kontext sa môže meniť v závislosti od miesta, kam vzorec umiestnite, výsledky vzorca sa menia aj v závislosti od toho, či používate vzorec v kontingenčnej tabuľke s mnohými zoskupeniami a filtrami alebo vo vypočítanom stĺpci bez filtrov a minimálnym kontextom.

Predpokladajme napríklad, že vytvoríte tento jednoduchý vzorec, ktorý sčíta hodnoty v stĺpci Zisk v tabuľke Predaj:=SUM('Predaj'[Zisk]).

Ak použijete tento vzorec vo vypočítanej stĺpci v rámci tabuľky Predaj, výsledky pre vzorec budú rovnaké pre celú tabuľku, pretože kontext dotazu pre vzorec je vždy celá množina údajov tabuľky Predaj. Vaše výsledky budú mať zisk pre všetky oblasti, všetky produkty, celé roky a tak ďalej.

Zvyčajne však nechcete vidieť rovnaké výsledky stoviek času, ale chcete získať zisk za konkrétny rok, konkrétnu krajinu alebo oblasť, konkrétny produkt alebo inú kombináciu týchto produktov a potom získať celkový súčet.

V kontingenčnej tabuľke môžete kontext jednoducho zmeniť pridaním alebo odstránením hlavičiek stĺpcov a riadkov a pridaním alebo odstránením rýchlych filtrov. Môžete vytvoriť vzorec, ako je ten vyššie uvedený, v miere a potom ho pustite do kontingenčnej tabuľky. Vždy, keď do kontingenčnej tabuľky pridáte záhlavia stĺpcov alebo riadkov, zmeníte kontext dotazu, v ktorom sa miera vyhodnotí. Operácie s licingom a filtrovaním ovplyvňujú aj kontext. Preto sa ten istý vzorec, ktorý sa používa v kontingenčnej tabuľke, vyhodnocuje v inom kontexte dotazu pre každú bunku.

Na začiatok stránky

Kontext filtra

Kontext filtra sa pridá, keď špecifikujete obmedzenia filtra pre množinu hodnôt, ktoré sú povolené v stĺpci alebo tabuľke, a to pomocou argumentov vo vzorci. Kontext filtra sa používa v hornej časti iných kontextov, ako je napríklad kontext riadka alebo kontext dotazu.

Kontingenčná tabuľka napríklad vypočíta hodnoty pre každú bunku na základe záhlaví riadkov a stĺpcov, ako je to popísané v predchádzajúcej časti v kontexte dotazu. V rámci opatrení alebo vypočítaných stĺpcov, ktoré pridáte do kontingenčnej tabuľky, však môžete zadať výrazy filtra na ovládanie hodnôt, ktoré vzorec používa. Filtre môžete selektívne vymazať aj v konkrétnych stĺpcoch.

Ďalšie informácie o vytváraní filtrov v rámci vzorcov nájdete v téme Funkcie filtrovania.

Príklad, ako možno vymazať filtre na vytváranie celkových sčít, nájdete v časti VŠETKY.

Príklady selektívneho vymazania a použitia filtrov vo vzorcoch nájdete v téme Funkcia ALLEXCEPT.

Preto je potrebné skontrolovať definíciu opatrení alebo vzorcov použitých v kontingenčnej tabuľke, aby ste pri interpretovaní výsledkov vzorcov vedeli o kontexte filtra.

Na začiatok stránky

Určenie kontextu vo vzorcoch

Keď vytvoríte vzorec, Power Pivot pre Excel najprv skontroluje všeobecnú syntax a potom skontroluje názvy stĺpcov a tabuliek, ktoré poskytnete vzhľadom na možné stĺpce a tabuľky v aktuálnom kontexte. Ak Power Pivot stĺpce a tabuľky zadané vzorcom, zobrazí sa chyba.

Kontext sa určuje podľa popisu v predchádzajúcich častiach pomocou dostupných tabuliek v zošite, všetkých vzťahoch medzi tabuľkami a použitými filtrami.

Ak ste napríklad práve importli niektoré údaje do novej tabuľky a použili žiadne filtre, celá množina stĺpcov v tabuľke je súčasťou aktuálneho kontextu. Ak máte viacero tabuliek prepojených vzťahmi a pracujete v kontingenčnej tabuľke, ktorá bola vyfiltrovaná pridaním záhlaví stĺpcov a použitím rýchlych filtrov, kontext obsahuje súvisiace tabuľky a všetky filtre údajov.

Kontext je výkonný koncept, ktorý môže tiež sťažiť riešenie problémov so vzorcami. Odporúčame vám začať s jednoduchými vzorcami a vzťahmi, aby ste videli, ako kontext funguje, a potom začať experimentovať s jednoduchými vzorcami v kontingenčných tabuľkách. Nasledujúca časť obsahuje aj niekoľko príkladov toho, ako vzorce používajú rôzne typy kontextu na dynamické vrátenie výsledkov.

Príklady kontextu vo vzorcoch

  • Pomocou funkcie RELATED sa rozbalí kontext aktuálneho riadka tak, aby zahŕňal hodnoty v súvisiacom stĺpci. Toto vám umožní vykonávať vyhľadávania. Príklad v tejto téme znázorňuje interakciu filtrovania a kontext riadka.

  • Funkcia FILTER umožňuje zadať riadky, ktoré sa majú zahrnúť do aktuálneho kontextu. Príklady v tejto téme ukazujú aj to, ako vložiť filtre do iných funkcií, ktoré vykonávajú agregačné funkcie.

  • Funkcia ALL nastaví kontext vo vzorci. Môžete ju použiť na prepísanie filtrov, ktoré sa použijú v dôsledku kontextu dotazu.

  • Funkcia ALLEXCEPT umožňuje odstrániť všetky filtre okrem jedného, ktorý zadáte. Obe témy obsahujú príklady, ktoré vás prechádzajú vytváranie vzorcov a pochopenie zložitých kontextov.

  • Funkcie EARLIER a EARLIEST umožňujú cyklicky opakovať tabuľky vykonaním výpočtov, pričom odkazujú na hodnotu z vnútorného slučky. Ak poznáte koncept recurie a vnútorné a vonkajšie slučky, určite oceníte silu, ktorú poskytujú funkcie EARLIER a EARLIEST. Ak tieto koncepty nemáte, mali by ste postupovať podľa krokov v príklade dôkladne, aby ste videli, ako sa vo výpočtoch používajú vnútorné a vonkajšie kontexty.

Na začiatok stránky

Referenčná integrita

Táto časť popisuje niektoré pokročilé koncepty súvisiace s chýbajúcimi hodnotami v Power Pivot, ktoré sú prepojené vzťahmi. Táto časť môže byť pre vás užitočná, ak máte zošity s viacerými tabuľkami a zložitými vzorcami a chcete pomôcť pri pochopení výsledkov.

Ak ešte len nemáte prehľad o konceptoch relálnych údajov, odporúčame vám prečítať si najprv úvodnú tému Prehľad vzťahov.

Referenčná integrita a vzťahy Power Pivot údajov

Power Pivot na definovanie platného vzťahu sa nemusí zabezpečiť referenčná integrita medzi dvomi tabuľkami. Namiesto toho sa vytvorí prázdny riadok na konci "one" každého vzťahu "one-to-many" a použije sa na spracovanie všetkých nesuslužných riadkov zo súvisiacej tabuľky. Efektívne sa správa ako SQL vonkajšie spojenie.

Ak v kontingenčných tabuľkách zoskupíte údaje podľa jednej strany vzťahu, všetky nedorovnané údaje na strane "many" tohto vzťahu sa zoskupia a sčítané údaje sa zahrnú do záhlavia prázdneho riadka. Prázdny nadpis sa približne rovná "neznámemu členu".

Informácie o neznámom členoch

Koncepcia neznámeho člena je pravdepodobne známa, ak ste pracovali s viacrozmerných databázových systémov, ako sú napríklad služby SQL Server Analysis Services. Ak s výrazom nemáte problém, v nasledujúcom príklade je vysvetlené, čo je neznámy člen a ako to ovplyvňuje výpočty.

Predpokladajme, že vytvárate výpočet, ktorý sčíta mesačný predaj pre každý obchod, ale v stĺpci v tabuľke Predaj chýba hodnota názvu obchodu. Vzhľadom na to, že tabuľky Pre Obchod a Predaj sú prepojené podľa názvu obchodu, čo by ste očakávali vo vzorci? Ako by mala skupina kontingenčnej tabuľky zobraziť údaje o predaji, ktoré súvisia s existujúcim obchodom?

Tento problém je bežný v skladoch údajov, kde veľké tabuľky s údajmi faktov musia logicky súvisieť s tabuľkami dimenzií, ktoré obsahujú informácie o obchodoch, oblastiach a iných atribútoch, ktoré sa používajú na kategorizáciu a výpočet faktov. Na vyriešenie problému sa všetky nové fakty, ktoré nesúvisia s existujúcou entitou, dočasne priradia neznámemu členu. To je dôvod, prečo sa nesúvisiace fakty zobrazia zoskupené v kontingenčnej tabuľke pod prázdnym nadpisom.

Spracovanie prázdnych hodnôt verzus prázdneho riadka

Prázdne hodnoty sa líšia od prázdnych riadkov pridaných pre neznámeho člena. Prázdna hodnota je špeciálna hodnota, ktorá sa používa na reprezentovanie hodnôt null, prázdnych reťazcov a iných chýbajúcich hodnôt. Ďalšie informácie o prázdnej hodnote, ako aj iných typoch údajov DAX, nájdete v téme Typy údajov v dátových modeloch.

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!

×