lunarweekstart - 스크립트 및 차트 함수이 페이지에서
이 함수는 date 를 포함하는 음력 주의 첫 번째 날의 첫 번째 밀리초의 타임스탬프에 해당하는 값을 반환합니다. Qlik Sense 에서 음력 주는 1월 1일을 주의 첫 번째 날로 계산하여 정의되며, 연도의 마지막 주를 제외하고 정확히 7일이 포함됩니다.
구문:
LunarweekStart( date[, period_no[, first_week_day]] )
반환 데이터 유형: dual
lunarweekstart() 함수는 date 가 속하는 음력 주를 확인합니다. 그런 다음 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다.
lunarweekstart() 함수의 다이어그램 예
인수
date
평가할 날짜 또는 타임스탬프입니다.
period_no
period_no 는 정수 또는 정수로 처리되는 표현식이며, 값 0은 date 를 포함하는 음력 주를 나타냅니다. period_no 가 음수 값일 경우 이전 음력 주, 양수 값일 경우 다음 음력 주를 나타냅니다.
first_week_day
0보다 크거나 작을 수 있는 오프셋입니다. 이 함수는 지정된 일수 및/또는 일의 분위수에 따른 연도 시작 날짜를 변경합니다.
사용 시기
lunarweekstart() 함수는 일반적으로 사용자가 지금까지 경과된 주의 부분을 사용하여 계산하려고 할 때 표현식의 일부로 사용됩니다. weekstart() 함수와 달리, 새로운 캘린더 연도가 시작될 때마다 주는 1월 1일에 시작하고 다음 주는 7일 후에 시작됩니다. lunarweekstart() 함수는 FirstWeekDay 시스템 변수의 영향을 받지 않습니다.
예를 들어, lunarweekstart() 는 해당 주부터 현재까지 누적된 이자를 계산하는 데 사용할 수 있습니다.
함수 예
lunarweekstart('01/12/2013')
01/08/2013 를 반환합니다.
lunarweekstart('01/12/2013', -1)
01/01/2013 을 반환합니다.
lunarweekstart('01/12/2013', 0, 1
)
first_week_day 를 1 로 설정하면 연도의 시작이 01/02/2013 으로 변경됨을 의미하므로 01/09/2013 을 반환합니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense 가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense 는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 추가 인수 없음 로드 스크립트 및 결과 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekstart(date) as start_of_week,
timestamp(lunarweekstart(date)) as start_of_week_timestamp
;
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
start_of_week
start_of_week_timestamp
결과 테이블 1/7/2022 01/01/2022 1/1/2022 12:00:00 AM 1/19/2022 01/15/2022 1/15/2022 12:00:00 AM 2/5/2022 02/05/2022 2/5/2022 12:00:00 AM 2/28/2022 02/26/2022 2/26/2022 12:00:00 AM 3/16/2022 03/12/2022 3/12/2022 12:00:00 AM 4/1/2022 03/26/2022 3/26/2022 12:00:00 AM 5/7/2022 05/07/2022 5/7/2022 12:00:00 AM 5/16/2022 05/14/2022 5/14/2022 12:00:00 AM 6/15/2022 06/11/2022 6/11/2022 12:00:00 AM 6/26/2022 06/25/2022 6/25/2022 12:00:00 AM 7/9/2022 07/09/2022 7/9/2022 12:00:00 AM 7/22/2022 07/16/2022 7/16/2022 12:00:00 AM 7/23/2022 07/23/2022 7/23/2022 12:00:00 AM 7/27/2022 07/23/2022 7/23/2022 12:00:00 AM 8/2/2022 07/30/2022 7/30/2022 12:00:00 AM 8/8/2022 08/06/2022 8/6/2022 12:00:00 AM 8/19/2022 08/13/2022 8/13/2022 12:00:00 AM 9/26/2022 09/24/2022 9/24/2022 12:00:00 AM 10/14/2022 10/08/2022 10/8/2022 12:00:00 AM 10/29/2022 10/29/2022 10/29/2022 12:00:00 AM
start_of_week 필드는 lunarweekstart() 함수를 사용하고 date 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.
lunarweekstart() 함수는 날짜가 속하는 음력 주를 식별하여 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 반환합니다.
lunarweekstart() 함수 다이어그램, 추가 인수가 없는 예
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekstart() 함수는 음력 주가 1월 15일에 시작함을 식별합니다. 따라서 해당 트랜잭션의 start_of_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 15일 오전 12:00:00를 반환합니다.
예 2 – period_no 로드 스크립트 및 결과 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekstart(date,-1) as previous_lunar_week_start,
timestamp(lunarweekstart(date,-1)) as previous_lunar_week_start_timestamp
;
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
];
결과
결과 테이블 1/7/2022 12/24/2021 12/24/2021 12:00:00 AM 1/19/2022 01/08/2022 1/8/2022 12:00:00 AM 2/5/2022 01/29/2022 1/29/2022 12:00:00 AM 2/28/2022 02/19/2022 2/19/2022 12:00:00 AM 3/16/2022 03/05/2022 3/5/2022 12:00:00 AM 4/1/2022 03/19/2022 3/19/2022 12:00:00 AM 5/7/2022 04/30/2022 4/30/2022 12:00:00 AM 5/16/2022 05/07/2022 5/7/2022 12:00:00 AM 6/15/2022 06/04/2022 6/4/2022 12:00:00 AM 6/26/2022 06/18/2022 6/18/2022 12:00:00 AM 7/9/2022 07/02/2022 7/2/2022 12:00:00 AM 7/22/2022 07/09/2022 7/9/2022 12:00:00 AM 7/23/2022 07/16/2022 7/16/2022 12:00:00 AM 7/27/2022 07/16/2022 7/16/2022 12:00:00 AM 8/2/2022 07/23/2022 7/23/2022 12:00:00 AM 8/8/2022 07/30/2022 7/30/2022 12:00:00 AM 8/19/2022 08/06/2022 8/6/2022 12:00:00 AM 9/26/2022 09/17/2022 9/17/2022 12:00:00 AM 10/14/2022 10/01/2022 10/1/2022 12:00:00 AM 10/29/2022 10/22/2022 10/22/2022 12:00:00 AM
이 경우 lunarweekstart() 함수에서 period_no -1을 오프셋 인수로 사용했으므로 이 함수는 먼저 트랜잭션이 발생한 음력 주를 식별합니다. 그런 다음 일주일 전으로 시프트하여 해당 음력 주의 첫 번째 밀리초를 식별합니다.
lunarweekstart() 함수의 다이어그램, period_no 예
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekstart() 함수는 음력 주가 1월 15일에 시작함을 식별합니다. 따라서 이전 음력 주는 1월 8일 오전 12:00:00에 시작되었습니다. 이는 previous_lunar_week_start 필드에 대해 반환된 값입니다.
예 3 – first_week_day 로드 스크립트 및 결과 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 로드 스크립트에는 첫 번째 예와 동일한 데이터 집합 및 시나리오가 포함되어 있습니다. 이 예에서는 음력 주를 1월 5일에 시작하도록 설정했습니다.
로드 스크립트
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
lunarweekstart(date,0,4) as start_of_week,
timestamp(lunarweekstart(date,0,4)) as start_of_week_timestamp
;
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
start_of_week
start_of_week_timestamp
결과 테이블 1/7/2022 01/05/2022 1/5/2022 12:00:00 AM 1/19/2022 01/19/2022 1/19/2022 12:00:00 AM 2/5/2022 02/02/2022 2/2/2022 12:00:00 AM 2/28/2022 02/23/2022 2/23/2022 12:00:00 AM 3/16/2022 03/16/2022 3/16/2022 12:00:00 AM 4/1/2022 03/30/2022 3/30/2022 12:00:00 AM 5/7/2022 05/04/2022 5/4/2022 12:00:00 AM 5/16/2022 05/11/2022 5/11/2022 12:00:00 AM 6/15/2022 06/15/2022 6/15/2022 12:00:00 AM 6/26/2022 06/22/2022 6/22/2022 12:00:00 AM 7/9/2022 07/06/2022 7/6/2022 12:00:00 AM 7/22/2022 07/20/2022 7/20/2022 12:00:00 AM 7/23/2022 07/20/2022 7/20/2022 12:00:00 AM 7/27/2022 07/27/2022 7/27/2022 12:00:00 AM 8/2/2022 07/27/2022 7/27/2022 12:00:00 AM 8/8/2022 08/03/2022 8/3/2022 12:00:00 AM 8/19/2022 08/17/2022 8/17/2022 12:00:00 AM 9/26/2022 09/21/2022 9/21/2022 12:00:00 AM 10/14/2022 10/12/2022 10/12/2022 12:00:00 AM 10/29/2022 10/26/2022 10/26/2022 12:00:00 AM
이 경우 lunarweekstart() 함수에서 first_week_date 인수가 4로 사용되므로 연도의 시작을 1월 1일에서 1월 5일로 오프셋합니다.
lunarweekstart() 함수 다이어그램, first_week_day 예
트랜잭션 8189는 1월 19일에 발생했습니다. 음력 주가 1월 5일에 시작하므로 lunarweekstart() 함수는 1월 19일을 포함하는 음력 주가 1월 19일 오전 12:00:00에도 시작함을 식별합니다. 따라서 start_of_week 필드에 대해 반환된 값입니다.
예 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 .
다음 측정값을 추가합니다.
=lunarweekstart(date)
=timestamp(lunarweekstart(date))
결과 테이블 1/7/2022 01/01/2022 1/1/2022 12:00:00 AM 1/19/2022 01/15/2022 1/15/2022 12:00:00 AM 2/5/2022 02/05/2022 2/5/2022 12:00:00 AM 2/28/2022 02/26/2022 2/26/2022 12:00:00 AM 3/16/2022 03/12/2022 3/12/2022 12:00:00 AM 4/1/2022 03/26/2022 3/26/2022 12:00:00 AM 5/7/2022 05/07/2022 5/7/2022 12:00:00 AM 5/16/2022 05/14/2022 5/14/2022 12:00:00 AM 6/15/2022 06/11/2022 6/11/2022 12:00:00 AM 6/26/2022 06/25/2022 6/25/2022 12:00:00 AM 7/9/2022 07/09/2022 7/9/2022 12:00:00 AM 7/22/2022 07/16/2022 7/16/2022 12:00:00 AM 7/23/2022 07/23/2022 7/23/2022 12:00:00 AM 7/27/2022 07/23/2022 7/23/2022 12:00:00 AM 8/2/2022 07/30/2022 7/30/2022 12:00:00 AM 8/8/2022 08/06/2022 8/6/2022 12:00:00 AM 8/19/2022 08/13/2022 8/13/2022 12:00:00 AM 9/26/2022 09/24/2022 9/24/2022 12:00:00 AM 10/14/2022 10/08/2022 10/8/2022 12:00:00 AM 10/29/2022 10/29/2022 10/29/2022 12:00:00 AM
start_of_week 측정값은 lunarweekstart() 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.
lunarweekstart() 함수는 날짜 값이 속하는 음력 주를 식별하고 해당 주의 마지막 밀리초에 대한 타임스탬프를 반환합니다.
lunarweekstart() 함수의 다이어그램, 차트 개체 예
트랜잭션 8189는 1월 19일에 발생했습니다. lunarweekstart() 함수는 음력 주가 1월 15일에 시작함을 식별합니다. 따라서 해당 트랜잭션의 start_of_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 15일 오전 12:00:00입니다.
예 5 – 시나리오 로드 스크립트 및 차트 표현식 개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Loans 라는 테이블에 로드되는 대출 잔액 집합이 포함된 데이터 집합.
대출 ID, 주초 잔액, 각 대출에 연간 부과되는 단순 이자율로 구성된 데이터.
최종 사용자는 해당 주부터 현재까지 각 대출에 대해 발생한 현재 이자를 대출 ID별로 표시하는 차트 개체를 원합니다.
로드 스크립트
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
결과
다음과 같이 하십시오.
데이터를 로드하고 시트를 엽니다. 새 테이블을 만듭니다.
다음 필드를 차원으로 추가합니다.
그런 다음 누적된 이자를 계산하기 위해 다음 측정값을 만듭니다.
=start_balance*(rate*(today(1)-lunarweekstart(today(1)))/365)
측정값의 숫자 형식 을 화폐 로 설정합니다.
결과 테이블 8188 $10000.00 $15.07 8189 $15000.00 $128.84 8190 $17500.00 $63.29 8191 $21000.00 $107.59 8192 $90000.00 $1139.18
오늘 날짜를 유일한 인수로 사용하는 lunarweekstart() 함수는 현재 연도의 시작 날짜를 반환합니다. 이 표현식은 현재 날짜에서 해당 결과를 빼서 이번 주 지금까지 경과한 일 수를 반환합니다.
그런 다음 이 값에 이자율을 곱하고 365로 나누어 이 기간 동안 발생한 유효 이자율을 반환합니다. 그런 다음 결과에 대출의 시작 잔액을 곱하여 이번 주 지금까지 발생한 이자를 반환합니다.