# monthend 스크립트 및 차트 함수

이 함수는 `date`를 포함하는 월의 마지막 날의 마지막 밀리초의 타임스탬프에 해당하는 값을 반환합니다. 기본 출력 형식은 스크립트에 설정된 `DateFormat`입니다.

구문:

MonthEnd(date[, period\_no])

즉, `monthend()` 함수는 이 날짜가 속하는 월을 확인합니다. 그런 다음 해당 월의 마지막 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다.

`monthend` 함수 다이어그램.

`monthend` 함수 다이어그램.

`monthend`monthend 함수 다이어그램. ![선택한 월의 최신 타임스탬프를 식별하기 위해 monthend 함수를 사용하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-diagram1.png)

monthend를 사용하는 경우

`monthend()` 함수는 아직 발생하지 않은 월의 부분을 사용하도록 계산하려는 경우 표현식의 일부로 사용됩니다. 예를 들어 해당 월에 아직 발생하지 않은 총 이자를 계산하려는 경우에 사용할 수 있습니다.

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| date | 평가할 날짜 또는 타임스탬프입니다. |
| period\_no | period\_no는 정수이며, 0이거나 생략되는 경우는 date를 포함하는 월을 나타냅니다. period\_no가 음수 값일 경우 이전 달, 양수 값일 경우 다음 달을 나타냅니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: MM/DD/YYYY. 날짜 형식은 데이터 로드 스크립트의 `SET DateFormat` 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 [응용 프로그램 및 스크립트에 대한 지역 설정 수정](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)를 참조하십시오.

응용 프로그램의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.

응용 프로그램 작성자인 경우 만든 응용 프로그램의 기본 지역을 설정할 수 있습니다. 자세한 내용은 [Qlik Cloud 분석에서 앱 및 스크립트 만들기를 위한 기본 지역 설정 지정](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)을 참조하십시오.

함수 예

| 예제 | 결과 |
| --- | --- |
| `monthend('02/19/2012')` | 02/29/2012 23:59:59을 반환합니다. |
| `monthend('02/19/2001', -1)` | 01/31/2001 23:59:59을 반환합니다. |

## 예 1 – 기본 예

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### 로드 스크립트 및 결과

개요

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

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

* '`Transactions`'라는 테이블에 로드되는 2022년 트랜잭션 집합을 포함하는 데이터 집합.

* `DateFormat` 시스템 변수 `MM/DD/YYYY` 형식의 날짜 필드.

* 다음을 포함하는 선행 LOAD 문:

  * '`end_of_month`' 필드로 설정되는 `monthend()` 함수.

  * '`end_of_month_timestamp`' 필드로 설정되는 `timestamp` 함수.

로드 스크립트

```
SET DateFormat='MM/DD/YYYY'; 

Transactions: 
    Load 
    *, 
    monthend(date) as end_of_month, 
    timestamp(monthend(date)) as end_of_month_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

결과

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

* `id`
* `date`
* `end_of_month`
* `end_of_month_timestamp`

결과 테이블

| ID | 날짜 | end\_of\_month | end\_of\_month\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8189 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8190 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |

’`end_of_month`’ 필드는 `monthend()` 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.

`monthend()` 함수는 날짜 값이 속하는 월을 식별하고 해당 월의 마지막 밀리초에 대한 타임스탬프를 반환합니다.

3월이 선택된 `monthend` 함수의 다이어그램.

3월이 선택된 `monthend` 함수의 다이어그램.

3월이 선택된 `monthend`monthend 함수의 다이어그램. ![선택한 월의 최신 타임스탬프를 식별하기 위해 monthend 함수를 사용하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example1-diagram.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthend()` 함수는 해당 월의 마지막 밀리초, 즉 3월 31일 오후 11:59:59를 반환합니다.

## 예 2 – period\_no

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### 로드 스크립트 및 결과

개요

첫 번째 예와 동일한 데이터 집합 및 시나리오가 사용됩니다.

이 예에서 작업은 트랜잭션이 발생하기 전 월의 끝에 대한 타임스탬프를 반환하는 필드 '`previous_month_end`'를 만드는 것입니다.

로드 스크립트

```
SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
    Load 
    *, 
    monthend(date,-1) as previous_month_end, 
    timestamp(monthend(date,-1)) as previous_month_end_timestamp 
    ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

결과

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

* `id`
* `date`
* `previous_month_end`
* `previous_month_end_timestamp`

결과 테이블

| ID | 날짜 | previous\_month\_end | previous\_month\_end\_timestamp |
| --- | --- | --- | --- |
| 8188 | 1/7/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8189 | 1/19/2022 | 12/31/2021 | 12/31/2021 11:59:59 PM |
| 8190 | 2/5/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8191 | 2/28/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8192 | 3/16/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8193 | 4/1/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8194 | 5/7/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8195 | 5/16/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8196 | 6/15/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8197 | 6/26/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8198 | 7/9/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 7/22/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 7/23/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8201 | 7/27/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8202 | 8/2/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8203 | 8/8/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8204 | 8/19/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8205 | 9/26/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8206 | 10/14/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8207 | 10/29/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |

`monthend()` 함수는 `period_no` `-1`을 오프셋 인수로 사용하여 트랜잭션이 발생한 월을 먼저 식별합니다. 그런 다음 한 달 전으로 시프트하고 해당 월의 마지막 밀리초를 식별합니다.

period\_no 변수를 사용하는 `monthend` 함수의 다이어그램.

period\_no 변수를 사용하는 `monthend` 함수의 다이어그램.

period\_no 변수를 사용하는 `monthend`monthend 함수의 다이어그램. ![monthend() 함수에 설정된 월 이전의 최신 타임스탬프를 식별하기 위해 monthend 함수를 period_no 변수와 함께 사용하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example2-diagram.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthend()` 함수는 트랜잭션이 발생하기 전 월이 2월임을 식별합니다. 그런 다음 해당 월의 마지막 밀리초인 2월 28일 오후 11:59:59를 반환합니다.

## 예 3 – 차트 예

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### 로드 스크립트 및 차트 표현식

개요

첫 번째 예와 동일한 데이터 집합 및 시나리오가 사용됩니다.

이 예에서 데이터 집합은 변경되지 않고 응용 프로그램에 로드됩니다. 트랜잭션이 발생한 월말에 대한 타임스탬프를 응용 프로그램의 차트에서 측정값으로 반환하는 계산을 만드는 작업입니다.

로드 스크립트

```
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,1/7/2022,17.17 
8189,1/19/2022,37.23 
8190,2/28/2022,88.27 
8191,2/5/2022,57.42 
8192,3/16/2022,53.80 
8193,4/1/2022,82.06 
8194,5/7/2022,40.39 
8195,5/16/2022,87.21 
8196,6/15/2022,95.93 
8197,6/26/2022,45.89 
8198,7/9/2022,36.23 
8199,7/22/2022,25.66 
8200,7/23/2022,82.77 
8201,7/27/2022,69.98 
8202,8/2/2022,76.11 
8203,8/8/2022,25.12 
8204,8/19/2022,46.23 
8205,9/26/2022,84.21 
8206,10/14/2022,96.24 
8207,10/29/2022,67.67 
]; 
```

결과

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

* `date`

* `id`

트랜잭션이 발생한 월의 끝 날짜를 계산하려면 다음 측정값을 만듭니다.

* `=monthend(date)`
* `=timestamp(monthend(date))`

결과 테이블

| ID | 날짜 | =monthend(date) | =timestamp(monthend(date)) |
| --- | --- | --- | --- |
| 8188 | 10/14/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8189 | 10/29/2022 | 10/31/2022 | 10/31/2022 11:59:59 PM |
| 8190 | 9/26/2022 | 09/30/2022 | 9/30/2022 11:59:59 PM |
| 8191 | 8/2/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8192 | 8/8/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8193 | 8/19/2022 | 08/31/2022 | 8/31/2022 11:59:59 PM |
| 8194 | 7/9/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8195 | 7/22/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8196 | 7/23/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8197 | 7/27/2022 | 07/31/2022 | 7/31/2022 11:59:59 PM |
| 8198 | 6/15/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8199 | 6/26/2022 | 06/30/2022 | 6/30/2022 11:59:59 PM |
| 8200 | 5/7/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8201 | 5/16/2022 | 05/31/2022 | 5/31/2022 11:59:59 PM |
| 8202 | 4/1/2022 | 04/30/2022 | 4/30/2022 11:59:59 PM |
| 8203 | 3/16/2022 | 03/31/2022 | 3/31/2022 11:59:59 PM |
| 8204 | 2/5/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8205 | 2/28/2022 | 02/28/2022 | 2/28/2022 11:59:59 PM |
| 8206 | 1/7/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |
| 8207 | 1/19/2022 | 01/31/2022 | 1/31/2022 11:59:59 PM |

‘`end_of_month`’ 측정값은 `monthend()` 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 차트에서 만들어집니다.

`monthend()` 함수는 날짜 값이 속하는 월을 식별하고 해당 월의 마지막 밀리초에 대한 타임스탬프를 반환합니다.

period\_no 변수를 사용하는 `monthend` 함수의 다이어그램.

period\_no 변수를 사용하는 `monthend` 함수의 다이어그램.

period\_no 변수를 사용하는 `monthend`monthend 함수의 다이어그램. ![](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthend-example3-diagram.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthend()` 함수는 해당 월의 마지막 밀리초, 즉 3월 31일 오후 11:59:59를 반환합니다.

## 예 4 – 시나리오

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/monthend.htm)

#### 로드 스크립트 및 결과

개요

이 예에서 데이터 집합은 '`Employee_Expenses`'라는 테이블에 로드됩니다. 테이블에는 다음 필드가 포함됩니다.

* 직원 ID

* 직원 이름

* 각 직원의 평균 일일 비용 청구

최종 사용자는 직원 ID 및 직원 이름별로 해당 월에 남은 기간 동안 예상되는 비용 청구를 표시하는 차트를 원합니다.

로드 스크립트

```
Employee_Expenses: 
Load 
* 
Inline  
[ 
employee_id,employee_name,avg_daily_claim 
182,Mark, $15 
183,Deryck, $12.5  
184,Dexter, $12.5 
185,Sydney,$27 
186,Agatha,$18 
]; 
```

결과

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

* `employee_id`
* `employee_name`

누적 이자를 계산하려면 다음 측정값을 만듭니다.

`=floor(monthend(today(1),0)-today(1))*avg_daily_claim`

정보 메모이 측정값은 동적이며 데이터를 로드하는 날짜에 따라 다른 테이블 결과를 생성합니다.

측정값의 숫자 형식을 화폐로 설정합니다.

결과 테이블

| employee\_id | employee\_name | =floor(monthend(today(1),0)-today(1))\*avg\_daily\_claim |
| --- | --- | --- |
| 182 | Mark | $30.00 |
| 183 | Deryck | $25.00 |
| 184 | Dexter | $25.00 |
| 185 | Sydney | $54.00 |
| 186 | Agatha | $36.00 |

`monthend()` 함수는 오늘 날짜를 유일한 인수로 사용하여 현재 월의 끝 날짜를 반환합니다. 이 표현식은 월 끝 날짜에서 오늘 날짜를 빼서 이번 달에 남아 있는 일 수를 반환합니다.

그런 다음 이 값에 각 직원의 평균 일일 비용 청구를 곱하여 각 직원이 남은 월에 예상되는 청구 금액을 계산합니다.