Sdílet prostřednictvím


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 AllorderByandpartitionBy musí být plně kvalifikované názvy sloupců, and pocházejí z jedné tabulky.
– výchozí hodnota je ALLSELECTED()all sloupců v orderByandpartitionBy.
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 partitionByandmatchBy 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čí allpartitionByandmatchBy 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ů.
  • 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í matchByandpartitionBy sloupců. If matchBy not and sloupce zadané v rámci orderByandpartitionBy 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 relationandorderBy, vrátí se error.

reset lze použít pouze ve vizuálních výpočtech, and nelze použít v kombinaci s orderByorpartitionBy. 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:

DAX výpočtu vizuálu

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER