Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na:
Vypočítaný stĺpec
Vypočítaná tabuľka
Merať
Výpočet vizuálu
Vráti jeden riadok, ktorý je umiestnený pred alebo za aktuálnym riadkom v tej istej tabuľke, daným posunom. Ak aktuálny riadok nie je možné odvodiť do jedného riadka, môže sa vrátiť viacero riadkov.
Syntax
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
| Termín | Definícia |
|---|---|
delta |
Počet riadkov pred (záporná hodnota) alebo po (kladná hodnota), z ktorého sa majú získať údaje. Môže to byť akýkoľvek výraz DAX, ktorý vráti skalárnu hodnotu. |
relation |
(Voliteľné) Výraz tabuľky, z ktorého sa vráti výstupný riadok. Ak sa tento parameter použije vo výpočtoch vizuálu, akceptuje os vo vizuálnom tvare.
Ak je zadaný, všetky stĺpce v partitionBy musia pochádzať z neho alebo zo súvisiacej tabuľky.
Ak tento argument vynecháte: - orderBy musí byť explicitne zadaný.– všetky výrazy orderBy a partitionBy musia byť plne kvalifikované názvy stĺpcov a musia pochádzať z jednej tabuľky.
– predvolene sa použije ALLSELECTED() všetkých stĺpcov v orderBy a partitionBy. |
orderBy |
(Voliteľné) Klauzula ORDERBY() obsahujúca výrazy, ktoré definujú spôsob zoradenia každej oblasti.
Ak tento argument vynecháte: - relation musí byť explicitne zadaný.
– predvolene sa zoradí podľa každého stĺpca v relation, ktorý ešte nie je zadaný v partitionBy. |
blanks |
(Voliteľné) Enumerácia, ktorá definuje spôsob narábania s prázdnymi hodnotami pri zoraďovaní relation alebo axis.
Podporované hodnoty sú:
Všimnite si, že keď sú v blanks pri jednotlivých výrazoch zadané hodnoty ORDERBY na výraze orderBy má prednosť pre príslušný výraz orderBy a výrazy orderBy bez blanks zadania zachová parameter blanks v nadradenej funkcii. |
partitionBy |
(Voliteľné) Klauzula PARTITIONBY() obsahujúca stĺpce, ktoré definujú spôsob relation rozdelenia. Ak sa vynechá, relation sa považuje za jednu oblasť. |
matchBy |
(Voliteľné) Klauzula MATCHBY() obsahujúca stĺpce, ktoré definujú, ako sa majú zhodovať s údajmi a identifikovať aktuálny riadok. |
reset |
(Voliteľné) K dispozícii iba vo výpočtoch vizuálu. Udáva, či sa výpočet resetuje a na akej úrovni hierarchie stĺpcov tvaru vizuálu. Prijaté hodnoty sú: odkaz na pole na stĺpec v aktuálnom tvare vizuálu, NONE (predvolené), LOWESTPARENT, HIGHESTPARENTalebo celé číslo. Správanie závisí od celočíselného znamienka: – Ak je hodnota nula alebo je vynechaná, výpočet sa nevynuluje. Zodpovedá NONE.
– ak je kladné, celé číslo identifikuje stĺpec začínajúci od najvyššej, nezávisle od zrna. HIGHESTPARENT zodpovedá 1.
– ak je záporné, celé číslo identifikuje stĺpec začínajúci od najnižšej hodnoty vo vzťahu k aktuálnemu zrnu. LOWESTPARENT je ekvivalentom čísla -1. |
Vrátená hodnota
Jeden alebo viac riadkov z relation.
Poznámky
S výnimkou stĺpcov pridaných funkciami DAX tabuľky musí mať každý stĺpec v relation, ak nie je prítomný matchBy, alebo každý stĺpec v matchBy a partitionBy, ak je prítomný matchBy , musí mať zodpovedajúcu vonkajšiu hodnotu, ktorá pomáha definovať aktuálny riadok, na ktorom sa má pracovať, s nasledujúcim správaním:
- Ak existuje presne jeden zodpovedajúci vonkajší stĺpec, použije sa jeho hodnota.
- Ak neexistuje žiadny zodpovedajúci vonkajší stĺpec, potom:
- OFFSET najprv určí všetky stĺpce, ktoré nemajú žiadny príslušný vonkajší stĺpec.
- Pre každú kombináciu existujúcich hodnôt pre tieto stĺpce v nadradenom kontexte OFFSETsa vyhodnotí OFFSET a vráti sa riadok.
- OFFSETkonečný výstup je zjednotenie týchto riadkov.
- Ak existuje viac ako jeden zodpovedajúci vonkajší stĺpec, vráti sa chyba.
Ak relation funkcie tabuľky pridali všetky stĺpce DAX, vráti sa chyba.
Ak existuje matchBy, OFFSET sa pokúsi použiť matchBy a partitionBy stĺpce na identifikáciu riadka.
Ak matchBy nie je k dispozícii a stĺpce zadané v orderBy a partitionBy nemôžu jednoznačne identifikovať každý riadok v relation, potom:
- OFFSET sa pokúsi nájsť najmenší počet ďalších stĺpcov potrebných na jedinečnú identifikáciu každého riadka.
- Ak sa tieto stĺpce dajú nájsť, OFFSET automaticky pripojí tieto nové stĺpce k
orderBy, a každá oblasť sa zoradí pomocou tejto novej množiny stĺpcov OrderBy. - Ak sa takéto stĺpce nedajú nájsť, vráti sa chyba.
Prázdna tabuľka sa vráti, ak:
- Zodpovedajúca vonkajšia hodnota stĺpca OrderBy alebo PartitionBy neexistuje v rámci
relation. - Hodnota
deltaspôsobí posun do riadka, ktorý v oblasti neexistuje.
Ak OFFSET použijete v rámci vypočítaného stĺpca definovaného v tej istej tabuľke ako relation, a orderBy sa vynechá, vráti sa chyba.
reset možno použiť iba vo vizuálnych výpočtoch a nemožno ho použiť v kombinácii s orderBy alebo partitionBy. Ak je prítomná reset, možno zadať axis ale relation nedá.
Ak je hodnota reset typu absolútna (t. j. kladné celé HIGHESTPARENT číslo alebo odkaz na pole) a výpočet sa vyhodnotí na cieľovej úrovni alebo nad cieľovou úrovňou v hierarchii, výpočet sa resetuje pre každý jednotlivý prvok. To znamená, že funkcia sa vyhodnotí v rámci oblasti, ktorá obsahuje iba tento konkrétny prvok.
Príklad 1 – vypočítaný stĺpec
Nasledujúci DAX dotaz:
DEFINE
VAR vRelation = SUMMARIZECOLUMNS (
DimProductCategory[EnglishProductCategoryName],
DimDate[CalendarYear],
"CurrentYearSales", SUM(FactInternetSales[SalesAmount])
)
EVALUATE
ADDCOLUMNS (
vRelation,
"PreviousYearSales",
SELECTCOLUMNS(
OFFSET (
-1,
vRelation,
ORDERBY([CalendarYear]),
PARTITIONBY([EnglishProductCategoryName])
),
[CurrentYearSales]
)
)
Vráti tabuľku, ktorá sumarizuje celkový predaj pre každú kategóriu produktov a kalendárny rok, ako aj celkový predaj pre túto kategóriu v predchádzajúcom roku.
Príklad 2 – mierka
Nasledujúci DAX dotaz:
DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
DimDate[CalendarYear],
"CurrentYearSales", DimProduct[CurrentYearSales],
"PreviousYearSales", DimProduct[PreviousYearSales]
)
Používa OFFSET() v mierke na vrátenie tabuľky, ktorá zosumarizuje celkový predaj za jednotlivé kalendárne roky a celkový predaj za predchádzajúci rok.
Príklad 3 – vypočítaný stĺpec
Nasledujúci DAX dotaz:
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Vráti tabuľku FactInternetSales s pridaním stĺpca, ktorý pre každý predaj označuje jeho predchádzajúcu čiastku predaja toho istého produktu v zostupnom poradí čiastky predaja, pričom aktuálny predaj je identifikovaný jeho hodnotami SalesOrderNumber a SalesOrderLineNumber. Bez MATCHBYby dotaz vrátil chybu, pretože v tabuľke FactInternetSales neexistujú žiadne kľúčové stĺpce.
Príklad 4 – výpočet vizuálu
Nasledujúci výpočet vizuálu DAX dotaz:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Vráti rozdiel v celkovom predaji medzi jednotlivými mesiacmi a predchádzajúcimi v rámci toho istého roka.
Snímka obrazovky nižšie znázorňuje maticu vizuálu a výraz výpočtu vizuálu:
výpočtu vizuálu