INDEX
지정된 파티션 내에서 위치 매개 변수로 지정된 절대 위치에 지정된 순서로 정렬된 행을 반환합니다. 현재 파티션을 단일 파티션으로 추론할 수 없는 경우 여러 행이 반환될 수 있습니다.
통사론
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
매개 변수
학기 | 정의 |
---|---|
position |
데이터를 가져올 절대 위치(1부터 시작): - position 양수입니다. 1은 첫 번째 행, 2는 두 번째 행 등입니다. - position 음수입니다. -1 마지막 행이고, -2 두 번째 행입니다. position 경계를 벗어나거나 0이거나 BLANK()입니다. INDEX 빈 테이블을 반환합니다. 스칼라 값을 반환하는 DAX 식일 수 있습니다. |
relation |
(선택 사항) 출력이 반환되는 테이블 식입니다.
지정한 경우 partitionBy 모든 열은 해당 열 또는 관련 테이블에서 나와야 합니다.
생략된 경우: - orderBy 명시적으로 지정해야 합니다.
- 모든 orderBy 및 partitionBy 식은 정규화된 열 이름이어야 하며 단일 테이블에서 가져옵니다.
- orderBy 및 partitionBy 모든 열의 ALLSELECTED() 기본값입니다. |
axis |
(선택 사항) 시각적 셰이프의 축입니다. 시각적 계산에서만 사용할 수 있으며 relation 대체합니다. |
orderBy |
(선택 사항) 각 파티션의 정렬 방법을 정의하는 식을 포함하는 ORDERBY() 절입니다.
생략된 경우: - relation 명시적으로 지정해야 합니다.
- partitionBy 아직 지정되지 않은 relation 모든 열의 순서 지정이 기본값입니다. |
blanks |
(선택 사항) relation 정렬하거나 axis 때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
지원되는 값은 다음과 같습니다.
개별 식에 대한 ORDERBY() 함수의 blanks 매개 변수와 공백이 모두 지정된 경우 개별 orderBy 식의 blanks 관련 orderBy 식에 우선 순위를 두고 blanks 지정하지 않은 orderBy 식은 부모 함수의 blanks 매개 변수를 적용합니다. |
partitionBy |
(선택 사항) relation 분할 방법을 정의하는 열을 포함하는 PARTITIONBY() 절입니다. 생략하면 relation 단일 파티션으로 처리됩니다. |
matchBy |
(선택 사항) 데이터를 일치시키고 현재 행을 식별하는 방법을 정의하는 열을 포함하는 MATCHBY() 절입니다. |
reset |
(선택 사항) 시각적 계산에서만 사용할 수 있습니다. 계산이 다시 설정되는지, 시각적 셰이프의 열 계층 구조 수준을 나타내는지 나타냅니다. 허용되는 값은 현재 시각적 셰이프의 열에 대한 필드 참조, NONE (기본값), LOWESTPARENT , HIGHESTPARENT 또는 정수입니다. 동작은 정수 기호에 따라 달라집니다. - 0이거나 생략하면 계산이 다시 설정되지 않습니다. NONE 동일합니다.
- 양의 경우 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT 1과 같습니다.
- 음수이면 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT -1과 같습니다. |
반환 값
절대 위치에 있는 행입니다.
발언
각 partitionBy
및 matchBy
열에는 다음 동작을 사용하여 작동할 "현재 파티션"을 정의하는 데 도움이 되는 해당 외부 값이 있어야 합니다.
- 정확히 하나의 해당 외부 열이 있는 경우 해당 값이 사용됩니다.
- 해당 외부 열이 없는 경우:
-
INDEX 먼저 해당 외부 열이 없는 모든
partitionBy
및matchBy
열을 결정합니다. - INDEX부모 컨텍스트에서 이러한 열에 대한 기존 값의 모든 조합에 대해 INDEX 평가되고 행이 반환됩니다.
- INDEX최종 출력은 이러한 행의 통합입니다.
-
INDEX 먼저 해당 외부 열이 없는 모든
- 해당하는 외부 열이 두 개 이상 있으면 오류가 반환됩니다.
matchBy
있는 경우 INDEXmatchBy
및 partitionBy
열을 사용하여 행을 식별하려고 합니다.
matchBy
없고 orderBy
및 partitionBy
내에 지정된 열이 relation
모든 행을 고유하게 식별할 수 없는 경우:
- INDEX 모든 행을 고유하게 식별하는 데 필요한 최소 개수의 추가 열을 찾으려고 합니다.
- 이러한 열을 찾을 수 있는 경우 INDEX 자동으로 이러한 새 열을
orderBy
추가하며 각 파티션은 이 새 OrderBy 열 집합을 사용하여 정렬됩니다. - 이러한 열을 찾을 수 없으면 오류가 반환됩니다.
다음과 같은 경우 빈 테이블이 반환됩니다.
- PartitionBy 열의 해당 외부 값이
relation
내에 없습니다. -
position
값은 파티션 내에 없는 위치를 나타냅니다.
relation
동일한 테이블에 정의된 계산 열 내에서 INDEX 사용되고 orderBy
생략하면 오류가 반환됩니다.
reset
시각적 계산에만 사용할 수 있으며 orderBy
또는 partitionBy
함께 사용할 수 없습니다.
reset
있는 경우 axis
지정할 수 있지만 relation
수 없습니다.
예제 1 - 계산 열
다음 DAX 쿼리는 다음과 같습니다.
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
다음 표를 반환합니다.
DimDate[CalendarYear] |
---|
2005 |
예제 2 - 계산 열
다음 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]
다음 표를 반환합니다.
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 |
예제 3 - 시각적 계산
쿼리를 DAX 시각적 계산은 다음과 같습니다.
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
매월
- 총 판매액을 포함할 수 있도록 테이블을 개선합니다.
- 해당 연도의 첫 번째 달의 차이입니다.
- 그리고 각 분기의 첫 번째 달에 대한 차이.
아래 스크린샷은 시각적 행렬과 첫 번째 시각적 계산 식을 보여줍니다.
시각적 계산