# makeweekdate 스크립트 및 차트 함수

이 함수는 연도, 주차 및 요일에서 계산된 날짜를 반환합니다.

구문:

MakeWeekDate(weekyear [, week [, weekday [, first\_week\_day [, broken\_weeks [, reference\_day]]]]])

반환 데이터 유형: 이중

`makeweekdate()` 함수는 스크립트 및 차트 함수로 모두 사용할 수 있습니다. 이 함수는 함수에 전달된 매개 변수를 기반으로 날짜를 계산합니다.

인수

| 인수 | 설명 |
| --- | --- |
| weekyear | 특정 날짜에 대한 `WeekYear()` 함수에 의해 정의된 연도, 즉 해당 주차가 속한 연도입니다.<br><br>정보 메모예를 들어, 1주가 이미 전년도 12월에 시작된 경우와 같이 연도는 경우에 따라 캘린더 연도와 다를 수 있습니다. |
| week | 특정 날짜에 대한 `Week()` 함수에 의해 정의된 주차입니다.<br><br>주차를 지정하지 않으면 1로 간주됩니다. |
| weekday | 해당 날짜에 대한 `WeekDay()` 함수에 의해 정의된 요일입니다. 0은 주의 첫 번째 요일이고 6은 주의 마지막 요일입니다.<br><br>요일을 지정하지 않으면 0으로 가정합니다.<br><br>정보 메모0은 항상 첫 번째 요일을 의미하고 6은 항상 마지막 요일을 의미하지만 해당하는 요일은 first\_week\_day 매개 변수에 의해 확인됩니다. 생략하면 변수 FirstWeekDay의 값이 사용됩니다.<br><br>불가능한 매개 변수 조합과 함께 분리된 주를 사용하면 선택한 연도에 속하지 않는 결과가 발생할 수 있습니다.<br><br>```<br>MakeWeekDate(2021,1,0,6,1)<br>```<br><br>이 날짜는 지정된 주의 첫째 날(일요일)이므로 'Dec 27 2020'을 반환합니다. 2021년 1월 1일은 금요일이었습니다. |
| first\_week\_day | 주의 시작 요일을 지정합니다. 생략하면 변수 FirstWeekDay의 값이 사용됩니다.<br><br>first\_week\_day에 가능한 값은 월요일에 0, 화요일에 1, 수요일에 2, 목요일에 3, 금요일에 4, 토요일에 5, 일요일에 6입니다.<br><br>시스템 변수에 대한 자세한 내용은 [FirstWeekDay](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm)를 참조하십시오. |
| broken\_weeks | broken\_weeks를 지정하지 않으면 BrokenWeeks 변수의 값이 주를 분리할지 여부를 정의하는 데 사용됩니다.<br><br>시스템 변수에 대한 자세한 내용은 [BrokenWeeks](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm)를 참조하십시오. |
| reference\_day | reference\_day를 지정하지 않으면 ReferenceDay 변수의 값이 1주차를 정의하기 위한 기준일로 설정할 1월 날짜를 정의하는 데 사용됩니다.<br><br>시스템 변수에 대한 자세한 내용은 [ReferenceDay](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm)를 참조하십시오. |

## makeweekdate를 사용하는 경우

`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 사용). |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: 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)을 참조하십시오.

## 예 1 – day 포함

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

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

개요

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

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

* `Sales`라는 테이블에 2022년의 주간 판매 합계가 포함된 데이터 집합.

* 3개 필드에 제공되는 트랜잭션 날짜: `year`, `week` 및 `sales`.

* 측정값 `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`

결과 테이블

| 거래 연도 | 거래 주 | 주말 | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | 금 |
| 2022 | 02 | 01/14/2022 | 금 |
| 2022 | 03 | 2022년 1월 21일 | 금 |
| 2022 | 04 | 01/28/2022 | 금 |
| 2022 | 05 | 2022/02/04 | 금 |
| 2022 | 06 | 2022/02/11 | 금 |
| 2022 | 07 | 02/18/2022 | 금 |

'`end_of_week`' 필드는 `makeweekdate()` 함수를 사용하여 선행 LOAD 문에서 만들어집니다. `transaction_year`, `transaction_week` 필드는 함수를 통해 연도 및 주 인수로 전달됩니다. day 인수에는 값 4가 사용됩니다.

그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 `DateFormat` 시스템 변수의 형식으로 결과를 반환합니다.

`makeweekdate()` 함수와 해당 인수도 `weekday()` 함수로 래핑되어 `week_day` 필드를 반환합니다. 위의 표에서 볼 수 있듯이 `week_day` 필드는 이러한 날짜가 금요일에 발생함을 보여 줍니다.

## 예 2 – day 제외

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

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

개요

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

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

* 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

결과 테이블

| 거래 연도 | 거래 주 | 주의 첫째 날 | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/03/2022 | 월 |
| 2022 | 02 | 01/10/2022 | 월 |
| 2022 | 03 | 01/17/2022 | 월 |
| 2022 | 04 | 01/24/2022 | 월 |
| 2022 | 05 | 01/31/2022 | 월 |
| 2022 | 06 | 02/07/2022 | 월 |
| 2022 | 07 | 02/14/2022 | 월 |

first\_day\_of\_week 필드는 makeweekdate() 함수를 사용하여 선행 LOAD 문에서 만들어집니다. transaction\_year 및 transaction\_week 매개 변수는 함수 인수로 전달되고 day 매개 변수는 비어 있습니다.

그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 DateFormat 시스템 변수의 형식으로 결과를 반환합니다.

makeweekdate() 함수와 해당 인수도 week\_day 필드를 반환하는 weekday() 함수로 래핑됩니다. 위의 표에서 볼 수 있듯이 makeweekdate() 함수에서 해당 매개 변수가 비어 있기 때문에 week\_day 필드는 모든 경우에 월요일을 반환합니다. 여기에서 기본값은 0(첫 번째 요일)이고 첫 번째 요일은 FirstWeekDay 시스템 변수에 의해 월요일로 설정됩니다.

## 예 3 – 차트 개체 예

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

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

개요

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

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

* 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
];
```

결과

다음과 같이 하십시오.

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

   * transaction\_year

   * transaction\_week

2. 첫 번째 예의 end\_of\_week 필드와 동일한 계산을 수행하려면 다음 측정값을 만듭니다.

   =makeweekdate(transaction\_year,transaction\_week,4)

3. 각 트랜잭션의 요일을 계산하려면 다음 측정값을 만듭니다.

   =weekday(makeweekdate(transaction\_year,transaction\_week,4))

결과 테이블

| 거래 연도 | 거래 주 | =makeweekdate(거래연도,거래주,4) | =weekday(makeweekdate(거래연도,거래주,4)) |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | 금 |
| 2022 | 02 | 01/14/2022 | 금 |
| 2022 | 03 | 2022년 1월 21일 | 금 |
| 2022 | 04 | 01/28/2022 | 금 |
| 2022 | 05 | 2022/02/04 | 금 |
| 2022 | 06 | 2022/02/11 | 금 |
| 2022 | 07 | 02/18/2022 | 금 |

makeweekdate() 함수를 사용하여 측정값으로 차트 개체에 end\_of\_week에 해당하는 필드가 만들어집니다. transaction\_year 및 transaction\_week 필드는 연도 및 주 인수로 전달됩니다. day 인수에는 값 4가 사용됩니다.

그런 다음 함수는 이러한 값을 결합하고 날짜 필드로 변환하여 DateFormat 시스템 변수의 형식으로 결과를 반환합니다.

makeweekdate() 함수와 해당 인수도 weekday() 함수로 래핑되어 첫 번째 예의 week\_day 필드와 동일한 계산을 반환합니다. 위의 표에서 볼 수 있듯이 오른쪽의 마지막 열은 이러한 날짜가 금요일에 발생했음을 보여 줍니다.

## 예 4 – 시나리오

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

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

개요

이 예에서는 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;
```

결과

결과 테이블

| 날짜 | 평일 |
| --- | --- |
| 01/07/2022 | 금 |
| 01/14/2022 | 금 |
| 2022년 01월 21일 | 금 |
| 2022년 01월 28일 | 금 |
| 2022년 02월 04일 | 금 |
| 02/11/2022 | 금 |
| 02/18/2022 | 금 |
| 02/25/2022 | 금 |
| 03/04/2022 | 금 |
| 03/11/2022 | 금 |
| 03/18/2022 | 금 |
| 03/25/2022 | 금 |
| 04/01/2022 | 금 |
| 04/08/2022 | 금 |
| 04/15/2022 | 금 |
| 04/22/2022 | 금 |
| 04/29/2022 | 금 |
| 05/06/2022 | 금 |
| 05/13/2022 | 금 |
| 05/20/2022 | 금 |
| 05/27/2022 | 금 |
| 06/03/2022 | 금 |
| 06/10/2022 | 금 |
| 06/17/2022 | 금 |
| + 27 추가 행 |  |

makeweekdate() 함수는 2022년에서 각각의 금요일을 찾습니다. 주 매개 변수가 -2이면 날짜가 누락되지 않습니다. 마지막으로 선행 LOAD는 명확성을 위해 추가 weekday 필드를 만들어 각 date 값이 금요일임을 보여 줍니다.