ALLNOBLANKROW
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuálového výpočtu
Z nadradenej tabuľky vzťahu vráti všetky riadky okrem prázdneho riadka alebo všetky odlišné hodnoty stĺpca, okrem prázdneho riadka, a nezohľadňuje žiadne kontextové filtre, ktoré môžu existovať.
Syntax
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Parametre
Termín | Definícia |
---|---|
table |
Tabuľka, pre ktorú sa odstránia všetky kontextové filtre. |
column |
Stĺpec, pre ktorý sa odstránia všetky kontextové filtre. |
Musí sa odovzdať iba jeden parameter. parameter je buď tabuľka, alebo stĺpec.
Vrátená hodnota
Tabuľka, v prípade, že odoslaný parameter bol tabuľkou alebo stĺpcom hodnôt, keď odoslaný parameter bol stĺpec.
Poznámky
Funkcia ALLNOBLANKROW filtruje iba prázdny riadok, ktorý sa zobrazí v nadradenej tabuľke vo vzťahu, keď v podradenej tabuľke existuje jeden alebo viac riadkov, ktoré majú nezhodné hodnoty s nadradeným stĺpcom. Podrobné vysvetlenie nájdete v príklade nižšie.
V nasledujúcej tabuľke sú zhrnuté variácie
ALL
, ktoré sú uvedené v DAX, a ich rozdiely:Funkcia a použitie Popis ALL(Column)
Odstráni všetky filtre zo zadaného stĺpca v tabuľke; stále však budú použité všetky ostatné filtre v tabuľke, v ostatných stĺpcoch. ALL(Table)
Odstráni všetky filtre zo zadanej tabuľky. ALLEXCEPT(Table,Col1,Col2...)
Prepíše všetky kontextové filtre v tabuľke okrem zadaných stĺpcov. ALLNOBLANK(table|column)
Z nadradenej tabuľky vzťahu vráti všetky riadky okrem prázdneho riadka alebo všetky odlišné hodnoty stĺpca okrem prázdneho riadka a nezohľadňuje žiadne kontextové filtre, ktoré môžu existovať. Všeobecný popis spôsobu fungovania funkcie ALL spolu s postupnými príkladmi, ktoré sa používajú ALL(tabuľka) a ALL(stĺpec), nájdete v téme funkcia ALL.
Táto funkcia nie je podporovaná na použitie v režime DirectQuery, keď sa používa vo vypočítaných stĺpcoch alebo v pravidlách zabezpečenia na úrovni riadkov (RLS).
Príklad
Vo vzorových údajoch tabuľka ResellerSales_USD obsahuje jeden riadok, ktorý nemá žiadne hodnoty, a preto nemôže súvisieť so žiadnou z nadradených tabuliek, s ktorými je vo vzťahu v rámci zošita. Túto tabuľku použijete v kontingenčnej tabuľke, aby ste mohli vidieť správanie sa prázdneho riadka a spôsob narábania s počtami nesúvisiacich údajov.
Krok č. 1: Overenie nesúvisiacich údajov
Otvorte okno doplnku Power Pivota potom vyberte tabuľku ResellerSales_USD. V stĺpci ProductKey vykonajte filtrovanie pre prázdne hodnoty. Ostane jeden riadok. V tomto riadku by mali byť všetky hodnoty stĺpca prázdne, okrem SalesOrderLineNumber.
Krok č. 2: Vytvorenie kontingenčnej tabuľky
Vytvorte novú kontingenčnú tabuľku a potom presuňte stĺpec Datetime. [Kalendárny rok] na tablu Označenie riadkov. V nasledujúcej tabuľke sú uvedené očakávané výsledky:
Označenia riadkov |
---|
2005 |
2006 |
2007 |
2008 |
Celkový súčet |
Všimnite si prázdne označenie medzi
Keď sa v kontingenčnej tabuľke zobrazí toto prázdne označenie, viete, že v niektorých tabuľkách, ktoré súvisia so stĺpcom datetime. [Kalendárny rok] existujú buď prázdne hodnoty, alebo nezodpovedaujúce hodnoty. Nadradená tabuľka je tá, ktorá zobrazuje prázdne označenie, ale riadky, ktoré sa nezhodujú, sa nachádzajú v jednej alebo viacerých podradených tabuľkách.
Riadky, ktoré sa pridajú do tejto prázdnej skupiny označení, sú buď hodnoty, ktoré nezodpovedajú žiadnej hodnote v nadradenej tabuľke, napríklad dátum, ktorý neexistuje v tabuľke datetime alebo hodnoty null, čo znamená, že pre dátum nie je k dispozícii vôbec žiadna hodnota. V tomto príklade sme umiestnili prázdnu hodnotu do všetkých stĺpcov podradenej tabuľky predaja. Ak je viac hodnôt v nadradenej tabuľke ako v poddeľových tabuľkách, nespôsobuje to žiadny problém.
Krok č. 3: Spočítanie riadkov pomocou ALL a ALLNOBLANK
Nasledujúce dve mierky pridajte do tabuľky datetime na spočítanie riadkov tabuľky: Countrows ALLNOBLANK tabuľky datetime, Countrows ALL hodnoty datetime. Vzorce, ktoré môžete použiť na definovanie týchto mierok, sú:
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))
// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))
// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))
V prázdnej kontingenčnej tabuľke pridajte hodnotu datetime. [Kalendárny rok] stĺpec k označeniam riadkov a potom pridajte novovytvorené mierky. Výsledky by mali vyzerať ako v nasledujúcej tabuľke:
Označenia riadkov | Countrows ALLNOBLANK tabuľky datetime | Countrows ALL typu datetime |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
Celkový súčet | 1280 | 1281 |
Výsledky zobrazujú v počte riadkov tabuľky rozdiel 1 riadka. Ak však otvoríte okno doplnku Power Pivot a vyberiete tabuľku datetime, nemôžete v tabuľke nájsť žiadny prázdny riadok, pretože tu uvedený špeciálny prázdny riadok je neznámy člen.
Krok č. 4: Kontrola, či je počet presný
Ak chcete dokázať, že ALLNOBLANKROW nezapočítava žiadne skutočne prázdne riadky a spracováva len špeciálny prázdny riadok iba v nadradenej tabuľke, pridajte do tabuľky ResellerSales_USD nasledujúce dve mierky: Countrows ALLNOBLANKROW ResellerSales_USD, Countrows ALL ResellerSales_USD.
Vytvorte novú kontingenčnú tabuľku a presuňte stĺpec Datetime. [Kalendárny rok] na tablu Označenie riadkov. Teraz pridajte mierky, ktoré ste práve vytvorili. Výsledky by mali vyzerať približne takto:
Označenia riadkov | Countrows ALLNOBLANKROW of ResellerSales_USD | Countrows ALL of ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
Celkový súčet | 60856 | 60856 |
Teraz majú tieto dve mierky rovnaké výsledky. Dôvodom je, že funkcia ALLNOBLANKROW nezapočítava v tabuľke naozaj prázdne riadky, ale spracováva iba prázdny riadok, ktorý je špeciálnym prípadom vygenerovaným v nadradenej tabuľke, keď jedna alebo viac podradených tabuliek vo vzťahu obsahuje nezhodné hodnoty alebo prázdne hodnoty.
Súvisiaci obsah
Funkcie FiltrovanieALL funkcieFILTER