본문 바로가기

Qlik Sense 개발가이드

IntervalMatch - 일자 구간에 해당하는 값을 적용

일자 구간에 해당하는 값을 적용

 

실제 BI를 구축하는데 해당하는 값을 일자 구간에 따라 다르게 적용하는 사례가 많습니다. 인사업무에서는 부서의 상위부서 적용, 직위의 명칭 사용 등의 사례가 있습니다. 영업업무에서는 판매실적 테이블에서 상품별로 판매단가를 일자별로 다르게 적용하고 있습니다. 관리회계에서는 계정별 집계를 할 경우 구간을 지정하여 적용할 수 있다.

 

이번에 소개할 기능은 클릭센스(Qlik Sense)의 강력한 함수인 IntervalMatch 함수를 사용하여 일자 구간에 해당하는 값을 매칭하는 방법을 소개합니다.

 

기본 데이터

 

단가테이블에 상품별로 단가를 적용시작일이 지정되어 있습니다. 위 데이터에서 식빵은 20210701부터 20210731일가지 1200원이 적용되고 20210801부터 20210831까지는 1250원 적용되며 20210901부터는 1300이 적용되어야 합니다.

 

작업단계

1단계

단가테이블의 적용일 필드를 날짜형으로 변환하여 적재한다.

 

 

 

2 단계

상품별, 적용일 기준으로 정렬시킨다. 이때 적용일은 최근순으로 정렬시킨다.

 

3 단계

Previous Peek 함수를 이용하여 종료일 필드를 생성한다.

Previous Peek 함수에 대한 설명은 이전 글을 참조한다.

https://blog.naver.com/about_qlik/221495785491

 

 

최종 생성된 상품단가 테이블의 결과

 

 

 

4 단계

판매데이터(Orders)를 적재하고, 판매일을 날짜형으로 변환한다.

 

5 단계

Orders 테이블의 판매일, Product를 기준으로 이전에 생성된 Tmp_3rd (단가테이블)에서 적용일, 종료일 및 Product IntervalMatch 함수를 이용하여 비교하여 Orders 테이블에 Inner Join 시킨다.

 

IntervalMatch 에 대한 설명서를 참조한다.

IntervalMatch Windows에서의 Qlik Sense

IntervalMatch 접두사는 불연속 숫자 값과 하나 이상의 숫자 간격을 연결하며, 선택적으로 하나 이상의 추가 키의 값을 연결하는 테이블을 만드는 데 사용됩니다.

5 단계후의 모델

5 단계까지 종료된 후의 모델입니다.

 

[Orders] [Tmp_3rd] 테이블 이외에 [$Syn 1 Table] 이라는 가상테이블(Synthetic Table)이 생성됩니다. 이 부분에 대한 설명은 별도의 글에서 합니다. 가상 테이블은 클릭센스에서 자동으로 생성하는 테이블이며, [Orders] [Tmp_3rd] 테이블에서 공통의 필드를 조합한 테이블이 생성됩니다.

이로써 모든 전처리 및 모델링이 완료되었습니다.

 

모델링 후 판매테이블 조회 결과

 

판매일자별 상품별 단가를 적용한 결과

가상테이블의 제거

5 단계에서 종료할 수 있고, 이 후 다음 스크립트를 이용하여 가상테이블을 제거할 수 있습니다.

결론

IntervalMatch 를 이해하여 날짜 구간별 값을 적용하는 사례를 살펴보았습니다. 실제 업무에 많은 적용사례가 있습니다. 난이도가 조금 높지만 이해를 한 후 적용하기를 권장합니다.

 

 

클릭센스에 대한 기술자료들은

https://qliksense.tistory.com/

 

클릭커

차체대 시각화 솔루션 Qlik Sense 란? Qlik Sense 에 대하여 살펴보자.

qliksense.tistory.com

 

 

첨부파일들은 기술자료 및 예제 앱

Dev_IntervalMatch 예제.qvf
0.23MB
IntervalMatch 예제.pdf
0.31MB