networkdays - 스크립트 및 차트 함수이 페이지에서
networkdays 함수는 선택적으로 나열된 holiday 를 고려하여 start_date (포함)와 end_date (포함) 사이의 근무일(월요일 ~ 금요일)의 수를 반환합니다.
구문:
networkdays
( start_date, end_date [, holiday] )
반환 데이터 유형: 정수
networkdays 함수에서 반환된 날짜 범위를 표시하는 캘린더 다이어그램
networkdays 함수에는 다음과 같은 제한 사항이 있습니다.
근무일을 수정하는 방법이 없습니다. 즉, 월요일부터 금요일까지 근무하는 것 외에는 지역이나 상황에 따라 함수를 수정할 수 있는 방법이 없습니다.
holiday 매개 변수는 문자열 상수여야 합니다. 표현식은 허용되지 않습니다.
인수
start_date
평가할 시작 날짜입니다.
end_date
평가할 끝 날짜입니다.
holiday
근무일에서 제외시킬 공휴일 기간입니다. 휴일은 문자열 상수 날짜로 표시됩니다. 여러 휴일 날짜를 쉼표로 구분하여 지정할 수 있습니다.
'12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014'
사용 시기
networkdays() 함수는 일반적으로 사용자가 두 날짜 사이에 발생하는 근무 일수를 사용하여 계산하려고 할 때 표현식의 일부로 사용됩니다. 예를 들어, 사용자가 PAYE(Pay-as-you-earn) 계약에 따라 직원이 받을 총 임금을 계산하려는 경우입니다.
함수 예
networkdays ('12/19/2013', '01/07/2014')
14을 반환합니다. 이 예에서는 공휴일을 고려하지 않습니다.
networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013')
12을 반환합니다. 이 예에서는 12/25/2013 ~ 12/26/2013 의 공휴일을 고려합니다.
networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014')
10을 반환합니다. 이 예에서는 2번의 공휴일 기간을 고려합니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense 가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense 는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 기본 예
로드 스크립트 및 결과
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
프로젝트 ID, 시작 날짜 및 끝 날짜가 포함된 데이터 집합. 이 정보는 Projects 라는 테이블에 로드됩니다.
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
각 프로젝트에 관련된 근무일 수를 계산하기 위해 추가 필드 net_work_days 만들기.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
networkdays(start_date,end_date) as net_work_days
;
Load
id,
start_date,
end_date
Inline
[
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
id
start_date
end_date
net_work_days
결과 테이블
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
13
예정된 휴일(networkdays() 함수의 세 번째 인수에 있었어야 함)이 없으므로, 이 함수는 end_date 에서 start_date 를 빼고 모든 주말 수도 제외하여 두 날짜 사이의 근무일 수를 계산합니다.
프로젝트 5의 근무일을 강조하는 캘린더 다이어그램(휴일 없음)
위의 캘린더는 id 가 5인 프로젝트를 시각적으로 설명합니다. 프로젝트 5는 2022년 8월 10일 수요일에 시작하여 2022년 8월 26일에 끝납니다. 모든 토요일과 일요일을 무시하면 이 두 날짜 사이에 13일의 근무일이 있습니다.
예 2 – 단일 휴일
로드 스크립트 및 결과
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
이 예에서는 2022년 8월 19일에 1일 휴일이 예정되어 있습니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
networkdays(start_date,end_date,'08/19/2022') as net_work_days
;
Load
id,
start_date,
end_date
Inline
[
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
id
start_date
end_date
net_work_days
결과 테이블
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
networkdays() 함수의 세 번째 인수로 예정된 단일 휴일이 입력됩니다.
프로젝트 5의 근무일을 강조 표시하는 캘린더 다이어그램(단일 휴일)
위의 캘린더에는 프로젝트 5를 시각적으로 요약하여 이 휴일을 포함하도록 조정되어 있습니다. 프로젝트 5에서는 2022년 8월 19일 금요일에 이 휴일이 발생합니다. 결과적으로 프로젝트 5의 총 net_work_days 값은 13일에서 12일로 하루 감소합니다.
예 3 – 여러 휴일
로드 스크립트 및 결과
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
첫 번째 예와 동일한 데이터 집합 및 시나리오.
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
각 프로젝트에 관련된 근무일 수를 계산하기 위해 추가 필드 net_work_days 만들기.
그러나 이 예에서는 2022년 8월 18일부터 8월 21일까지 4개의 휴일이 예정되어 있습니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Projects:
Load
*,
networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
;
Load
id,
start_date,
end_date
Inline
[
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
id
start_date
end_date
net_work_days
결과 테이블
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
11
4개의 예정된 휴일이 networkdays() 함수의 세 번째 인수에서 쉼표로 구분된 목록으로 입력됩니다.
프로젝트 5의 근무일을 강조 표시한 캘린더 다이어그램(여러 휴일)
위의 캘린더에는 프로젝트 5를 시각적으로 요약하여 이러한 휴일을 포함하도록 조정되어 있습니다. 프로젝트 5에서 이 예정된 휴일 기간이 발생하며, 그중 2일은 목요일과 금요일에 발생합니다. 결과적으로 프로젝트 5의 총 net_work_days 값은 13일에서 11일로 감소합니다.
예 4 – 단일 휴일
로드 스크립트 및 차트 표현식
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
2022년 8월 19일에 1일 휴일이 예정되어 있습니다.
그러나 이 예에서는 변경되지 않은 데이터 집합이 응용 프로그램에 로드됩니다. net_work_days 필드는 차트 개체의 측정값으로 계산됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Projects:
Load
id,
start_date,
end_date
Inline
[
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
다음 측정값을 만듭니다.
= networkdays(start_date,end_date,’08/19/2022’)
결과 테이블
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
networkdays() 함수의 세 번째 인수로 예정된 단일 휴일이 입력됩니다.
단일 휴일이 있는 순 근무일을 보여 주는 캘린더 다이어그램(차트 개체)
위의 캘린더에는 프로젝트 5를 시각적으로 요약하여 이 휴일을 포함하도록 조정되어 있습니다. 프로젝트 5에서는 2022년 8월 19일 금요일에 이 휴일이 발생합니다. 결과적으로 프로젝트 5의 총 net_work_days 값은 13일에서 12일로 하루 감소합니다.