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
A pozícióparaméter által megadott abszolút pozícióban lévő sort ad vissza a megadott partíción belül, a megadott sorrend szerint rendezve. Ha az aktuális partíció nem tud egyetlen partícióra következtetni, több sort is visszaadhat.
Szintaxis
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
Kifejezés | Definíció |
---|---|
position |
Az abszolút pozíció (1-alapú), amelyből az adatokat lekérjük: - position pozitív: 1 az első sor, 2 a második sor stb. - position negatív: -1 az utolsó sor, -2 a második utolsó sor stb. Ha position kívül van a határon, vagy nulla, vagy BLANK(), INDEX üres táblát ad vissza. Bármely DAX kifejezés, amely skaláris értéket ad vissza. |
relation |
(Nem kötelező) Egy táblakifejezés, amelyből a kimenet 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 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 sor abszolút pozícióban.
Megjegyzések
Minden partitionBy
és matchBy
oszlopnak rendelkeznie kell egy megfelelő külső értékkel, amely segít meghatározni az "aktuális partíciót", amelyen működni kíván, 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:
-
INDEX először meghatározza az összes olyan
partitionBy
ésmatchBy
oszlopot, amely nem rendelkezik megfelelő külső oszloppal. - Ezen oszlopok meglévő értékeinek minden kombinációjához INDEXszülőkörnyezetében a rendszer kiértékeli a INDEX, és visszaad egy sort.
- INDEXvégső kimenete ezeknek a soroknak az egyesítése.
-
INDEX először meghatározza az összes olyan
- Ha egynél több megfelelő külső oszlop van, a függvény hibát ad vissza.
Ha matchBy
van jelen, INDEXmatchBy
é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 azonosítják egyedileg a relation
minden sorát:
- INDEX 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, INDEX 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:
- A PartitionBy oszlop megfelelő külső értéke nem létezik
relation
. - A
position
érték olyan pozícióra utal, amely nem létezik a partíción belül.
Ha INDEX a relation
táblában definiált számított oszlopban van használva, és a 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:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
A következő táblázatot adja vissza:
DimDate[CalendarYear] |
---|
2005 |
2. példa – számított oszlop
A következő DAX lekérdezés:
EVALUATE
SUMMARIZECOLUMNS (
FactInternetSales[ProductKey],
DimDate[MonthNumberOfYear],
FILTER (
VALUES(FactInternetSales[ProductKey]),
[ProductKey] < 222
),
"CurrentSales", SUM(FactInternetSales[SalesAmount]),
"LastMonthSales",
CALCULATE (
SUM(FactInternetSales[SalesAmount]),
INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
)
)
ORDER BY [ProductKey], [MonthNumberOfYear]
A következő táblázatot adja vissza:
FactInternetSales[ProductKey] | DimDate[MonthNumberOfYear] | [CurrentSales] | [LastMonthSales] |
---|---|---|---|
214 | 1 | 5423.45 | 8047.7 |
214 | 2 | 4968.58 | 8047.7 |
214 | 3 | 5598.4 | 8047.7 |
214 | 4 | 5073.55 | 8047.7 |
214 | 5 | 5248.5 | 8047.7 |
214 | 6 | 7487.86 | 8047.7 |
214 | 7 | 7382.89 | 8047.7 |
214 | 8 | 6543.13 | 8047.7 |
214 | 9 | 6788.06 | 8047.7 |
214 | 10 | 6858.04 | 8047.7 |
214 | 11 | 8607.54 | 8047.7 |
214 | 12 | 8047.7 | 8047.7 |
217 | 1 | 5353.47 | 7767.78 |
217 | 2 | 4268.78 | 7767.78 |
217 | 3 | 5773.35 | 7767.78 |
217 | 4 | 5738.36 | 7767.78 |
217 | 5 | 6158.24 | 7767.78 |
217 | 6 | 6998 | 7767.78 |
217 | 7 | 5563.41 | 7767.78 |
217 | 8 | 5913.31 | 7767.78 |
217 | 9 | 5913.31 | 7767.78 |
217 | 10 | 6823.05 | 7767.78 |
217 | 11 | 6683.09 | 7767.78 |
217 | 12 | 7767.78 | 7767.78 |
3. példa – vizualizációszámítás
A következő vizualizációszámítás DAX lekérdezéseket:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Táblázat továbbfejlesztése, hogy tartalmazza, minden hónapban:
- a teljes értékesítési összeg;
- az adott év első hónapjának különbsége;
- és a különbség az adott negyedév első hónapjára.
Az alábbi képernyőképen a vizualizációs mátrix és az első vizualizáció számítási kifejezés látható: