INDEX
A következőre vonatkozik: Számított oszlop Számított tábla Mérték vizualizáció számítása
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.
Syntax
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
Időszak | Definíció |
---|---|
pozíció | Az abszolút pozíció (1-alapú), amelyből az adatokat lekérjük: - <a pozíció> pozitív: 1 az első sor, 2 a második sor stb. - <a pozíció> negatív: -1 az utolsó sor, -2 a második utolsó sor stb. Ha <a pozíció> kívül van a határon, vagy nulla vagy BLANK(), az INDEX üres táblát ad vissza. 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 kimenet 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 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:
- Az INDEX először meghatározza az összes <partitionBy> és <matchBy> oszlopot, amelyek nem rendelkeznek megfelelő külső oszlopokkal.
- Az INDEX szülőkörnyezetében lévő oszlopok meglévő értékeinek minden kombinációjához az INDEX kiértékelése és egy sor visszaadása történik.
- Az INDEX 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 matchBy> jelen van, az INDEX 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 azonosítják egyedileg a reláció> összes sorát<:
- Az 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, az INDEX automatikusan hozzáfűzi ezeket az új oszlopokat az orderBy> oszlophoz<, é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 a relációban<>.
- A <pozíció> értéke olyan pozícióra utal, amely nem létezik a partíción belül.
Ha az INDEX 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:
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 | 0 | 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 | 0 | 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ási DAX-lekérdezések:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Bővítse a táblázatot úgy, hogy az minden hónapban tartalmazza:
- a teljes értékesítési összeg;
- az adott év első hónapjának különbsége;
- és a megfelelő negyedév első hónapjának különbsége.
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ó: