makeweekdate() 함수는 일반적으로 데이터를 생성하여 날짜 목록을 생성하거나 입력 데이터에 연도, 주 및 요일이 제공될 때 날짜를 구성하기 위해 스크립트에서 사용됩니다.
다음 예에서는 다음을 가정합니다.
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
함수 예
예
결과
makeweekdate(2014,6,6)
반환 값: 02/09/2014
makeweekdate(2014,6,1)
반환 값: 02/04/2014
makeweekdate(2014,6)
02/03/2014을 반환합니다(평일 0 사용).
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 앱 및 스크립트에 대한 지역 설정 수정를 참조하십시오.
앱의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
측정값end_of_week를 만드는 데 사용되는 선행 LOAD, makeweekdate() 함수를 사용하여 해당 주의 금요일 날짜를 MM/DD/YYYY 서식으로 반환합니다.
반환된 날짜가 금요일임을 증명하기 위해 end_of_week 표현식도 요일을 표시하는 weekday() 함수로 래핑됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
transaction_year
transaction_week
end_of_week
week_day
결과 테이블
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
'end_of_week' 필드는 makeweekdate() 함수를 사용하여 선행 LOAD 문에서 만들어집니다. transaction_year, transaction_week 필드는 함수를 통해 연도 및 주 인수로 전달됩니다. day 인수에는 값 4가 사용됩니다.
그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 DateFormat 시스템 변수의 형식으로 결과를 반환합니다.
makeweekdate() 함수와 해당 인수도 weekday() 함수로 래핑되어 week_day 필드를 반환합니다. 위의 표에서 볼 수 있듯이 week_day 필드는 이러한 날짜가 금요일에 발생함을 보여 줍니다.
예 2 – day 제외
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Sales라는 테이블에 2022년의 주간 판매 합계가 포함된 데이터 집합.
3개 필드에 제공되는 트랜잭션 날짜: year, week 및 sales.
makeweekdate() 함수를 사용하여 측정값 first_day_of_week를 만드는 데 사용되는 선행 LOAD. 이는 MM/DD/YYYY 서식으로 해당 주의 월요일 날짜를 반환합니다.
반환된 날짜가 월요일임을 증명하기 위해 first_day_of_week 표현식도 요일을 표시하는 weekday() 함수로 래핑됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
transaction_year
transaction_week
first_day_of_week
week_day
결과 테이블
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mon
2022
02
01/10/2022
Mon
2022
03
01/17/2022
Mon
2022
04
01/24/2022
Mon
2022
05
01/31/2022
Mon
2022
06
02/07/2022
Mon
2022
07
02/14/2022
Mon
first_day_of_week 필드는 makeweekdate() 함수를 사용하여 선행 LOAD 문에서 만들어집니다. transaction_year 및 transaction_week 매개 변수는 함수 인수로 전달되고 day 매개 변수는 비어 있습니다.
그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 DateFormat 시스템 변수의 형식으로 결과를 반환합니다.
makeweekdate() 함수와 해당 인수도 week_day 필드를 반환하는 weekday() 함수로 래핑됩니다. 위의 표에서 볼 수 있듯이 makeweekdate() 함수에서 해당 매개 변수가 비어 있기 때문에 week_day 필드는 모든 경우에 월요일을 반환합니다. 여기에서 기본값은 0(첫 번째 요일)이고 첫 번째 요일은 FirstWeekDay 시스템 변수에 의해 월요일로 설정됩니다.
예 3 – 차트 개체 예
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Sales라는 테이블에 2022년의 주간 판매 합계가 포함된 데이터 집합.
3개 필드에 제공되는 트랜잭션 날짜: year, week 및 sales.
이 예에서는 차트 개체를 사용하여 첫 번째 예에서 end_of_week 계산에 해당하는 측정값을 만듭니다. 이 측정값은 makeweekdate() 함수를 사용하여 해당 주의 금요일 날짜를 MM/DD/YYYY 서식으로 반환합니다.
반환된 날짜가 금요일임을 증명하기 위해 요일을 반환하는 두 번째 측정값이 만들어집니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
결과
다음과 같이 하십시오.
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
transaction_year
transaction_week
첫 번째 예의 end_of_week 필드와 동일한 계산을 수행하려면 다음 측정값을 만듭니다.
makeweekdate() 함수를 사용하여 측정값으로 차트 개체에 end_of_week에 해당하는 필드가 만들어집니다. transaction_year 및 transaction_week 필드는 연도 및 주 인수로 전달됩니다. day 인수에는 값 4가 사용됩니다.
그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 DateFormat 시스템 변수의 형식으로 결과를 반환합니다.
makeweekdate() 함수와 해당 인수도 weekday() 함수로 래핑되어 첫 번째 예의 week_day 필드와 동일한 계산을 반환합니다. 위의 표에서 볼 수 있듯이 오른쪽의 마지막 열은 이러한 날짜가 금요일에 발생했음을 보여 줍니다.
예 4 – 시나리오
개요
이 예에서는 2022년의 모든 금요일을 포함하는 날짜 목록을 만듭니다.
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
결과
결과 테이블
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
+ 27 추가 행
makeweekdate() 함수는 2022년에서 각각의 금요일을 찾습니다. 주 매개 변수가 -2이면 날짜가 누락되지 않습니다. 마지막으로 선행 LOAD는 명확성을 위해 추가 weekday 필드를 만들어 각 date 값이 금요일임을 보여 줍니다.
이 페이지가 도움이 되었습니까?
이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!