lunarweekname - 스크립트 및 차트 함수
이 함수는 date를 포함한 음력 주의 첫 번째 날의 첫 번째 밀리초의 타임스탬프에 해당하는 음력 주차와 연도를 보여주는 표시 값을 반환합니다. Qlik Sense에서 음력 주는 1월 1일을 주의 첫 번째 날로 계산하여 정의되며, 연도의 마지막 주를 제외하고 정확히 7일이 포함됩니다.
구문:
LunarWeekName(date [, period_no[, first_week_day]])
반환 데이터 유형: dual
lunarweekname() 함수는 1월 1일부터 주 계산을 시작하여 날짜가 속하는 음력 주를 확인합니다. 그런 다음 year/weekcount로 구성된 값을 반환합니다.
인수 | 설명 |
---|---|
date | 평가할 날짜 또는 타임스탬프입니다. |
period_no | period_no는 정수 또는 정수로 처리되는 표현식이며, 값 0은 date를 포함하는 음력 주를 나타냅니다. period_no가 음수 값일 경우 이전 음력 주, 양수 값일 경우 다음 음력 주를 나타냅니다. |
first_week_day | 0보다 크거나 작을 수 있는 오프셋입니다. 이 함수는 지정된 일수 및/또는 일의 분위수에 따른 연도 시작 날짜를 변경합니다. |
사용 시기
lunarweekname() 함수는 음력 주별로 집계를 비교하려는 경우에 유용합니다. 예를 들어, 이 함수를 사용하여 음력 주별로 제품의 총 판매량을 확인할 수 있습니다. 음력 주는 연도의 첫 번째 주에 포함된 모든 값에 빠르면 1월 1일의 값만 포함해야 하는 경우에 유용합니다.
이러한 차원은 마스터 캘린더 테이블에 필드를 만드는 함수를 사용하여 로드 스크립트에서 만들 수 있습니다. 이 함수는 차트에서 계산된 차원으로 직접 사용할 수도 있습니다.
예 | 결과 |
---|---|
lunarweekname('01/12/2013') | 2006/02를 반환합니다. |
lunarweekname('01/12/2013', -1) | 2006/01를 반환합니다. |
lunarweekname('01/12/2013', 0, 1) | 2006/02을 반환합니다. |
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 추가 인수가 없는 날짜
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Transactions라는 테이블에 로드되는 2022년 트랜잭션 집합이 포함된 데이터 집합.
-
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
-
트랜잭션이 발생한 음력 주에 대한 연도 및 주차를 반환하는 필드 lunar_week_name 만들기.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date) as lunar_week_name
;
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
-
lunar_week_name
date | lunar_week_name |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/06 |
2/28/2022 | 2022/09 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/19 |
5/16/2022 | 2022/20 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/26 |
7/9/2022 | 2022/28 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/30 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/31 |
8/8/2022 | 2022/32 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/39 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/44 |
lunar_week_name 필드는 lunarweekname() 함수를 사용하고 date 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.
lunarweekname() 함수는 날짜 값이 속하는 음력 주를 식별하여 해당 날짜의 연도와 주차를 반환합니다.
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekname() 함수는 이 날짜가 1월 15일에 시작하는 음력 주에 해당한다는 것을 식별합니다. 이는 올해의 세 번째 음력 주입니다. 따라서 해당 트랜잭션에 대해 반환된 lunar_week_name 값은 2022/03입니다.
예 2 – period_no 인수를 사용한 날짜
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
첫 번째 예와 동일한 데이터 집합 및 시나리오.
-
트랜잭션이 발생한 이전 음력 주에 대한 연도 및 주차를 반환하는 필드 previous_lunar_week_name 만들기.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date,-1) as previous_lunar_week_name
;
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
-
previous_lunar_week_name
date | previous_lunar_week_name |
---|---|
1/7/2022 | 2021/52 |
1/19/2022 | 2022/02 |
2/5/2022 | 2022/05 |
2/28/2022 | 2022/08 |
3/16/2022 | 2022/10 |
4/1/2022 | 2022/12 |
5/7/2022 | 2022/18 |
5/16/2022 | 2022/19 |
6/15/2022 | 2022/23 |
6/26/2022 | 2022/25 |
7/9/2022 | 2022/27 |
7/22/2022 | 2022/28 |
7/23/2022 | 2022/29 |
7/27/2022 | 2022/29 |
8/2/2022 | 2022/30 |
8/8/2022 | 2022/31 |
8/19/2022 | 2022/32 |
9/26/2022 | 2022/38 |
10/14/2022 | 2022/40 |
10/29/2022 | 2022/43 |
이 경우 lunarweekname() 함수에서 period_no -1을 오프셋 인수로 사용했으므로 이 함수는 먼저 트랜잭션이 발생한 음력 주를 식별합니다. 그런 다음 연도와 일주일 전의 숫자를 반환합니다.
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekname() 함수는 이 트랜잭션이 해당 연도의 세 번째 음력 주에 발생했음을 식별하므로 previous_lunar_week_name 필드에 일주일 전의 연도 및 값 2022/02를 반환합니다.
예 3 – first_week_day 인수를 사용한 날짜
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 로드 스크립트에는 첫 번째 예와 동일한 데이터 집합 및 시나리오가 포함되어 있습니다. 이 예에서는 음력 주를 1월 5일에 시작하도록 설정했습니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekname(date,0,4) as lunar_week_name
;
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
-
lunar_week_name
date | lunar_week_name |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/05 |
2/28/2022 | 2022/08 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/18 |
5/16/2022 | 2022/19 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/25 |
7/9/2022 | 2022/27 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/29 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/30 |
8/8/2022 | 2022/31 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/38 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/43 |
이 경우 lunarweekname() 함수에서 first_week_date 인수가 4로 사용되므로 음력 주의 시작을 1월 1일에서 1월 5일로 오프셋합니다.
트랜잭션 8188은 1월 7일에 발생했습니다. 1월 5일에 시작하는 음력 주로 인해 lunarweekname() 함수는 1월 7일을 포함하는 음력 주가 해당 연도의 첫 번째 음력 주임을 식별합니다. 따라서 해당 트랜잭션에 대해 반환된 lunar_week_name 값은 2022/01입니다.
예 4 – 차트 개체 예
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 로드 스크립트에는 첫 번째 예와 동일한 데이터 집합 및 시나리오가 포함되어 있습니다.
그러나 이 예에서는 변경되지 않은 데이터 집합이 응용 프로그램에 로드됩니다. 트랜잭션이 발생한 음력 주차와 연도를 반환하는 계산은 응용 프로그램의 차트 개체에서 측정값으로 만들어집니다.
로드 스크립트
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.
트랜잭션이 발생한 음력 주의 시작 날짜를 계산하려면 다음 측정값을 만듭니다.
=lunarweekname(date)
date | =lunarweekname(date) |
---|---|
1/7/2022 | 2022/01 |
1/19/2022 | 2022/03 |
2/5/2022 | 2022/06 |
2/28/2022 | 2022/09 |
3/16/2022 | 2022/11 |
4/1/2022 | 2022/13 |
5/7/2022 | 2022/19 |
5/16/2022 | 2022/20 |
6/15/2022 | 2022/24 |
6/26/2022 | 2022/26 |
7/9/2022 | 2022/28 |
7/22/2022 | 2022/29 |
7/23/2022 | 2022/30 |
7/27/2022 | 2022/30 |
8/2/2022 | 2022/31 |
8/8/2022 | 2022/32 |
8/19/2022 | 2022/33 |
9/26/2022 | 2022/39 |
10/14/2022 | 2022/41 |
10/29/2022 | 2022/44 |
lunar_week_name 측정값은 lunarweekname() 함수를 사용하고 date 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.
lunarweekname() 함수는 날짜 값이 속하는 음력 주를 식별하여 해당 날짜의 연도와 주차를 반환합니다.
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekname() 함수는 이 날짜가 1월 15일에 시작하는 음력 주에 해당한다는 것을 식별합니다. 이는 올해의 세 번째 음력 주입니다. 따라서 해당 트랜잭션의 lunar_week_name 값은 2022/03입니다.
예 5 – 시나리오
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
-
Transactions라는 테이블에 로드되는 2022년 트랜잭션 집합이 포함된 데이터 집합.
-
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
최종 사용자는 현재 연도의 주별 총 판매액을 표시하는 차트 개체를 원합니다. 7일 길이의 1주차는 1월 1일에 시작해야 합니다. 이는 데이터 모델에서 이 차원을 사용할 수 없는 경우에도 차트에서 lunarweekname() 함수를 계산된 차원으로 사용하여 달성할 수 있습니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
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
];
결과
다음과 같이 하십시오.
-
데이터를 로드하고 시트를 엽니다. 새 테이블을 만듭니다.
-
다음 표현식을 사용하여 계산된 차원을 만듭니다.
=lunarweekname(date)
-
다음 집계 측정값을 사용하여 총 판매액을 계산합니다.
=sum(amount)
-
측정값의 숫자 형식을 화폐로 설정합니다.
=lunarweekname(date) | =sum(amount) |
---|---|
2022/01 | $17.17 |
2022/03 | $37.23 |
2022/06 | $57.42 |
2022/09 | $88.27 |
2022/11 | $53.80 |
2022/13 | $82.06 |
2022/19 | $40.39 |
2022/20 | $87.21 |
2022/24 | $95.93 |
2022/26 | $45.89 |
2022/28 | $36.23 |
2022/29 | $25.66 |
2022/30 | $152.75 |
2022/31 | $76.11 |
2022/32 | $25.12 |
2022/33 | $46.23 |
2022/39 | $84.21 |
2022/41 | $96.24 |
2022/44 | $67.67 |