Above - 차트 함수
Above()는 테이블의 열 세그먼트 내의 현재 행 위에 있는 행의 표현식을 평가합니다. 계산되는 행은 offset(있는 경우) 값에 따라 달라지며 기본적으로는 바로 위에 있는 행입니다. 테이블 이외의 차트인 경우, Above()는 해당 차트의 일반표 해당 부분의 현재 행 위에 있는 행을 평가합니다.
구문:
Above([TOTAL] expr [ , offset [,count]])
반환 데이터 유형: 이중
| 인수 | 설명 |
|---|---|
| expr | 측정할 데이터가 포함된 표현식 또는 필드입니다. |
| offset |
offset n을 0보다 크게 지정하면 표현식의 평가가 현재 행보다 n 행 위로 이동됩니다. 오프셋을 0으로 지정하면 현재 행의 표현식이 평가됩니다. 오프셋을 음수로 지정하면 Above 함수가 상응하는 양수 오프셋이 있는 Below 함수와 동일하게 작동합니다. |
| count | 세 번째 인수 count를 1보다 크게 지정하면 함수에서 count 값의 범위를 반환하며, 원래 셀에서 위쪽으로 계산하여 count 테이블 행 각각에 대해 하나의 값이 반환됩니다. 이러한 형식으로 이 함수를 특별 범위 함수의 인수로 활용할 수 있습니다. 범위 함수 |
| TOTAL | 테이블이 1차원이거나 TOTAL 한정자를 인수로 사용하는 경우 현재 열 세그먼트는 항상 전체 열과 동등합니다. |
열 세그먼트의 첫 번째 행은 위에 다른 행이 없으므로 NULL 값이 반환됩니다.
제한 사항:
-
재귀 호출은 NULL을 반환합니다.
-
이 차트 함수가 차트의 표현식에서 사용되는 경우 차트의 y 값에 대한 정렬 또는 테이블의 표현식 열에 의한 정렬은 허용되지 않습니다. 따라서 해당 정렬 옵션이 자동으로 비활성화됩니다. 시각화 또는 테이블에서 이 차트 함수를 사용하면 시각화의 정렬이 이 함수에 대해 정렬된 입력으로 되돌아갑니다.
| 예제 | 결과 |
|---|---|
|
Above( Sum(Sales) ) |
현재 행 바로 위의 행에 대한 Sales 값을 반환합니다. |
예 - Above 기본 사항
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Example이라는 데이터 테이블에 로드되는 데이터 집합입니다.
-
데이터 테이블의 필드는 다음과 같습니다.
-
Year
-
Sales
-
로드 스크립트
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
-
Year
다음 측정값을 만듭니다.
-
=Sum(Sales): 연간 판매량을 찾습니다.
-
=Above(Sum(Sales)): 전년도 판매량 값을 찾습니다.
-
=Sum(Sales) - Above(Sum(Sales)): 현재 연도의 Sales 값과 이전 연도 값의 변동을 계산합니다.
-
=RangeSum(Above(Sales, 1, 2)): 지난 2년간의 판매량을 2년간 누적 집계한 결과를 보여 줍니다.
-
=(Sales - Above(Sales)) / Above(Sales): Sales의 변경 내용을 비율/백분율로 반환합니다. 이 값을 백분율로 표시하려면 숫자 서식에서 숫자 > 서식 단순 > 12.34%를 선택합니다.
| Year | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales) - Above(Sum(Sales)) | RangeSum(Above(Sales, 1, 2) | (Sales - Above(Sales)) / Above(Sales) |
|---|---|---|---|---|---|
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | - | - | 0 | - |
| 2020 | 1500 | 1000 | 500 | 1000 | 50.00% |
| 2021 | 1200 | 1500 | -300 | 2500 | -20.00% |
| 2022 | 1800 | 1200 | 600 | 2700 | 50.00% |
| 2023 | 1700 | 1800 | -100 | 3000 | -5.56% |
결과를 살펴보면 현재 기간의 Sales 값을 이전 기간과 비교할 수 있습니다.
-
Sum(Sales)- Above(Sum(Sales)) 측정값은 현재 기간을 이전 기간과 비교하여 Sales 값의 변경 내용을 반환합니다.
-
RangeSum(Above(Sales, 1, 2)) 측정값은 이전 두 Sales 값의 합계를 반환합니다.
-
(Sales - Above(Sales)) / Above(Sales) 측정값은 이전 기간과 비교하여 Sales의 변경 내용을 백분율로 반환합니다.
다음과 같이 하십시오.
막대형 차트를 만든 다음 이 필드를 차원으로 추가합니다.
-
Year
다음 측정값을 만듭니다.
-
=Sum(Sales) - Above(Sum(Sales)): 연간 변동을 반환합니다.
Above 함수에 대한 결과를 보여 주는 막대형 차트

막대형 차트에서 Above 함수를 사용하면 현재 기간의 판매량과 이전 기간의 판매량 차이를 시각적으로 비교할 수 있습니다.
예 - Above 시나리오
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Example이라는 데이터 테이블에 로드되는 데이터 집합입니다.
-
데이터 테이블의 필드는 다음과 같습니다.
-
SalesYear
-
SalesAmount
-
로드 스크립트
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
-
SalesYear
다음 측정값을 만듭니다.
-
=Sum(SalesAmount): 판매를 집계합니다.
-
=RangeSum(Above(SalesAmount, 0, RowNo())): SalesAmount 값의 누계를 계산합니다.
| SalesYear | Sum(SalesAmount) | RangeSum(Above(SalesAmount, 0, RowNo())) |
|---|---|---|
| Totals | 3000 | 0 |
| 2019 | 500 | 500 |
| 2020 | 800 | 1300 |
| 2021 | 400 | 1700 |
| 2022 | 700 | 2400 |
| 2023 | 600 | 3000 |
결과는 RangeSum 함수와 Above 함수를 조합하여 누적 실행 합계를 만드는 방법을 보여 줍니다.
다음과 같이 하십시오.
막대형 차트를 만든 다음 이 필드를 차원으로 추가합니다.
-
SalesYear
다음 측정값을 만듭니다.
-
=RangeSum(Above(SalesAmount, 0, RowNo())): 누적 판매량 값을 반환합니다.
연도별 누적 판매량 값을 보여 주는 막대형 차트

예 - Above를 사용한 차트 표현식
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Monthnames 및 Sales2013이라는 두 개의 데이터 테이블.
로드 스크립트
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
Crosstable (MonthText, 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 '|');결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
-
Customer
다음 측정값을 만듭니다.
-
=Sum(Sales): 판매량 합계를 계산합니다.
-
=Above(Sum(Sales)): 이전 행의 판매량 합계를 표시합니다.
-
=Sum(Sales)+Above(Sum(Sales)): 현재 행 바로 위의 고객 행에 대한 판매량 합계와 판매량 값 합계를 더합니다.
-
=Sum(Sales)+Above(Sum(Sales), 3): 현재 Customer의 Sum(Sales) 값을 세 행 위에 있는 Customer의 값과 합산합니다.
-
=IF(Sum(Sales)>Above(Sum(Sales)), 'Higher'): 위 행의 고객 Sum(Sales)보다 Sum(Sales) 결과가 큰 고객에게 "Higher" 레이블을 추가합니다.
| Customer | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales), 3) | IF(Sum(Sales)>Above(Sum(Sales)), 'Higher') |
|---|---|---|---|---|---|
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | - | - | - | - |
| Betacab | 539 | 587 | 1126 | - | - |
| Canutility | 683 | 539 | 1222 | - | Higher |
| Divadip | 757 | 683 | 1440 | 1344 | Higher |
Above(Sum(Sales)) 측정값은 위에 행이 없으므로 고객 Astrida에 대해 NULL을 반환합니다. 고객 Betacab에 대한 결과는 Astrida에 대한 Sum(Sales)의 값을 보여 줍니다. Canutility에 대한 결과는 Betacab에 대한 Sum(Sales)의 값을 보여 줍니다.
측정값 Sum(Sales)+Above(Sum(Sales))의 경우 Betacab 행은 행 Betacab + Astrida(539+587)에 대한 Sum(Sales) 값을 더한 결과를 반환합니다. 행 Canutility의 결과는 Canutility + Betacab(683+539)에 대한 Sum(Sales)개 값을 더한 결과를 보여 줍니다.
측정값 Sum(Sales)+Above(Sum(Sales), 3)에 인수 offset이 3으로 설정되었습니다. 이는 현재 행보다 3행 위에 있는 행의 값을 가져옵니다. 이는 현재 Customer의 Sum(Sales) 값을 세 행 위의 Customer 값에 추가합니다. 예를 들어, Divadip에 대한 Sum(Sales)는 Divadip보다 3행 위에 있는 고객인 Astrida의 Sum(Sales)에 추가됩니다. 첫 번째 3개 Customer 행에 대해 반환된 값은 데이터가 없으므로 null입니다.
측정값 IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')는 고객 Canutility 및 Divadip에 대해 각각 판매 실적이 위 행의 고객 판매량 합계인 Betacab 및 Canutility보다 높기 때문에 값 Higher를 반환합니다.
예 - Above 시나리오(정렬 순서 기반)
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Monthnames, Sales2013, Product라는 세 개의 데이터 테이블.
로드 스크립트
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
Crosstable (MonthText, 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 '|');
Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
-
Customer
-
Product
-
Month
다음 측정값을 만듭니다.
-
=Sum(Sales): 판매량 합계를 계산합니다.
-
=Above(Sum(Sales)): 이전 행의 판매량 합계를 표시합니다.
| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
|---|---|---|---|---|
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | AA | Feb | 60 | 46 |
| Astrida | AA | Mar | 70 | 60 |
| Astrida | AA | Apr | 13 | 70 |
| Astrida | AA | May | 78 | 13 |
| Astrida | AA | Jun | 20 | 78 |
| Astrida | AA | Jul | 45 | 20 |
| Astrida | AA | Aug | 65 | 45 |
| Astrida | AA | Sep | 78 | 65 |
| Astrida | AA | Oct | 12 | 78 |
| Astrida | AA | Nov | 78 | 12 |
| Astrida | AA | Dec | 22 | 78 |
| Astrida | BB | Jan | 46 | - |
| Astrida | BB | Feb | 60 | 46 |
차원이 두 개 이상인 차트의 경우 Above, Below, Top 및 Bottom 함수를 포함하는 표현식의 결과는 Qlik Sense에 따라 열 차원이 정렬되는 순서에 따라 다릅니다. Qlik Sense에서는 차원의 마지막 정렬 결과인 열 세그먼트에 기반하여 해당 함수를 평가합니다. 열 정렬 순서는 속성 패널의 정렬에서 제어되며 이 순서가 반드시 테이블에 열이 표시되는 순서는 아닙니다.
결과 테이블에서 마지막으로 정렬된 차원은 Month이므로 Above 함수는 월을 기준으로 평가합니다. 각 달(Jan ~ Dec) (열 세그먼트)에 해당하는 각 Product 값에 대해 일련의 결과가 존재합니다. 이는 일련의 다음 열 세그먼트 즉, 다음 Product에 대한 각 Month로 이어집니다. 각 Product에 대한 각 Customer 값에 해당하는 열 세그먼트 값이 존재하게 됩니다.
예 - Above 시나리오(다른 정렬 순서 사용)
개요
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Monthnames, Sales2013, Product라는 세 개의 데이터 테이블.
로드 스크립트
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
Crosstable (MonthText, 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 '|');
Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
-
Customer
-
Product
-
Month
다음 측정값을 만듭니다.
-
=Sum(Sales): 판매량 합계를 계산합니다.
-
=Above(Sum(Sales)): 이전 행의 판매량 합계를 표시합니다.
속성 패널에서 표의 정렬 순서를 변경합니다. 정렬을 선택한 다음 제품 차원을 정렬 순서의 세 번째 위치로 끌어서 놓습니다.
| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
|---|---|---|---|---|
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | - |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | - |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | - |
| Astrida | BB | Apr | 13 | 13 |
| Astrida | AA | May | 78 | - |
| Astrida | BB | May | 78 | 78 |
| Astrida | AA | Jun | 20 | - |
| Astrida | BB | Jun | 20 | 20 |
| Astrida | AA | Jul | 45 | - |
| Astrida | BB | Jul | 45 | 45 |
결과 테이블에서 마지막으로 정렬된 차원은 Product입니다. 각 Product에 대해 Above 함수가 평가되며, 제품이 AA 및 BB 두 가지뿐이므로 각 시리즈에서 Null이 아닌 결과는 하나뿐입니다. 월 Jan의 행 BB에서 Above(Sum(Sales))의 값은 46입니다. AA행의 값은 Null입니다. AA 위의 Product 값이 없으므로 모든 달의 각 AA 행의 값은 항상 Null이 됩니다. 두 번째 시리즈는 Feb 달의 Customer 값, Astrida의 AA 및 BB에 대해 평가됩니다. Astrida에 대한 모든 월이 평가되면 두 번째 고객 Betacab에 대해서도 시퀀스가 반복됩니다.
예 - RangeAvg와 함께 Above 함수 사용
개요
Above 함수는 범위 함수에 대한 입력으로 사용할 수 있습니다. 이 예에서는 RangeAvg의 함수를 사용합니다.
데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Monthnames, Sales2013, Product라는 세 개의 데이터 테이블.
로드 스크립트
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, MonthNumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
Crosstable (MonthText, 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 '|');
Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.
-
Customer
다음 측정값을 만듭니다.
-
=RangeAvg (Above(Sum(Sales),1,3))
| Customer | RangeAvg (Above(Sum(Sales),1,3)) |
|---|---|
| Totals | - |
| Astrida | - |
| Betacab | 587 |
| Canutility | 563 |
| Divadip | 603 |
Above 함수의 인수에서 offset은 1로 설정되고 count는 3으로 설정됩니다. 이 함수는 열 세그먼트(행이 있는 곳)에서 현재 행 바로 위에 있는 세 행에 대한 표현식 Sum(Sales)의 결과를 찾습니다. 이 세 값은 제공된 숫자 범위에서 값의 평균을 구하는 RangeAvg 함수에 대한 입력으로 사용됩니다.