순위 계산

완료됨

RANKX DAX 함수는 순위를 계산하는 데 사용할 수 있는 특수 반복기 함수입니다. 구문은 다음과 같습니다.

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

모든 반복기 함수와 마찬가지로 테이블과 식을 전달해야 합니다. 필요에 따라 순위 값을 전달하거나, 정렬 방향을 설정하거나, 값이 동일할 때 순위를 처리하는 방법을 결정할 수 있습니다.

정렬 방향

정렬 방향은 오름차순 또는 내림차순입니다. 수익 금액과 같이 유리한 것의 순위를 지정하는 경우 가장 높은 수익이 가장 높은 순위에 오도록 내림차순을 사용할 수 있습니다. 고객 불만과 같이 불리한 것의 순위를 지정하는 경우에는 가장 낮은 불만 수가 가장 높은 순위에 오도록 오름차순을 사용할 수 있습니다. 순서 인수를 전달하지 않으면 함수는 0(영)(내림차순의 경우)을 사용합니다.

동률 처리

순위 값을 건너뛰거나 동률 다음의 순위 값을 사용하는 조밀한 순위를 사용하여 동률을 처리할 수 있습니다. 동률 인수를 전달하지 않으면 함수는 건너뛰기를 사용합니다. 이 단원의 뒷부분에서 각 동률 인수의 예제를 사용해볼 것입니다.

순위 측정값 만들기

Product 테이블에 다음 측정값을 추가합니다.

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity]
)

보고서의 Page 2에 있는 테이블 시각적 개체에 Product Quantity Rank 측정값을 추가합니다. 이 테이블 시각적 개체는 자전거 제품을 그룹화하고 내림차순으로 제품을 정렬하여 수량을 표시합니다.

RANKX 함수는 ALL DAX 함수에서 반환하는 테이블을 반복합니다. ALL 함수는 모델 테이블의 모든 행 또는 하나 이상의 열에 있는 값을 반환하는 데 사용되며 모든 필터를 무시합니다. 따라서 이 경우 Product 테이블의 모든 Product 열 값으로 구성된 테이블을 반환합니다. 테이블 시각적 개체가 제품(Product 테이블에 대한 필터)을 기준으로 그룹화하기 때문에 RANKX 함수는 ALL 함수를 사용해야 합니다.

테이블 시각적 개체에서 두 제품이 순위 10번에서 동률을 이루어 다음 제품의 순위는 12번이 되었습니다. 이 시각적 개체는 건너뛰기 동률 인수를 사용하는 예입니다.

이미지는 Bike Sales라는 테이블 시각적 개체를 보여 줍니다. 여기에는 다음 세 개의 열이 있습니다. Product, Quantity 및 Product Quantity Rank. 테이블 행은 Quantity 기준으로 내림차순으로 정렬됩니다. 두 제품이 순위 10번을 공유하며 다음 제품은 순위가 12번입니다.

다음 작업은 다음 논리를 입력하여 조밀한 순위를 사용하도록 Product Quantity Rank 측정값 정의를 수정하는 것입니다.

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity],
    ,
    ,
    DENSE
)

테이블 시각적 개체에서 건너뛴 순위가 더 이상 존재하지 않습니다. 순위 10번에서 동률을 이룬 두 제품의 다음 순위는 11번입니다.

이미지는 Bike Sales라는 테이블 시각적 개체를 보여 줍니다. 여기에는 다음 세 개의 열이 있습니다. Product, Quantity 및 Product Quantity Rank. 테이블 행은 Quantity 기준으로 내림차순으로 정렬됩니다. 두 제품이 순위 10번을 공유하며 다음 제품은 순위가 11번입니다.

Product Quantity Rank의 시각적 개체 합계는 1입니다. 그 이유는 모든 제품의 합계에 순위가 지정되기 때문입니다.

이미지는 Product Quantity Rank 합계가 1임을 보여 줍니다.

전체 제품의 순위를 지정하는 것은 적절하지 않으므로, 이제 다음 논리를 사용하여 단일 제품이 필터링되지 않는 한 BLANK를 반환하도록 측정값 정의를 수정합니다.

Product Quantity Rank =
IF(
    HASONEVALUE('Product'[Product]),
    RANKX(
        ALL('Product'[Product]),
        [Quantity],
        ,
        ,
        DENSE
    )
)

이미지는 Product Quantity Rank 합계가 BLANK임을 보여 줍니다.

이제 총 Product Quantity Rank가 BLANK입니다(HASONEVALUE DAX 함수를 사용하여 Product 테이블의 Product 열이 필터 컨텍스트의 단일 값을 갖는지 여부를 테스트해 얻은 결과). 이는 각 제품 그룹에 해당하는 것이고 모든 제품을 나타내는 합계의 경우는 아닙니다.

필터 컨텍스트 및 HASONEVALUE 함수는 필터 컨텍스트 모듈에서 소개합니다.