monthsname() 함수는 제공된 n_months 인수를 기반으로 연도를 세그먼트로 나눕니다. 그런 다음 제공된 각 date가 속한 세그먼트를 평가하고 해당 세그먼트의 시작 및 종료 월 이름과 연도를 반환합니다. 또한 이 함수는 연도의 첫 번째 달을 재정의할 뿐만 아니라 앞 또는 뒤 세그먼트에서 이러한 경계를 반환하는 기능을 제공합니다.
함수에서 n_month 인수로 사용할 수 있는 연도의 다음 세그먼트:
가능한 n_month 인수
기간
개월 수
1개월
1
2개월
2
분기
3
4개월
4
6개월
6
인수
인수
설명
n_months
기간을 정의하는 개월 수입니다. 정수 또는 정수로 처리되는 표현식으로, 1(inmonth() 함수와 동일), 2(2개월), 3(inquarter() 함수와 동일), 4(4개월 기간) 또는 6(6개월) 중 하나여야 합니다.
date
평가할 날짜 또는 타임스탬프입니다.
period_no
기간은 period_no, 정수 또는 정수로 처리되는 표현식으로 오프셋을 지정할 수 있습니다. 값 0은 base_date를 포함하는 기간을 나타냅니다. period_no가 음수 값일 경우 이전 기간, 양수 값일 경우 다음 기간을 나타냅니다.
first_month_of_year
1월에 시작되지 않는 (회계)연도를 사용하려는 경우 first_month_of_year에 2와 12 사이의 값을 지정하십시오.
사용 시기
monthsname() 함수는 선택한 기간별로 집계를 비교하는 기능을 사용자에게 제공하려는 경우에 유용합니다. 예를 들어, 입력 변수를 제공하여 사용자가 월별, 분기별 또는 반기별 총 제품 판매를 볼 수 있도록 할 수 있습니다.
이러한 차원은 함수를 마스터 캘린더 테이블의 필드로 추가하여 로드 스크립트에서 만들거나 차트에서 계산된 차원으로 차원을 직접 만들 수 있습니다.
함수 예
예
결과
monthsname(4, '10/19/2013')
'Sep-Dec 2013'을 반환합니다. 이 예와 다른 예에서 SET Monthnames 문은 Jan;Feb;Mar 등으로 설정됩니다.
monthsname(4, '10/19/2013', -1)
'May-Aug 2013'을 반환합니다.
monthsname(4, '10/19/2013', 0, 2)
연도가 월 2에 시작하도록 지정되었으므로 'Oct-Jan 2014'를 반환합니다. 따라서 4개월 기간은 다음 해의 첫 번째 달에 끝납니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
예 1 – 기본 예
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Transactions라는 테이블에 로드되는 2022년 트랜잭션 집합이 포함된 데이터 집합.
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
트랜잭션을 2개월 세그먼트로 그룹화하고 각 트랜잭션에 대한 해당 세그먼트의 경계 이름을 반환하는 필드 bi_monthly_range 만들기.
'bi_monthly_range' 필드는 monthsname() 함수를 사용하여 선행 LOAD 문에서 만들어집니다. 제공된 첫 번째 인수는 2이며, 연도를 2개월 세그먼트로 나눕니다. 두 번째 인수는 평가 중인 필드를 식별합니다.
트랜잭션 8195는 5월 22일에 발생합니다. monthsname() 함수는 처음에 연도를 2개월 세그먼트로 나눕니다. 트랜잭션 8195는 5월 1일에서 6월 30일 사이의 세그먼트에 속합니다. 따라서 이 함수는 MonthNames 시스템 변수 서식으로 이러한 월과 연도를 반환합니다(May-Jun 2022).
예 2 – period_no
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
첫 번째 예와 동일한 인라인 데이터 집합 및 시나리오.
트랜잭션을 2개월 세그먼트로 그룹화하고 각 트랜잭션에 대한 이전 세그먼트 경계 이름을 반환하는 필드 prev_bi_monthly_range 만들기.
monthsname() 함수의 first_month_of_year 인수로 4를 사용하면 이 함수는 연도를 4월 1일에 시작합니다. 그런 다음 연도를 2개월 세그먼트로 나눕니다. Apr-May,Jun-Jul,Aug-Sep,Oct-Nov,Dec-Jan,Feb-Mar.
결과에 대한 단락 텍스트입니다.
트랜잭션 8195는 5월 22일에 발생했으며 4월 1일에서 5월 31일 사이에 해당합니다. 따라서 함수는 Apr-May 2022를 반환합니다.
예 4 – 차트 개체 예
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
이 로드 스크립트에는 첫 번째 예와 동일한 인라인 데이터 집합 및 시나리오가 포함되어 있습니다. 그러나 이 예에서는 변경되지 않은 데이터 집합이 응용 프로그램에 로드됩니다. 트랜잭션을 2개월 세그먼트로 그룹화하고 각 트랜잭션에 대한 세그먼트 경계를 반환하는 계산은 응용 프로그램의 차트 개체에서 측정값으로 만들어집니다.
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.date.
다음 측정값을 만듭니다.
=monthsname(2,date)
결과 테이블
date
=monthsname(2,date)
2/19/2022
Jan-Feb 2022
3/7/2022
Mar-Apr 2022
3/30/2022
Mar-Apr 2022
4/5/2022
Mar-Apr 2022
4/16/2022
Mar-Apr 2022
5/1/2022
May-Jun 2022
5/7/2022
May-Jun 2022
5/22/2022
May-Jun 2022
6/15/2022
May-Jun 2022
6/26/2022
May-Jun 2022
7/9/2022
Jul-Aug 2022
7/22/2022
Jul-Aug 2022
7/23/2022
Jul-Aug 2022
7/27/2022
Jul-Aug 2022
8/2/2022
Jul-Aug 2022
8/8/2022
Jul-Aug 2022
8/19/2022
Jul-Aug 2022
9/26/2022
Sep-Oct 2022
10/14/2022
Sep-Oct 2022
10/29/2022
Sep-Oct 2022
bi_monthly_range 필드는 monthsname() 함수를 사용하여 차트 개체에서 측정값으로 만들어집니다. 제공된 첫 번째 인수는 2이며, 연도를 2개월 세그먼트로 나눕니다. 두 번째 인수는 평가 중인 필드를 식별합니다.
트랜잭션 8195는 5월 22일에 발생합니다. monthsname() 함수는 처음에 연도를 2개월 세그먼트로 나눕니다. 트랜잭션 8195는 5월 1일에서 6월 30일 사이의 세그먼트에 속합니다. 따라서 이 함수는 MonthNames 시스템 변수 서식으로 이러한 월과 연도를 반환합니다(May-Jun 2022).
예 5 – 시나리오
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Transactions라는 테이블에 로드되는 2022년 트랜잭션이 포함된 데이터 집합.
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
최종 사용자는 선택한 기간별로 총 판매액을 표시하는 차트 개체를 원합니다. 이는 변수 입력 컨트롤에 의해 동적으로 수정되는 계산 차원으로 monthsname() 함수를 사용하여 데이터 모델에서 이 차원을 사용할 수 없는 경우에도 구현할 수 있습니다.