# Bottom - 차트 함수

Bottom()은 테이블의 열 세그먼트 내에 있는 마지막(맨 아래) 행의 표현식을 평가합니다. 계산되는 행은 offset(있는 경우) 값에 따라 달라지며 기본적으로는 맨 아래에 있는 행입니다. 테이블 이외의 차트에서는 해당 차트의 일반표 해당 부분에 있는 현재 열의 마지막 행을 평가합니다.

구문:

Bottom([TOTAL] expr [ , offset [,count ]])

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| expr | 측정할 데이터가 포함된 표현식 또는 필드입니다. |
| offset | offset n를 1보다 크게 지정하면 표현식 평가가 맨 아래 행보다 n행 위로 이동됩니다.<br><br>오프셋을 음수로 지정하면 Bottom 함수가 상응하는 양수 오프셋이 있는 Top 함수와 동일하게 작동합니다. |
| count | 세 번째 파라메타 count를 1보다 크게 지정하면 이 함수에서 하나가 아닌 count의 범위 값을 반환하며, 현재 열 세그먼트의 마지막 count 행 각각에 대해 하나의 값을 반환합니다. 이러한 형식으로 이 함수를 특별 범위 함수의 인수로 활용할 수 있습니다. [범위 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | 테이블이 1차원이거나 TOTAL 한정자를 인수로 사용하는 경우 현재 열 세그먼트는 항상 전체 열과 동등합니다.<br><br>[집계 범위 정의](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

정보 메모열 세그먼트는 현재 정렬 순서에서 차원에 대해 동일한 값을 갖는 셀의 연속된 하위 집합으로 정의됩니다. 인터 레코드 차트 함수는 동등한 일반표 차트의 가장 오른쪽 차원을 제외한 열 세그먼트에서 계산됩니다. 차트에 차원이 하나만 있는 경우 또는 TOTAL 한정자가 지정된 경우는 표현식이 전체 테이블을 평가합니다.

정보 메모테이블 또는 테이블과 동등한 것에 여러 세로 차원이 있을 경우 현재 열 세그먼트에는 필드 간 정렬 순서에서 마지막 차원이 표시되는 열을 제외하고 모든 차원 열 내의 현재 행과 같은 값을 가진 행만 포함됩니다.

제한 사항:

* 재귀 호출은 NULL을 반환합니다.

* 이 차트 함수가 차트의 표현식에서 사용되는 경우 차트의 y 값에 대한 정렬 또는 테이블의 표현식 열에 의한 정렬은 허용되지 않습니다. 따라서 해당 정렬 옵션이 자동으로 비활성화됩니다. 시각화 또는 테이블에서 이 차트 함수를 사용하면 시각화의 정렬이 이 함수에 대해 정렬된 입력으로 되돌아갑니다.

예: 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `Bottom( Sum(Sales) )` | 표의 열 세그먼트의 마지막(맨 아래) 행에 대한 `Sales` 값을 반환합니다. |

## 예 - Bottom 기본 사항

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)

#### 차트 표현식

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `Year`

  * `Sales`

로드 스크립트

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* `Year`

다음 측정값을 만듭니다.

* `=Sum(Sales)`: 연간 판매량을 찾습니다.

* `=Bottom(Sum(Sales))`: 지난 1년간의 판매량 값을 찾습니다.

* `=Sum(Sales) - Bottom(Sum(Sales))`: 현재 연도의 `Sales` 값과 작년 값의 변동을 계산합니다.

* `=Sum(Sales)+Bottom(Sum(Sales), 3)`: 현재 연도의 판매량 값과 지난 3년차 판매량 값의 합계를 계산합니다.

* `=(Sales - Bottom(Sales)) / Bottom(Sales)`: 작년과 비교한 `Sales`의 변경 내용율을 비율/백분율로 반환합니다. 이 값을 백분율로 표시하려면 숫자 서식에서 숫자 &gt; 서식 단순 &gt; 12.34%를 선택합니다.

차원 `Year`에 대한 테이블을 오름차순으로 정렬합니다.

결과 테이블

| Year | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) - Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales), 3) | (Sales - Bottom(Sales)) / Bottom(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1700 | 5500 | 8400 | - |
| 2019 | 1000 | 1700 | -700 | 2200 | -41.18% |
| 2020 | 1500 | 1700 | -200 | 2700 | -11.76% |
| 2021 | 1200 | 1700 | -500 | 2400 | -29.41% |
| 2022 | 1800 | 1700 | 100 | 3000 | 5.88% |
| 2023 | 1700 | 1700 | 0 | 2900 | 0.00% |

결과를 살펴보면 현재 기간의 `Sales` 값을 마지막 기간 또는 최근 기간의 값과 비교할 수 있습니다.

* `Sum(Sales) - Bottom(Sum(Sales))` 측정값은 현재 기간과 최근 기간을 비교하여 `Sales` 값의 변경 내용을 반환합니다.

* `Sum(Sales)+Bottom(Sum(Sales), 3)` 측정값은 현재 행과 세 번째로 최근 기간에 대한 `Sales`의 합계를 반환합니다.

* `(Sales - Bottom(Sales)) / Bottom(Sales)` 측정값은 최근 기간과 비교한 `Sales`의 변경 내용을 백분율로 반환합니다.

팁 메모이 기능은 테이블 이외의 차트(예: 막대형 차트)에서 사용할 수 있습니다.

다음과 같이 하십시오.

막대형 차트를 만든 다음 이 필드를 차원으로 추가합니다.

* `Year`

다음 측정값을 만듭니다.

* `=Sum(Sales) - Bottom(Sum(Sales))`: 현재 기간과 최근 기간 사이의 판매량 변동을 반환합니다.

Bottom 함수에 대한 결과를 보여 주는 막대형 차트

Bottom 함수에 대한 결과를 보여 주는 막대형 차트

BottomBottom 함수에 대한 결과를 보여 주는 막대형 차트 ![현재 기간과 지난 기간의 판매량 차이를 보여 주는 막대형 차트입니다.](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-bottom-example.png)

막대형 차트에서 `Bottom` 함수를 사용하면 현재 기간의 판매량과 최근 기간의 판매량 차이를 시각적으로 비교할 수 있습니다.

## 예 - Bottom 시나리오

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)

#### 차트 표현식

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

로드 스크립트

```
Example:
LOAD * INLINE [
OrderID, Product, SalesValue, OrderDate
1, "Product A", 500, '2023-01-10'
2, "Product B", 300, '2023-01-15'
3, "Product C", 450, '2023-02-01'
4, "Product D", 700, '2023-02-20'
5, "Product E", 350, '2023-03-05'
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* `Product`

다음 측정값을 만듭니다.

* `=RangeAvg (Bottom(Sum(SalesValue),1,3))`: 최근의 3개 행의 평균을 반환합니다.

* `=Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3))`: 현재 행과 최근 3개 행의 평균 간의 변동을 계산합니다.

* `=Sum(SalesValue)`: 현재 행의 총 `SalesValue`을 계산합니다.

결과 테이블

| Product | RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 500 | 1800 | 2300 |
| 2019 | 500 | 0 | 500 |
| 2020 | 500 | -200 | 300 |
| 2021 | 500 | -50 | 450 |
| 2022 | 500 | 200 | 700 |
| 2023 | 500 | -150 | 350 |

결과는 `RangeSum` 함수와 `Bottom` 함수를 조합하여 판매량 값을 분석하고 비교하는 방법을 보여 줍니다.

## 예 - Bottom를 사용한 차트 표현식

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)

#### 차트 표현식

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `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)`: 판매량 합계를 계산합니다.

* `=Bottom(Sum(Sales))`: 하단 행에 `Customer`의 판매량 합계를 표시합니다.

* `=Sum(Sales)+Bottom(Sum(Sales))`: 현재 `Customer`의 `Sum(Sales)` 값을 아래쪽 행의 `Customer`에 추가합니다.

* `=Sum(Sales)+Bottom(Sum(Sales), 3)`: 현재 `Customer`의 `Sum(Sales)` 값을 맨 아래 행에서 세 번째인 `Customer` 값에 추가합니다.

결과 테이블

| Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales), 3) |
| --- | --- | --- | --- | --- |
| Totals | 2566 | 757 | 3323 | 3105 |
| Astrida | 587 | 757 | 1344 | 1126 |
| Betacab | 539 | 757 | 1296 | 1078 |
| Canutilty | 683 | 757 | 1440 | 1222 |
| Divadip | 757 | 757 | 1514 | 1296 |

측정값 `Bottom(Sum(Sales))`은 모든 행에 대해 `757`을 반환합니다. 이는 맨 아래 행의 값인 `Divadip`이기 때문입니다.

측정값 `Sum(Sales)+Bottom(Sum(Sales))`의 경우 행 `Astrida`는 `1344`를 반환합니다. 이는 `Astrida`의 `Sum(Sales)` 값과 맨 아래 행의 `Customer`인 `Divadip`를 더한 결과입니다.

측정값 `Sum(Sales)+Bottom(Sum(Sales), 3)`의 경우 인수 `offset`은 `3`으로 설정됩니다. 표현식은 현재 행에 `Sum(Sales)` 값을 추가하고 맨 아래에서 세 번째 행인 `Betacab` 값을 추가합니다. 예를 들어, 고객 `Astrida`에 대해 값 `1126`이 반환됩니다. 이는 `Astrida`에 대한 `Sum(Sales)` 값과 `Betacab`에 대한 `SumSales` 값을 더한 결과입니다(`587`+`539`).

## 자세한 정보

* [Top - 차트 함수](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)