Megosztás a következőn keresztül:


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ó:

DAX-vizualizáció kiszámítása

ELLENSÚLYOZ
ORDERBY
PARTITIONBY
ABLAK
RANG
ROWNUMBER