INDEX
platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu
Vrátí řádek na absolutní pozici určenou parametrem pozice v zadaném oddílu seřazené podle zadaného pořadí. If aktuální oddíl nelze dedukovat na jeden oddíl, může se vrátit více řádků.
Syntax
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametry
Semestr | Definice |
---|---|
position |
Absolutní pozice (1) pro získání dat: - position je kladné: 1 je first řádek, 2 je second řádek atd. - position je záporná: -1 je last řádek, -2 je secondlast řádek atd. Když je position mimo hranici, or nula, orBLANK(), INDEX vrátí prázdnou tabulku. Může to být libovolný výraz DAX, který vrací skalární value. |
relation |
(Volitelné) Výraz tabulky, ze kterého se vrátí výstup.
If zadané, all sloupce v partitionBy musí pocházet z or tabulky related.
If vynecháno: - orderBy musí být explicitně zadán.
– výrazy All orderBy andpartitionBy musí být plně kvalifikované názvy sloupců, and pocházejí z jedné tabulky.
– výchozí hodnota je ALLSELECTED() all sloupců v orderBy andpartitionBy . |
axis |
(Volitelné) Osa ve vizuálním obrazci. Dostupné pouze ve vizuálních výpočtech, and nahrazuje relation . |
orderBy |
(Volitelné) Klauzule ORDERBY() obsahující výrazy, které define způsob řazení jednotlivých oddílů.
If vynecháno: - relation musí být explicitně zadán.
– Výchozí nastavení řazení podle každého sloupce v relation , který je not již zadán v partitionBy . |
blanks |
(Volitelné) Výčet, který definuje, jak zpracovat blankvalues při řazení.
Tento parametr je vyhrazen pro budoucí použití. V současné době je jediným podporovaným value je DEFAULT , kde chování číselného values je blankvalues jsou seřazeny mezi nulou and zápornými values. Chování řetězců je blankvalues jsou seřazeny před all řetězce, včetně prázdných řetězců. |
partitionBy |
(Volitelné) Klauzule PARTITIONBY() obsahující sloupce, které define způsob rozdělení relation .
If vynecháme, relation se považuje za jeden oddíl. |
matchBy |
(Volitelné) Klauzule MATCHBY() obsahující sloupce, které define, jak se shodují s daty and identifikovat aktuální řádek. |
reset |
(Volitelné) K dispozici pouze ve vizuálních výpočtech. Označuje if resetování výpočtů and na jaké úrovni hierarchie sloupců obrazce vizuálu. Přijaté values jsou: NONE , LOWESTPARENT , HIGHESTPARENT , or celé číslo. Chování závisí na celočíselném sign: – If není or vynechán, výpočet not resetuje. Ekvivalent NONE .
– If kladné, celé číslo identifikuje sloupec začínající od nejvyšší, nezávisle na agregaci. HIGHESTPARENT odpovídá 1.
– If záporné, celé číslo identifikuje sloupec počínaje nejnižším vzhledem k aktuálnímu agregačnímu intervalu. LOWESTPARENT je ekvivalentní -1. |
Vrácení value
Řádek na absolutní pozici.
Poznámky
Každý sloupec partitionBy
andmatchBy
musí mít odpovídající vnější value, aby pomohl define "aktuálním oddílem", na kterém se má pracovat, s následujícím chováním:
- If existuje přesně jeden odpovídající vnější sloupec, použije se jeho value.
-
If neexistuje odpovídající vnější sloupec:
-
INDEX
first určí all
partitionBy
andmatchBy
sloupce, které nemají odpovídající vnější sloupec. - Pro každou kombinaci existujících values pro tyto sloupce v nadřazeném kontextu INDEXse INDEX vyhodnotí and se vrátí řádek.
- INDEXkonečný výstup je union těchto řádků.
-
INDEX
first určí all
- If existuje více než jeden odpovídající vnější sloupec, vrátí se error.
If
matchBy
je k dispozici, INDEX se pokusí identifikovat řádek pomocí matchBy
andpartitionBy
sloupců.
If
matchBy
not
and sloupce zadané v rámci orderBy
andpartitionBy
nemohou jednoznačně identifikovat každý řádek v relation
:
- INDEX se pokusí find nejmenší počet dalších sloupců potřebných k jednoznačné identifikaci každého řádku.
-
If takové sloupce lze najít, INDEX tyto nové sloupce automaticky připojí k
orderBy
, and každý oddíl se seřadí pomocí této nové sady sloupců OrderBy. - If takové sloupce nelze najít, vrátí se error.
Vrátí se prázdná tabulka if:
- Odpovídající vnější value sloupce PartitionBy existuje not uvnitř
relation
. -
position
value odkazuje na pozici, která not existuje v rámci oddílu.
If
INDEX se použije v počítaném sloupci definovaném ve stejné tabulce jako relation
andorderBy
, vrátí se error.
reset
lze použít pouze ve vizuálních výpočtech, and nelze použít v kombinaci s orderBy
orpartitionBy
.
If
reset
je k dispozici, axis
lze zadat, ale relation
nelze.
Příklad 1 – počítaný sloupec
Následující dotaz DAX:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Vrátí následující tabulku:
DimDate[CalendarYear] |
---|
2005 |
Příklad 2 – počítaný sloupec
Následující dotaz DAX:
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]
Vrátí následující tabulku:
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 |
Příklad 3 – výpočet vizuálu
Následující vizuální výpočet DAX dotazy:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Vylepšete tabulku tak, aby contains, pro každou month:
- celková částka prodeje;
– rozdíl firstmonth příslušného year;
- and rozdíl firstmonth příslušného quarter.
Následující snímek obrazovky ukazuje matici vizuálů and výrazu first vizuálního výpočtu:
výpočtu vizuálu