Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Számított oszlop
Számított tábla
Mér
Vizualizációs számítás
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.
Szintaxis
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
Kifejezés | 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ármely DAX kifejezés, amely skaláris értéket ad vissza. |
relation |
(Nem kötelező) Egy táblakifejezés, amelyből a kimeneti sor vissza lesz adva. Ha vizuális számításokban használják, ez a paraméter elfogadja a vizualizáció alakzatának tengelyét.
Ha meg van adva, a partitionBy összes oszlopának onnan vagy egy kapcsolódó táblából kell származnia.
Ha nincs megadva: - orderBy explicit módon kell megadni.– Minden orderBy és partitionBy kifejezésnek teljes oszlopneveknek kell lennie, és egyetlen táblából kell származnia.
– A ALLSELECTED és orderBy összes oszlopának alapértelmezett értéke partitionBy (). |
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: - relation explicit módon kell megadni.
– Alapértelmezés szerint a relation minden olyan oszlopa rendezi a sorrendet, amely még nincs megadva a partitionBy . |
blanks |
(Nem kötelező) Enumerálás, amely meghatározza, hogyan kezelhetők az üres értékek a relation vagy axis rendezésekor.
A támogatott értékek a következők:
Vegye figyelembe, hogy ha az egyes kifejezések blanks függvényének ORDERBY paramétere és üres mezői is meg vannak adva, az egyes orderBy-kifejezések prioritást élveznek a megfelelő orderBy kifejezésnél, és a blanks megadása nélküli OrderBy-kifejezések tiszteletben tartják a szülőfüggvény blanks paraméterét. |
partitionBy |
(Nem kötelező) A PARTITIONBY particionálását meghatározó oszlopokat tartalmazó záradék. Ha nincs megadva, a relation 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 egyezését és az aktuális sor azonosítását. |
reset |
(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: az aktuális vizualizáció alakzatának egy oszlopára mutató mezőhivatkozás, NONE (alapértelmezett), LOWESTPARENT , HIGHESTPARENT vagy egész szám. A viselkedés a következő egész számjeltől függ: – Ha nulla vagy nincs megadva, a számítás nem állítható vissza. Egyenértékű NONE .
– Ha pozitív, az egész szám a legmagasabbtól kezdődő, a szemcséktől független oszlopot azonosítja. HIGHESTPARENT 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. LOWESTPARENT -1-nek felel meg. |
Visszaadott érték
Egy vagy több sor relation
.
Megjegyzések
A DAX táblafüggvények által hozzáadott oszlopok kivételével a relation
minden oszlopának, ha matchBy
nincs jelen, vagy ha matchBy
és partitionBy
minden oszlopa jelen van, akkor a matchBy
megfelelő külső értékkel kell rendelkeznie, amely segít meghatározni az aktuális sort, amelyen működni kíván, az alábbi 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:
- OFFSET először meghatározza az összes olyan oszlopot, amely nem rendelkezik megfelelő külső oszloppal.
- Ezen oszlopok meglévő értékeinek minden kombinációjához OFFSETszülőkörnyezetében a rendszer kiértékeli a OFFSET, és visszaad egy sort.
- OFFSETvé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 relation
táblafüggvények DAXösszes oszlopát hozzáadták, a rendszer hibát ad vissza.
Ha matchBy
van jelen, OFFSETmatchBy
és partitionBy
oszlopokat próbál meg használni a sor azonosításához.
Ha matchBy
nincs jelen, és a orderBy
és partitionBy
megadott oszlopok nem tudják egyedileg azonosítani relation
minden sorát, akkor:
- OFFSET 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, OFFSET automatikusan hozzáfűzi ezeket az új oszlopokat
orderBy
, és az egyes partíciók rendezése ezzel az új OrderBy-oszlopkészlettel történik. - 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
relation
. - A
delta
érték olyan sorra vált, amely nem létezik a partíción belül.
Ha OFFSET a relation
táblában definiált számított oszlopban van használva, és orderBy
nincs megadva, a rendszer hibát ad vissza.
reset
csak vizualizációs számításokhoz használható, és nem használható orderBy
vagy partitionBy
együtt. Ha reset
van, axis
megadható, de relation
nem.
Ha az érték reset
abszolút (azaz pozitív egész szám vagy HIGHESTPARENT
mezőhivatkozás), és a számítást a hierarchia célszintjén vagy felett értékeli ki, a számítás minden egyes elemnél alaphelyzetbe áll. Vagyis a függvény kiértékelése egy olyan partíción belül történik, amely csak az adott elemet tartalmazza.
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]
)
Egy mérték OFFSET() használatával 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. MATCHBYnélkül a lekérdezés hibát adna 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ás 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ó: