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