다음을 통해 공유


OFFSET

적용 대상:계산 열계산 테이블Measure시각적 계산

지정된 or현재 행offset 앞에 배치된 단일 행을 반환합니다. 현재 행을 단일 행으로 추론할 수 없는 If 여러 행이 반환될 수 있습니다.

통사론

OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

매개 변수

학기 정의
delta 데이터를 가져올 현재 행(양수 value) or 이전 행 수(음수 value)입니다. 스칼라 DAX반환하는 value 식일 수 있습니다.
relation (선택 사항) 출력 행이 반환되는 테이블 식입니다. 지정된
IfallpartitionBy 열은 or 테이블을 related 해당 열에서 나와야 합니다.
If 생략:
- orderBy 명시적으로 지정해야 합니다.
- AllorderByandpartitionBy 식은 단일 테이블에서 and 정규화된 열 이름이어야 합니다.
- 기본값은 ALLSELECTEDallorderByand 열의 partitionBy()입니다.
axis (선택 사항) 시각적 셰이프의 축입니다. 시각적 계산에서만 사용할 수 andrelation대체합니다.
orderBy (선택 사항) 각 파티션의 정렬 방식을 ORDERBY 식을 포함하는 define() 절입니다.
If 생략:
- relation 명시적으로 지정해야 합니다.
- relation이미 지정된 notpartitionBy 모든 열의 순서 지정이 기본값입니다.
blanks (선택 사항) 정렬할 때 blankvalues 처리하는 방법을 정의하는 열거형입니다.
이 매개 변수는 나중에 사용하도록 예약되어 있습니다.
현재 지원되는 유일한 valueDEFAULT있습니다. 여기서 숫자 values 동작은 0부터 음수 blank사이에 순서가 valuesandvalues. 문자열에 대한 동작은 blankvalues 빈 문자열을 포함하여 문자열을 all 전에 순서가 지정됩니다.
partitionBy (선택 사항) PARTITIONBY 분할되는 방법을 define 열이 포함된 relation() 절입니다. 생략된
Ifrelation 단일 파티션으로 처리됩니다.
matchBy (선택 사항) 현재 행을 식별하기 MATCHBY 데이터를 일치시키는 방법을 define 열이 포함된 and() 절입니다.
reset (선택 사항) 시각적 계산에서만 사용할 수 있습니다. 시각적 셰이프의 열 계층 구조 수준을 if 계산이 다시 설정되는 and 나타냅니다. 허용되는 valuesNONE, LOWESTPARENT, HIGHESTPARENTor 정수입니다. 동작은 정수 sign따라 달라집니다.
- If 0 or 생략하면 계산이 다시 설정되지 not. NONE동일합니다.
- If 양의 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT 1과 같습니다.
- 음수 If 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT -1과 같습니다.

반환 value

or행을 하나 더 relation.

발언

Except 테이블 함수에 의해 추가된 열의 DAXrelationmatchBy 있을 때 not각 열에 대해 or 있는 matchByandpartitionBy각 열에 matchBy 다음 동작으로 작동할 현재 행을 value 데 도움이 되는 해당 외부 define 있어야 합니다.

  • 정확히 하나의 해당 외부 열이 있는 If 해당 value 사용됩니다.
  • 해당 외부 열이 없는 If 다음을 수행합니다.
    • OFFSET 해당 외부 열이 없는 first 열을 all 결정합니다.
    • values부모 컨텍스트에서 이러한 열에 대한 기존 OFFSET 모든 조합에 대해 행이 반환될 OFFSETand 평가됩니다.
    • OFFSET최종 출력은 이러한 행의 union.
  • 두 개 이상의 해당 외부 열이 있는 Iferror 반환됩니다.

If 테이블 함수에서 all열의 relationDAXerror 반환됩니다.

If matchBy OFFSET matchBy and partitionBy 열을 사용하여 행을 식별하려고 합니다. If matchBy not and orderBy 내에 지정된 열이 and모든 행을 고유하게 식별할 수 partitionByrelation 있습니다.

  • OFFSET 모든 행을 고유하게 식별하는 데 필요한 최소 개수의 추가 열을 find 합니다.
  • 이러한 열을 찾을 수 IfOFFSET 이러한 새 열을 orderBy자동으로 추가합니다. and 각 파티션은 이 새 OrderBy 열 집합을 사용하여 정렬됩니다.
  • 이러한 열을 찾을 수 없는 Iferror 반환됩니다.

빈 테이블은 다음 if반환됩니다.

  • value OrderBy or 열의 해당 외부 PartitionBynot내에 relation 있습니다.
  • delta value 인해 파티션 내에 not 행으로 이동하게 됩니다.

If OFFSET relation동일한 테이블에 정의된 계산 열 내에서 사용되며 andorderBy 생략되고 error 반환됩니다.

reset 시각적 계산에만 사용할 수 andorderByorpartitionBy함께 사용할 수 없습니다. If reset axis 지정할 수 있지만 relation 수 없습니다.

예제 1 - 계산 열

다음 DAX 쿼리는 다음과 같습니다.

DEFINE
VAR vRelation = SUMMARIZECOLUMNS ( 
                    DimProductCategory[EnglishProductCategoryName], 
                    DimDate[CalendarYear], 
                    "CurrentYearSales", SUM(FactInternetSales[SalesAmount]) 
                  )
EVALUATE
ADDCOLUMNS (
    vRelation, 
    "PreviousYearSales", 
    SELECTCOLUMNS(
        OFFSET ( 
                -1, 
                vRelation, 
                ORDERBY([CalendarYear]), 
                PARTITIONBY([EnglishProductCategoryName])
        ),
        [CurrentYearSales]
    )
)

각 product 범주 andcalendaryear대한 총 판매액과 previousyear해당 범주의 총 매출을 요약하는 테이블을 반환합니다.

예제 2 - measure

다음 DAX 쿼리는 다음과 같습니다.

DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
    DimDate[CalendarYear],
    "CurrentYearSales", DimProduct[CurrentYearSales],
    "PreviousYearSales", DimProduct[PreviousYearSales]
)

OFFSET measure()를 사용하여 각 calendaryearandpreviousyear총 매출을 요약하는 테이블을 반환합니다.

예제 3 - 계산 열

다음 DAX 쿼리는 다음과 같습니다.

EVALUATE
ADDCOLUMNS (
    FactInternetSales,
    "Previous Sales Amount",
        SELECTCOLUMNS (
            OFFSET (
                -1,
                FactInternetSales,
                ORDERBY ( FactInternetSales[SalesAmount], DESC ),
                PARTITIONBY ( FactInternetSales[ProductKey] ),
                MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
            ),
            FactInternetSales[SalesAmount]
        )
)

SalesOrderLineNumber previous SalesOrderLineNumber에서 현재 판매가 식별되는 판매 금액의 내림차순으로 각 판매의 product 판매 금액이 동일한 and열을 추가하여 FactInternetSales 테이블을 반환합니다. MATCHBY않으면 FactInternetSales 테이블에 키 열이 없으므로 쿼리는 error 반환합니다.

예제 4 - 시각적 계산

다음 시각적 계산 DAX 쿼리:

SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))

동일한 month내에서 각 andpreviousyear 간의 총 판매액 차이를 반환합니다.

아래 스크린샷은 시각적 계산 식에 and 시각적 행렬을 보여줍니다.

시각적 계산

INDEX ORDERBY PARTITIONBY MATCHBY WINDOW RANK ROWNUMBER