# Rank - 차트 함수

Rank()는 표현식에서 차트의 행을 평가하고, 각 행에 대해 표현식에서 평가한 차원 값의 상대적인 위치를 표시합니다. 표현식을 평가하는 경우 이 함수는 결과를 현재 열 세그먼트가 포함된 다른 행의 결과와 비교한 다음 세그먼트 내 현재 행의 순위를 반환합니다.

[Rank function](https://play.vidyard.com/21eZKs36KWVQPaL6nxT9Tt)

열 세그먼트

열 세그먼트

열 세그먼트 ![열 세그먼트를 보여주는 테이블](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/table_column_segments.png)

테이블 이외의 차트에서는 현재 열 세그먼트가 차트의 일반표 해당 부분에 나타나는 대로 정의됩니다.

구문:

Rank([TOTAL] expr[, mode[, fmt]])

반환 데이터 유형: 이중

인수:

인수

| 인수 | 설명 |
| --- | --- |
| expr | 측정할 데이터가 포함된 표현식 또는 필드입니다. |
| mode | 함수 결과의 숫자 표현을 지정합니다. |
| fmt | 함수 결과의 텍스트 표현을 지정합니다. |
| TOTAL | 차트가 1차원이거나 표현식 앞에 TOTAL 한정자가 오는 경우 이 함수는 전체 열에 따라 평가됩니다. 테이블 또는 테이블과 동등한 것에 여러 세로 차원이 있을 경우 현재 열 세그먼트에는 필드 간 정렬 순서에서 마지막 차원이 표시되는 열을 제외하고 모든 차원 열 내의 현재 행과 같은 값을 가진 행만 포함됩니다.<br><br>[집계 범위 정의](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

순위는 이중 값으로 반환되며, 각 행은 1과 현재 열 세그먼트의 행 수 사이의 정수인 고유 순위를 갖습니다.

여러 행이 동일한 순위를 공유할 경우 mode 및 fmt 매개 변수를 사용하여 텍스트 및 숫자 표현을 제어할 수 있습니다.

###### mode

두 번째 인수인 mode에는 다음 값을 적용할 수 있습니다.

modemode 예

| 값 | 설명 |
| --- | --- |
| 0(기본값) | 공유 그룹 내의 모든 순위가 전체 순위의 중간 값에서 낮은 쪽에 속할 경우 공유 그룹 내의 모든 행에 최저 순위가 부여됩니다.<br><br>공유 그룹 내의 모든 순위가 전체 순위의 중간 값에서 높은 쪽에 속할 경우 공유 그룹 내의 모든 행에 최고 순위가 부여됩니다.<br><br>공유 그룹 내의 순위가 전체 순위의 중간 값에 분포할 경우 모든 행에 전체 열 세그먼트의 최고 및 최저 순위의 평균에 해당하는 값이 부여됩니다. |
| 1 | 모든 행에 최저 순위를 부여합니다. |
| 2 | 모든 행에 평균 순위를 부여합니다. |
| 3 | 모든 행에 최고 순위를 부여합니다. |
| 4 | 첫 번째 행에 최저 순위를 부여하고, 각 행마다 순위가 하나씩 올라갑니다. |

###### fmt

세 번째 인수인 fmt에는 다음 값을 적용할 수 있습니다.

fmtfmt예

| 값 | 설명 |
| --- | --- |
| 0(기본값) | 모든 행에 낮은 값 - 높은 값을 부여합니다(예: 3 - 4). |
| 1 | 모든 행에 낮은 값을 부여합니다. |
| 2 | 첫 번째 행에 낮은 값을 부여하고 나머지 행은 공백으로 채웁니다. |

mode 4 및 fmt 2에 해당하는 행의 순서는 차트 차원의 정렬 순서에 따라 결정됩니다.

예 및 결과:

차원 Product 및 Sales에서 두 시각화를 만들고, Product 및 UnitSales에서 또 다른 시각화를 만듭니다. 아래 테이블에 표시된 것처럼 측정값을 추가합니다.

순위 예

| 예 | 결과 |
| --- | --- |
| 예 1. 차원 `Customer` 및 `Sales`와 측정값 `Rank(Sales)`를 사용하여 테이블을 만듭니다. | 결과는 차원의 정렬 순서에 따라 달라집니다. 테이블이 Customer로 정렬된 경우, 테이블에 Astrida에 대한 Sales 값에 이어 Betacab 순으로 해당하는 모든 값이 나열됩니다. Rank(Sales)의 결과는 Sales 값 12에 대해 10, Sales 값 13에 대해 9 등으로 표시되며, Sales 값 78의 경우 순위 값 1이 반환됩니다. 다음 열 세그먼트는 Betacab으로 시작되며, 여기서 세그먼트에 있는 Sales의 첫 번째 값은 12입니다. 이에 대한 Rank(Sales)의 순위 값은 11로 지정됩니다.<br><br>테이블이 Sales로 정렬된 경우, 열 세그먼트는 Sales 및 해당 Customer의 값으로 구성됩니다. 12에 해당하는 Sales 값이 두 개(Astrida 및 Betacab)이므로, 해당 열 세그먼트의 Rank(Sales) 값은 각 Customer에 대해 1-2입니다. 이는 Sales 값 12에 해당하는 Customer의 값이 둘이기 때문입니다. 4개의 값이 있다면 결과는 모든 행에서 1-4가 됩니다. 이는 인수 fmt의 기본값(0)에 대한 결과가 어떻게 나타날지 보여줍니다. |
| 예 2. Customer 차원을 Product로 교체하고 측정값 `Rank(Sales,1,2)`를 추가합니다. | 그러면 인수 mode 및 fmt가 각각 1과 2로 설정되므로, 각 열 세그먼트의 첫 번째 행에서 1이 반환되며 나머지 모든 행은 빈 채로 남습니다. |

예 1의 결과 - Customer에서 테이블 정렬:

결과 테이블

| Customer | Sales | Rank(Sales) |
| --- | --- | --- |
| Astrida | 12 | 10 |
| Astrida | 13 | 9 |
| Astrida | 20 | 8 |
| Astrida | 22 | 7 |
| Astrida | 45 | 6 |
| Astrida | 46 | 5 |
| Astrida | 60 | 4 |
| Astrida | 65 | 3 |
| Astrida | 70 | 2 |
| Astrida | 78 | 1 |
| Betcab | 12 | 11 |

예 1의 결과 - Sales에서 테이블 정렬:

결과 테이블

| Customer | Sales | Rank(Sales) |
| --- | --- | --- |
| Astrida | 12 | 1-2 |
| Betacab | 12 | 1-2 |
| Astrida | 13 | 1 |
| Betacab | 15 | 1 |
| Astrida | 20 | 1 |
| Astrida | 22 | 1-2 |
| Betacab | 22 | 1-2 |
| Betacab | 24 | 1-2 |
| Canutility | 24 | 1-2 |

` `

예에서 사용된 데이터:

`ProductData:` `Load * inline [` `Customer|Product|UnitSales|UnitPrice` `Astrida|AA|4|16` `Astrida|AA|10|15` `Astrida|BB|9|9` `Betacab|BB|5|10` `Betacab|CC|2|20` `Betacab|DD|0|25` `Canutility|AA|8|15` `Canutility|CC|0|19` `] (delimiter is '|');` ` ``Sales2013:``crosstable (Month, Sales) LOAD * inline [``Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec``Astrida|46|60|70|13|78|20|45|65|78|12|78|22``Betacab|65|56|22|79|12|56|45|24|32|78|55|15``Canutility|77|68|34|91|24|68|57|36|44|90|67|27``Divadip|57|36|44|90|67|27|57|68|47|90|80|94``] (delimiter is '|');`` `

## 자세한 정보

* [Sum - 차트 함수](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)