inlunarweek - 스크립트 및 차트 함수이 페이지에서
이 함수는 timestamp 가 base_date 를 포함하는 음력 주 안에 있는지 확인합니다. Qlik Sense 에서 음력 주는 1월 1일을 주의 첫 번째 날로 계산하여 정의되며, 연도의 마지막 주를 제외하고 각 주는 정확히 7일을 포함합니다.
구문:
InLunarWeek
( timestamp, base_date, period_no[, first_week_day] )
반환 데이터 유형: 부울
정보 메모
Qlik Sense 에서 부울 true 값은 -1로 표시되고 false 값은 0으로 표시됩니다.
inlunarweek() 함수는 base_date 가 속하는 음력 주를 확인합니다. 그런 다음 각 타임스탬프 값이 base_date 와 같은 음력 주에 발생하는지 여부를 확인하면 부울 결과를 반환합니다.
inlunarweek() 함수 다이어그램
사용 시기
inlunarweek() 함수는 부울 결과를 반환합니다. 일반적으로 이 유형의 함수는 IF 표현식의 조건으로 사용됩니다. 이는 평가된 날짜가 해당 음력 주에 발생했는지 여부에 따라 집계 또는 계산을 반환합니다.
예를 들어, inlunarweek() 함수를 사용하여 특정 음력 주에 제조된 모든 장비를 식별할 수 있습니다.
인수
timestamp
base_date 와 비교할 날짜입니다.
base_date
음력 주를 평가하는 데 사용되는 날짜입니다.
period_no
음력 주는 period_no 로 오프셋을 지정할 수 있습니다. period_no는 정수이며, 값 0은 base_date 를 포함하는 음력 주를 나타냅니다. period_no 가 음수 값일 경우 이전 음력 주, 양수 값일 경우 다음 음력 주를 나타냅니다.
first_week_day
0보다 크거나 작을 수 있는 오프셋입니다. 이 함수는 지정된 일수 및/또는 일의 분위수에 따른 연도 시작 날짜를 변경합니다.
함수 예
inlunarweek('01/12/2013', '01/14/2013',
0)
timestamp 의 값인 01/12/2013 이 01/08/2013 ~ 01/14/2013 주에 속하므로 TRUE 를 반환합니다.
inlunarweek('01/12/2013', '01/07/2013',
0)
base_date 01/07/2013 은 01/01/2013 ~ 01/07/2013 으로 정의된 음력 주이므로 FALSE 를 반환합니다.
inlunarweek('01/12/2013', '01/14/2013',
-1)
FALSE 을 반환합니다. period_no 값을 -1로 지정하면 주가 이전 주, 즉 01/01/2013 ~ 01/07/2013 으로 시프트됩니다.
inlunarweek('01/07/2013', 01/14/2013',
-1)
TRUE 을 반환합니다. 이전 예와 비교하여 timestamp 는 역방향 시프트를 고려한 후의 다음 주입니다.
inlunarweek('01/11/2006', '01/08/2006',
0, 3)
FALSE 을 반환합니다. first_week_day 에 3의 값을 지정하면 01/04/2013 에서 연도의 시작이 계산됨을 의미합니다. 따라서 base _date 의 값은 첫 주에 포함되며, timestamp 의 값은 01/11/2013 ~ 01/17/2013 주에 포함됩니다.
inlunarweek() 함수는 다음 함수와 함께 사용되는 경우가 많습니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense 가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense 는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 추가 인수 없음
로드 스크립트 및 결과
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
트랜잭션이 1월 10일과 같은 음력 주에 발생했는지 여부를 확인하는 필드 in_lunar_week 를 만듭니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
inlunarweek(date,'01/10/2022', 0) as in_lunar_week
;
Load
*
Inline
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
결과 테이블
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
inlunarweek() 함수, 기본 예
in_lunar_week 필드는 inlunarweek() 함수를 사용하여 선행 LOAD 문에서 만들어진 다음 이 함수의 인수로 다음을 전달합니다.
음력 주는 1월 1일에 시작하므로 1월 10일은 1월 8일에 시작하여 1월 14일에 끝나는 음력 주에 포함됩니다. 따라서 1월의 두 날짜 사이에 발생한 모든 트랜잭션은 TRUE 의 부울 값을 반환합니다. 이는 결과 테이블에서 검증됩니다.
예 2 – period_no
예 및 결과:
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
그러나 이 예에서 작업은 1월 10일 이후 음력 2주 후에 트랜잭션이 발생했는지 여부를 확인하는 2_lunar_weeks_later 필드를 만드는 것입니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
inlunarweek(date,'01/10/2022', 2) as [2_lunar_weeks_later]
;
Load
*
Inline
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
결과 테이블
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
0
1/9/2022
0
1/10/2022
0
1/11/2022
0
1/12/2022
0
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
-1
1/23/2022
-1
inlunarweek() 함수, period_no 예
이 경우 inlunarweek() 함수에서 오프셋 인수로 period_no 가 2로 사용되었으므로 이 함수는 1월 22일부터 시작하는 주를 음력 주로 정의하여 이에 대한 트랜잭션의 유효성을 검사합니다. 따라서 1월 22일과 1월 28일 사이에 발생하는 모든 트랜잭션은 부울 결과 TRUE 를 반환합니다.
예 3 – first_week_day
로드 스크립트 및 결과
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 로드 스크립트는 첫 번째 예와 동일한 데이터 집합 및 시나리오를 사용합니다. 그러나 이 예에서는 음력 주를 1월 6일에 시작하도록 설정했습니다.
첫 번째 예와 동일한 데이터 집합 및 시나리오.
기본 DateFormat 시스템 변수 MM/DD/YYYY가 사용됩니다.
5인 first_week_day 인수. 음력 주가 1월 5일에 시작하도록 설정됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
inlunarweek(date,'01/10/2022', 0,5) as in_lunar_week
;
Load
*
Inline
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.
결과 테이블
1/5/2022
0
1/6/2022
-1
1/7/2022
-1
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
0
1/14/2022
0
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
inlunarweek() 함수, first_week_day 예
이 경우 inlunarweek() 함수에서 first_week_date 인수가 5로 사용되므로 음력 주 캘린더의 시작을 1월 6일로 오프셋합니다. 따라서 1월 10일은 1월 6일에 시작하여 1월 12일에 끝나는 음력 주에 속합니다. 이 두 날짜 사이에 속한 모든 트랜잭션은 부울 값 TRUE 를 반환합니다.
예 4 - 차트 개체
로드 스크립트 및 차트 표현식:
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
그러나 이 예에서는 변경되지 않은 데이터 집합이 응용 프로그램에 로드됩니다. 트랜잭션이 1월 10일과 같은 음력 주에 발생했는지 여부를 확인하는 계산은 응용 프로그램의 차트 개체에서 측정값으로 만들어집니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
결과
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다. date .
트랜잭션이 1월 10일을 포함하는 음력 주에 발생하는지 여부를 계산하려면 다음 측정값을 만듭니다.
= inlunarweek(date,'01/10/2022', 0)
결과 테이블
1/5/2022
0
1/6/2022
0
1/7/2022
0
1/8/2022
-1
1/9/2022
-1
1/10/2022
-1
1/11/2022
-1
1/12/2022
-1
1/13/2022
-1
1/14/2022
-1
1/15/2022
0
1/16/2022
0
1/17/2022
0
1/18/2022
0
1/19/2022
0
1/20/2022
0
1/21/2022
0
1/22/2022
0
1/23/2022
0
예 5 - 시나리오
로드 스크립트 및 차트 표현식:
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Products 라는 테이블에 로드되는 데이터 집합.
제품 ID, 제조 날짜, 원가로 구성된 정보.
장비 오류로 인해 1월 12일을 포함하는 음력 주에 제조된 제품에 결함이 있는 것으로 확인되었습니다. 최종 사용자는 제조된 제품이 '결함' 또는 '무결함'인 상태와 해당 월에 제조된 제품의 비용을 음력 주 이름별로 표시하는 차트 개체를 원합니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
product_id,manufacture_date,cost_price
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
결과
다음과 같이 하십시오.
데이터를 로드하고 시트를 엽니다. 새 테이블을 만듭니다.
월 이름을 표시하는 차원을 만듭니다.
=lunarweekname(manufacture_date)
inlunarweek() 함수를 사용하여 결함이 있는 제품과 결함이 없는 제품을 식별하는 측정값을 만듭니다.
=if(only(inlunarweek(manufacture_date,makedate(2022,01,12),0)), 'Defective','Faultless')
제품의 cost_price 합계를 계산하는 측정값을 만듭니다.
=sum(cost_price)
측정값의 숫자 형식 을 화폐 로 설정합니다.
모양 에서 합계 를 끕니다.
결과 테이블
2022/01
Faultless
$125.79
2022/02
Defective
$316.38
2022/03
Faultless
$455.75
2022/04
Faultless
$146.09
inlunarweek() 함수는 각 제품의 제조 날짜를 평가할 때 부울 값을 반환합니다. 1월 10일이 포함된 음력 주에 제조된 모든 제품에 대해 inlunarweek() 함수는 부울 값 TRUE 를 반환하고 제품을 '결함'으로 표시합니다. 값 FALSE 를 반환하여 해당 주에 제조되지 않은 제품의 경우 제품을 '무결함'으로 표시합니다.