yearend - 스크립트 및 차트 함수이 페이지에서
이 함수는 date 를 포함하는 연도의 마지막 날의 마지막 밀리초의 타임스탬프에 해당하는 값을 반환합니다. 기본 출력 형식은 스크립트에 설정된 DateFormat 입니다.
구문:
YearEnd( date[, period_no[, first_month_of_year
= 1]] )
즉, yearend() 함수는 이 날짜가 속하는 연도를 확인합니다. 그런 다음 해당 연도의 마지막 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다. 연도의 첫 번째 달은 기본적으로 1월입니다. 그러나 yearend() 함수의 first_month_of_year 인수를 사용하여 첫 번째로 설정되는 월을 변경할 수 있습니다.
정보 메모 yearend() 함수는 FirstMonthOfYear 시스템 변수를 고려하지 않습니다. first_month_of_year 인수를 사용하여 변경하지 않는 한 연도는 1월 1일에 시작됩니다.
yearend() 함수 다이어그램.
사용 시기
yearend() 함수는 아직 발생하지 않은 연도의 분수를 사용하도록 계산하려는 경우 표현식의 일부로 사용됩니다. 예를 들어 해당 연도에 아직 발생하지 않은 총 이자를 계산하려는 경우가 있습니다.
반환 데이터 유형: dual
인수
date
평가할 날짜 또는 타임스탬프입니다.
period_no
period_no 는 정수이며, 값 0은 date 를 포함하는 연도를 나타냅니다. period_no 가 음수 값일 경우 이전 연도, 양수 값일 경우 다음 연도를 나타냅니다.
first_month_of_year
1월에 시작되지 않는 (회계)연도를 사용하려는 경우 first_month_of_year 에 2와 12 사이의 값을 지정하십시오.
다음 값을 사용하여 first_month_of_year 인수에서 연도의 첫 번째 달을 설정할 수 있습니다.
first_month_of_year 값
Month
Value
2월
2
3월
3
4월
4
5월
5
6월
6
7월
7
8월
8
9월
9
10월
10
11월
11
12월
12
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense 가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense 는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
함수 예 예 결과 yearend('10/19/2001') 12/31/2001 23:59:59를 반환합니다. yearend('10/19/2001', -1) 12/31/2000 23:59:59를 반환합니다. yearend('10/19/2001', 0, 4) 03/31/2002 23:59:59를 반환합니다.
예 1 – 추가 인수 없음 로드 스크립트 및 결과 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date) as year_end,
timestamp(yearend(date)) as year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
id
date
year_end
year_end_timestamp
결과 테이블 id date year_end year_end_timestamp 8188 01/13/2020 12/31/2020 12/31/2020 11:59:59 PM 8189 02/26/2020 12/31/2020 12/31/2020 11:59:59 PM 8190 03/27/2020 12/31/2020 12/31/2020 11:59:59 PM 8191 04/16/2020 12/31/2020 12/31/2020 11:59:59 PM 8192 05/21/2020 12/31/2020 12/31/2020 11:59:59 PM 8193 08/14/2020 12/31/2020 12/31/2020 11:59:59 PM 8194 10/07/2020 12/31/2020 12/31/2020 11:59:59 PM 8195 12/05/2020 12/31/2020 12/31/2020 11:59:59 PM 8196 01/22/2021 12/31/2021 12/31/2021 11:59:59 PM 8197 02/03/2021 12/31/2021 12/31/2021 11:59:59 PM 8198 03/17/2021 12/31/2021 12/31/2021 11:59:59 PM 8199 04/23/2021 12/31/2021 12/31/2021 11:59:59 PM 8200 05/04/2021 12/31/2021 12/31/2021 11:59:59 PM 8201 06/30/2021 12/31/2021 12/31/2021 11:59:59 PM 8202 07/26/2021 12/31/2021 12/31/2021 11:59:59 PM 8203 12/27/2021 12/31/2021 12/31/2021 11:59:59 PM 8204 06/06/2022 12/31/2022 12/31/2022 11:59:59 PM 8205 07/18/2022 12/31/2022 12/31/2022 11:59:59 PM 8206 11/14/2022 12/31/2022 12/31/2022 11:59:59 PM 8207 12/12/2022 12/31/2022 12/31/2022 11:59:59 PM
’year_end ’ 필드는 yearend() 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.
yearend() 함수는 날짜 값이 속하는 연도를 처음에 식별하고 해당 연도의 마지막 밀리초에 대한 타임스탬프를 반환합니다.
트랜잭션 8199가 선택된 yearend() 함수 다이어그램.
트랜잭션 8199는 2021년 4월 23일에 발생했습니다. yearend() 함수는 해당 연도의 마지막 밀리초, 즉 12월 31일 오후 11시 59분 59초를 반환합니다.
예 2 – period_no 로드 스크립트 및 결과 개요
첫 번째 예와 동일한 데이터 집합 및 시나리오가 사용됩니다.
그러나 이 예에서 작업은 트랜잭션이 발생한 연도 이전 연도의 종료 날짜 타임스탬프를 반환하는 'previous_year_end ' 필드를 만드는 것입니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date,-1) as previous_year_end,
timestamp(yearend(date,-1)) as previous_year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
결과 테이블 id date previous_year_end previous_year_end_timestamp 8188 01/13/2020 12/31/2019 12/31/2019 11:59:59 PM 8189 02/26/2020 12/31/2019 12/31/2019 11:59:59 PM 8190 03/27/2020 12/31/2019 12/31/2019 11:59:59 PM 8191 04/16/2020 12/31/2019 12/31/2019 11:59:59 PM 8192 05/21/2020 12/31/2019 12/31/2019 11:59:59 PM 8193 08/14/2020 12/31/2019 12/31/2019 11:59:59 PM 8194 10/07/2020 12/31/2019 12/31/2019 11:59:59 PM 8195 12/05/2020 12/31/2019 12/31/2019 11:59:59 PM 8196 01/22/2021 12/31/2020 12/31/2020 11:59:59 PM 8197 02/03/2021 12/31/2020 12/31/2020 11:59:59 PM 8198 03/17/2021 12/31/2020 12/31/2020 11:59:59 PM 8199 04/23/2021 12/31/2020 12/31/2020 11:59:59 PM 8200 05/04/2021 12/31/2020 12/31/2020 11:59:59 PM 8201 06/30/2021 12/31/2020 12/31/2020 11:59:59 PM 8202 07/26/2021 12/31/2020 12/31/2020 11:59:59 PM 8203 12/27/2021 12/31/2020 12/31/2020 11:59:59 PM 8204 06/06/2022 12/31/2021 12/31/2021 11:59:59 PM 8205 07/18/2022 12/31/2021 12/31/2021 11:59:59 PM 8206 11/14/2022 12/31/2021 12/31/2021 11:59:59 PM 8207 12/12/2022 12/31/2021 12/31/2021 11:59:59 PM
period_no -1 은 yearend() 함수에서 오프셋 인수로 사용되었므로 함수는 먼저 트랜잭션이 발생한 연도를 식별합니다. 그런 다음 1년 전을 찾아 해당 연도의 마지막 밀리초를 식별합니다.
period_no가 -1인 yearend() 함수 다이어그램.
트랜잭션 8199는 2021년 4월 23일에 발생합니다. yearend() 함수는 'previous_year_end ' 필드에 대해 전년도의 마지막 밀리초인 2020년 12월 31일 오후 11:59:59를 반환합니다.
예 3 – first_month_of_year 로드 스크립트 및 결과 개요
첫 번째 예와 동일한 데이터 집합 및 시나리오가 사용됩니다.
그러나 이 예에서는 회사 정책이 4월 1일부터 시작되는 연도를 기준으로 합니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
yearend(date,0,4) as year_end,
timestamp(yearend(date,0,4)) as year_end_timestamp
;
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
id
date
year_end
year_end_timestamp
결과 테이블 id date year_end year_end_timestamp 8188 01/13/2020 03/31/2020 3/31/2020 11:59:59 PM 8189 02/26/2020 03/31/2020 3/31/2020 11:59:59 PM 8190 03/27/2020 03/31/2020 3/31/2020 11:59:59 PM 8191 04/16/2020 03/31/2021 3/31/2021 11:59:59 PM 8192 05/21/2020 03/31/2021 3/31/2021 11:59:59 PM 8193 08/14/2020 03/31/2021 3/31/2021 11:59:59 PM 8194 10/07/2020 03/31/2021 3/31/2021 11:59:59 PM 8195 12/05/2020 03/31/2021 3/31/2021 11:59:59 PM 8196 01/22/2021 03/31/2021 3/31/2021 11:59:59 PM 8197 02/03/2021 03/31/2021 3/31/2021 11:59:59 PM 8198 03/17/2021 03/31/2021 3/31/2021 11:59:59 PM 8199 04/23/2021 03/31/2022 3/31/2022 11:59:59 PM 8200 05/04/2021 03/31/2022 3/31/2022 11:59:59 PM 8201 06/30/2021 03/31/2022 3/31/2022 11:59:59 PM 8202 07/26/2021 03/31/2022 3/31/2022 11:59:59 PM 8203 12/27/2021 03/31/2022 3/31/2022 11:59:59 PM 8204 06/06/2022 03/31/2023 3/31/2023 11:59:59 PM 8205 07/18/2022 03/31/2023 3/31/2023 11:59:59 PM 8206 11/14/2022 03/31/2023 3/31/2023 11:59:59 PM 8207 12/12/2022 03/31/2023 3/31/2023 11:59:59 PM
yearend() 함수에서 first_month_of_year 인수 4 을 사용하므로 해당 연도의 첫 번째 날이 4월 1일로 설정되고 해당 연도의 마지막 날이 3월 31일로 설정됩니다.
4월을 연도의 첫 번째 달로 사용하는 yearend() 함수 다이어그램.
트랜잭션 8199는 2021년 4월 23일에 발생합니다. yearend() 함수가 연도의 시작을 4월 1일로 설정하므로 2022년 3월 31일이 트랜잭션의 'year_end ' 값으로 반환됩니다.
예 4 – 차트 개체 예 로드 스크립트 및 차트 표현식 개요
첫 번째 예와 동일한 데이터 집합 및 시나리오가 사용됩니다.
그러나 이 예에서 데이터 집합은 변경되지 않고 응용 프로그램에 로드됩니다. 트랜잭션이 발생한 연도의 끝 날짜 타임스탬프를 반환하는 계산은 응용 프로그램의 차트 개체에서 측정값으로 만들어집니다.
로드 스크립트
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/13/2020,37.23
8189,02/26/2020,17.17
8190,03/27/2020,88.27
8191,04/16/2020,57.42
8192,05/21/2020,53.80
8193,08/14/2020,82.06
8194,10/07/2020,40.39
8195,12/05/2020,87.21
8196,01/22/2021,95.93
8197,02/03/2021,45.89
8198,03/17/2021,36.23
8199,04/23/2021,25.66
8200,05/04/2021,82.77
8201,06/30/2021,69.98
8202,07/26/2021,76.11
8203,12/27/2021,25.12
8204,06/06/2022,46.23
8205,07/18/2022,84.21
8206,11/14/2022,96.24
8207,12/12/2022,67.67
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
트랜잭션이 발생한 연도를 계산하려면 다음 측정값을 만듭니다.
결과 테이블 id date =yearend(date) =timestamp(yearend(date)) 8188 01/13/2020 12/31/2020 12/31/2020 11:59:59 PM 8189 02/26/2020 12/31/2020 12/31/2020 11:59:59 PM 8190 03/27/2020 12/31/2020 12/31/2020 11:59:59 PM 8191 04/16/2020 12/31/2020 12/31/2020 11:59:59 PM 8192 05/21/2020 12/31/2020 12/31/2020 11:59:59 PM 8193 08/14/2020 12/31/2020 12/31/2020 11:59:59 PM 8194 10/07/2020 12/31/2020 12/31/2020 11:59:59 PM 8195 12/05/2020 12/31/2020 12/31/2020 11:59:59 PM 8196 01/22/2021 12/31/2021 12/31/2021 11:59:59 PM 8197 02/03/2021 12/31/2021 12/31/2021 11:59:59 PM 8198 03/17/2021 12/31/2021 12/31/2021 11:59:59 PM 8199 04/23/2021 12/31/2021 12/31/2021 11:59:59 PM 8200 05/04/2021 12/31/2021 12/31/2021 11:59:59 PM 8201 06/30/2021 12/31/2021 12/31/2021 11:59:59 PM 8202 07/26/2021 12/31/2021 12/31/2021 11:59:59 PM 8203 12/27/2021 12/31/2021 12/31/2021 11:59:59 PM 8204 06/06/2022 12/31/2022 12/31/2022 11:59:59 PM 8205 07/18/2022 12/31/2022 12/31/2022 11:59:59 PM 8206 11/14/2022 12/31/2022 12/31/2022 11:59:59 PM 8207 12/12/2022 12/31/2022 12/31/2022 11:59:59 PM
‘end_of_year ’ 측정값은 yearend() 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.
yearend() 함수는 날짜 값이 속하는 연도를 처음에 식별하고 해당 연도의 마지막 밀리초에 대한 타임스탬프를 반환합니다.
트랜잭션 8199가 4월에 발생했음을 보여 주는 yearend() 함수 다이어그램.
트랜잭션 8199는 2021년 4월 23일에 발생합니다. yearend() 함수는 해당 연도의 마지막 밀리초, 즉 12월 31일 오후 11시 59분 59초를 반환합니다.
예 5 – 시나리오 로드 스크립트 및 차트 표현식 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
최종 사용자는 직원 ID와 직원 이름별로 해당 연도에 남은 기간 동안 발생할 것으로 예상되는 비용 청구를 표시하는 차트 개체를 원합니다. 회계 연도는 1월에 시작됩니다.
로드 스크립트
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
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
예상 비용 청구를 계산하려면 다음 측정값을 만듭니다.
=(yearend(today(1))-today(1))*avg_daily_claim
측정값의 숫자 형식 을 화폐 로 설정합니다.
결과 테이블 employee_id employee_name =(yearend(today(1))-today(1))*avg_daily_claim 182 Mark $3240.00 183 Deryck $2700.00 184 Dexter $2700.00 185 Sydney $5832.00 186 Agatha $3888.00
오늘 날짜를 유일한 인수로 사용하여 yearend() 함수는 현재 연도의 종료 날짜를 반환합니다. 그런 다음 연도 종료 날짜에서 오늘 날짜를 빼서 이 표현식은 올해의 남은 일수를 반환합니다.
그런 다음 이 값에 각 직원의 평균 일일 비용 청구를 곱하여 각 직원이 남은 연도에 예상되는 청구 금액을 계산합니다.