ELLENSÚLYOZ
A következőre vonatkozik: Számított oszlop Számított tábla Mérték vizualizáció számítása
Egyetlen sort ad vissza, amely egy adott eltolással az aktuális sor előtt vagy után helyezkedik el ugyanazon a táblán belül. Ha az aktuális sor nem vonható le egyetlen sorra, több sort is visszaadhat.
Syntax
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
Időszak | Definíció |
---|---|
delta | Az aktuális sor előtti (negatív érték) vagy utáni sorok száma (pozitív érték), amelyből az adatokat lekérjük. Bármilyen DAX-kifejezés lehet, amely skaláris értéket ad vissza. |
reláció | (Nem kötelező) Egy táblakifejezés, amelyből a kimeneti sor vissza lesz adva. Ha meg van adva, a partitionBy> összes oszlopának <onnan vagy egy kapcsolódó táblából kell származnia. Ha nincs megadva: - <az orderBy-t> explicit módon kell megadni. - Minden <orderBy> és <partitionBy> kifejezésnek teljes oszlopneveknek kell lennie, és egyetlen táblából kell származnia. - Az összes oszlop ALLSELECTED() értéke az orderBy> és <partitionBy> sorrendben<. |
tengely | (Nem kötelező) A vizualizáció alakzatának tengelye. Csak vizuális számításokban érhető el, és lecseréli a relációt<>. |
orderBy | (Nem kötelező) Egy ORDERBY() záradék, amely az egyes partíciók rendezését meghatározó kifejezéseket tartalmazza. Ha nincs megadva: - <a relációt> explicit módon kell megadni. - Alapértelmezés szerint a partitionBy-ben még nem megadott összes oszlop> sorrendje<<.> |
Üres | (Nem kötelező) Enumerálás, amely meghatározza, hogyan kell kezelni az üres értékeket a rendezés során. Ez a paraméter jövőbeli használatra van fenntartva. Jelenleg az egyetlen támogatott érték az ALAPÉRTELMEZETT érték, ahol a numerikus értékek viselkedése üres érték, nulla és negatív értékek között van rendezve. A sztringek viselkedése üres érték, amely az összes sztring előtt van rendezve, beleértve az üres sztringeket is. |
partitionBy | (Nem kötelező) A partíciók particionálásának> módját <meghatározó oszlopokat tartalmazó PARTITIONBY() záradék. Ha nincs megadva, <a kapcsolat> egyetlen partícióként lesz kezelve. |
matchBy | (Nem kötelező) EGY MATCHBY() záradék, amely azokat az oszlopokat tartalmazza, amelyek meghatározzák az adatok egyeztetését és az aktuális sor azonosítását. |
átszed | (Nem kötelező) Csak vizuális számításokban érhető el. Azt jelzi, hogy a számítás alaphelyzetbe áll-e, és a vizualizáció alakzatának oszlophierarchiájának melyik szintjén. Az elfogadott értékek a következők: NONE, LOWESTPARENT, HIGHESTPARENT vagy egész szám. A viselkedés az egész szám jelétől függ: – Ha nulla vagy nincs megadva, a számítás nem állítható vissza. A NONE értéknek megfelelő. - Ha pozitív, az egész szám azonosítja az oszlopot a legmagasabbtól kezdve, a szemcséktől függetlenül. A HIGHESTPARENT az 1-nek felel meg. - Ha negatív, az egész szám a legalacsonyabbtól kezdődő oszlopot azonosítja az aktuális szemcséhez viszonyítva. A LOWESTPARENT értéke -1. |
Visszaadott érték
Egy vagy több sor a relációból<>.
Megjegyzések
A DAX-táblafüggvények által hozzáadott oszlopok kivételével minden relációs> oszlopnak<, ha <a matchBy> nincs jelen, vagy a matchBy és <a partitionBy> minden oszlopának<, ha <a matchBy>> jelen van, rendelkeznie kell egy megfelelő külső értékkel, amely segít meghatározni az aktuális sort, amelyen működni szeretne, a következő viselkedéssel:
- Ha pontosan egy megfelelő külső oszlop van, annak értékét használja a rendszer.
- Ha nincs megfelelő külső oszlop, akkor:
- Az ELTOLÁS először meghatározza az összes olyan oszlopot, amely nem rendelkezik megfelelő külső oszloppal.
- Az ELTOLÁS szülőkörnyezetében lévő oszlopok meglévő értékeinek minden kombinációja esetén az ELTOLÁS kiértékelése és egy sor visszaadása történik.
- Az OFFSET végső kimenete ezeknek a soroknak az egyesítése.
- Ha egynél több megfelelő külső oszlop van, a függvény hibát ad vissza.
Ha a <DAX táblafüggvények hozzáadták a reláció> összes oszlopát, a rendszer hibát ad vissza.
Ha <a matchBy> jelen van, az OFFSET a <matchBy> és <a partitionBy> oszlopokkal próbálja azonosítani a sort.
Ha <a matchBy> nincs jelen, és az orderBy> és <a partitionBy> függvényben <megadott oszlopok nem tudják egyedileg azonosítani a reláció> minden sorát<, akkor:
- Az ELTOLÁS megpróbálja megtalálni az összes sor egyedi azonosításához szükséges minimális számú további oszlopot.
- Ha ilyen oszlopok találhatók, az ELTOLÁS automatikusan hozzáfűzi ezeket az új oszlopokat az orderBy> oszlophoz<, és minden partíciót ezzel az új OrderBy-oszlopkészlettel rendez.
- Ha az ilyen oszlopok nem találhatók, a rendszer hibát ad vissza.
A függvény üres táblát ad vissza, ha:
- Az OrderBy vagy PartitionBy oszlop megfelelő külső értéke nem létezik a relációban<>.
- A <delta> érték olyan sorra vált, amely nem létezik a partíción belül.
Ha az ELTOLÁS egy, a relációval <>azonos táblában definiált számított oszlopban van használva, és <az orderBy> hiányzik, a rendszer hibát ad vissza.
<a visszaállítás> csak vizualizációs számításokban használható, és nem használható az orderBy> vagy <a partitionBy> együttes használatával<. Ha <az alaphelyzetbe állítás> jelen van, a tengely> megadható, <de <a reláció> nem.
1. példa – számított oszlop
A következő DAX-lekérdezés:
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]
)
)
Egy táblázatot ad vissza, amely összegzi az egyes termékkategóriák és naptári évek összes értékesítését, valamint az előző év adott kategóriájának teljes értékesítését.
2. példa – mérték
A következő DAX-lekérdezés:
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]
)
Az ELTOLÁS() egy mértékben egy olyan táblát ad vissza, amely összegzi az egyes naptári évek összes értékesítését és az előző év összes értékesítését.
3. példa – számított oszlop
A következő DAX-lekérdezés:
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
A FactInternetSales táblát egy oszlop hozzáadásával adja vissza, amely jelzi, hogy az egyes eladások esetében az előző eladás összege ugyanahhoz a termékhez tartozik, csökkenő értékesítési sorrendben, és az aktuális értékesítést a SalesOrderNumber és a SalesOrderLineNumber azonosítja. A MATCHBY nélkül a lekérdezés hibát ad vissza, mivel a FactInternetSales táblában nincsenek kulcsoszlopok.
4. példa – vizualizációszámítás
A következő vizualizációszámítási DAX-lekérdezés:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Az egyes hónapok és az előző év összes értékesítésének különbözetét adja eredményül.
Az alábbi képernyőképen a vizualizációs mátrix és a vizualizáció számítási kifejezése látható: