Udostępnij za pośrednictwem


INDEX

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Zwraca wiersz w pozycji bezwzględnej określonej przez parametr position w określonej partycji posortowany według określonej kolejności. If nie można odwieść bieżącej partycji do jednej partycji, może zostać zwróconych wiele wierszy.

Składnia

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parametry

Termin Definicja
position Położenie bezwzględne (oparte na 1), z którego mają być uzyskiwane dane:
- position jest dodatnie: 1 to wiersz first, 2 to wiersz second itp.,
- position jest ujemny: -1 jest wierszem last, -2 jest wierszem secondlast itp.
Gdy position jest poza granicą, or zero, orBLANK(), INDEX zwróci pustą tabelę. Może to być dowolne wyrażenie DAX zwracające valueskalarne .
relation (Opcjonalnie) Wyrażenie tabeli, z którego są zwracane dane wyjściowe.
If określone kolumny all w partitionBy muszą pochodzić z niej or tabeli related.
If pominięty:
- orderBy należy jawnie określić.
— wyrażenia AllorderByandpartitionBy muszą być w pełni kwalifikowanymi nazwami kolumn, and pochodzą z jednej tabeli.
— domyślnie ALLSELECTED() kolumn all w orderByandpartitionBy.
axis (Opcjonalnie) Oś w kształcie wizualizacji. Dostępne tylko w obliczeniach wizualnych and zastępuje relation.
orderBy (Opcjonalnie) Klauzula ORDERBY() zawierająca wyrażenia, które define sposób sortowania każdej partycji.
If pominięty:
- relation należy jawnie określić.
— domyślnie kolejność według każdej kolumny w relation, która jest not już określona w partitionBy.
blanks (Opcjonalnie) Wyliczenie, które definiuje sposób obsługi blankvalues podczas sortowania.
Ten parametr jest zarezerwowany do użytku w przyszłości.
obecnie jedyną obsługiwaną value jest DEFAULT, gdzie zachowanie values liczbowych blankvalues jest uporządkowane między and ujemną and ujemną . Zachowanie ciągów jest blankvalues są uporządkowane przed all ciągami, w tym pustymi ciągami.
partitionBy (Opcjonalnie) Klauzula PARTITIONBY() zawierająca kolumny, które define sposób partycjonowania relation.
If pominięty, relation jest traktowana jako pojedyncza partycja.
matchBy (Opcjonalnie) Klauzula MATCHBY() zawierająca kolumny, które define, jak dopasować dane and zidentyfikować bieżący wiersz.
reset (Opcjonalnie) Dostępne tylko w obliczeniach wizualnych. Wskazuje if resetowania obliczeń, and na jakim poziomie hierarchii kolumn kształtu wizualizacji. Zaakceptowane values to: odwołanie do pola do kolumny w bieżącym kształcie wizualizacji, NONE (ustawienie domyślne), LOWESTPARENT, HIGHESTPARENT, or liczbę całkowitą. Zachowanie zależy od liczby całkowitej sign:
— If zero or pominięte, obliczenie not zresetować. Odpowiednik NONE.
— If dodatnia liczba całkowita identyfikuje kolumnę rozpoczynającą się od najwyższego, niezależnego od ziarna. HIGHESTPARENT jest równoważne 1.
— If ujemna liczba całkowita identyfikuje kolumnę rozpoczynającą się od najniższego względem bieżącego ziarna. LOWESTPARENT jest równoważne -1.

Zwracanie value

Wiersz w pozycji bezwzględnej.

Uwagi

Każda kolumna partitionByandmatchBy musi mieć odpowiednie value zewnętrzne, aby ułatwić define "bieżącą partycję", na której będzie działać, z następującym zachowaniem:

  • If jest dokładnie jedna odpowiadająca kolumnie zewnętrznej, używana jest jego value.
  • If nie ma odpowiedniej kolumny zewnętrznej:
    • INDEX first określić kolumny allpartitionByandmatchBy, które nie mają odpowiedniej kolumny zewnętrznej.
    • Dla każdej kombinacji istniejących values dla tych kolumn w kontekście nadrzędnym INDEXINDEX jest obliczana and zwracany jest wiersz.
    • INDEXkońcowe dane wyjściowe to union tych wierszy.
  • If istnieje więcej niż jedna odpowiadająca mu kolumna zewnętrzna, zwracana jest error.

If matchBy jest obecny, INDEX spróbuje użyć kolumn matchByandpartitionBy do zidentyfikowania wiersza. If matchBy not and kolumn określonych w orderByandpartitionBy nie można jednoznacznie zidentyfikować każdego wiersza w relation:

  • INDEX spróbuje find najmniejszą liczbę dodatkowych kolumn wymaganych do unikatowego zidentyfikowania każdego wiersza.
  • If można znaleźć takie kolumny, INDEX automatycznie dołączy te nowe kolumny do orderBy, and każda partycja zostanie posortowana przy użyciu tego nowego zestawu kolumn OrderBy.
  • If nie można odnaleźć takich kolumn, zwracana jest error.

Pusta tabela jest zwracana if:

  • Odpowiednie zewnętrzne value kolumny PartitionBynot istnieją w relation.
  • position value odnosi się do pozycji, która not istnieje w partycji.

If INDEX jest używana w kolumnie obliczeniowej zdefiniowanej w tej samej tabeli, co pominięto relationandorderBy, zwracany jest error.

reset można używać tylko w obliczeniach wizualnych, and nie można używać w połączeniu z orderByorpartitionBy. If reset jest obecny, axis można określić, ale nie można relation.

Przykład 1 — kolumna obliczeniowa

Następujące zapytanie DAX:

EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))

Zwraca następującą tabelę:

DimDate[CalendarYear]
2005

Przykład 2 — kolumna obliczeniowa

Następujące zapytanie 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]

Zwraca następującą tabelę:

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

Przykład 3 — obliczanie wizualizacji

Następujące obliczenia wizualne DAX zapytania:

SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))

SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))

Zwiększ tabelę, aby contains, dla każdego month:
— łączna kwota sprzedaży;
- różnica w firstmonth odpowiednich year;
— and różnicę w firstmonth odpowiedniego quarter.

Poniższy zrzut ekranu przedstawia macierz wizualizacji and wyrażenie obliczania wizualizacji first:

obliczania wizualizacji

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER