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 All orderBy andpartitionBy muszą być w pełni kwalifikowanymi nazwami kolumn, and pochodzą z jednej tabeli.
— domyślnie ALLSELECTED() kolumn all w orderBy andpartitionBy . |
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 partitionBy
andmatchBy
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 all
partitionBy
andmatchBy
, 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.
-
INDEX
first określić kolumny all
- 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 matchBy
andpartitionBy
do zidentyfikowania wiersza.
If
matchBy
not
and kolumn określonych w orderBy
andpartitionBy
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 relation
andorderBy
, zwracany jest error.
reset
można używać tylko w obliczeniach wizualnych, and nie można używać w połączeniu z orderBy
orpartitionBy
.
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