brunch

You can make anything
by writing

C.S.Lewis

by GTPlus Aug 03. 2023

Pick, Valuelist, Match 함수

Qlik Sense 함수

안녕하세요. GTPlus 김대리입니다.


BI 솔루션 클릭(Qlik) 튜토리얼 열일곱 번째 시간입니다.

Pick , Valuelist , Match 함수를 소개해드립니다.



오늘은 함수 세 가지를 사용해서 전국 주간 TV 데이터를 [지상파/지상파 외]로 분류하고 각각의 시청자 수를 반환하는 예제를 가져왔습니다.


TV 시청 데이터를 ValueList로 만든 가상 차원에서 Match 함수를 통해 ‘지상파’에는 1, ‘지상파 외’는 2를 반환하고, Pick 함수를 통해 순서대로 지상파의 시청자 수, 지상파를 제외한 시청자 수를 반환하는 예제를 설명하겠습니다.     



Pick

Pick은 스크립트 및 차트 함수로, 목록 내 n번째 표현식을 반환합니다.


구문은 Pick(n, expr1[ ,expr2, …exprN]) 형식이며 n은 1과 N 사이의 정수입니다. 


예로 다음과 같이 나타낼 수 있습니다. 


1,2,3,4의 값을 가지는 “N”이라는 필드에 Pick(N, ‘A’, ‘B’, 4, 6) 수식이 적용되면, 

N = 1일 경우 ‘A’를 반환, N = 3일 경우, 4를 반환합니다.



Valuelist

ValueList는 차트 함수로, 계산 차원에 사용할 가상 차원을 형성할 수 있습니다.


구문은 ValueList(v1 {, v2,… vN}) 형식이며 v1~vN은 정적 값의 목록입니다. 정적 값은 문자열 또는 숫자가 될 수 있습니다.


예로 다음과 같이 나타낼 수 있습니다.


ValueList(‘짝수’, ‘홀수’) => ‘짝수’와 ‘홀수’ 값을 가지는 가상의 차원이 생성됩니다.

ValueList(100,200,300) => 100,200,300 값을 가지는 가상의 차원이 생성됩니다.



Match 

Match는, 스크립트 및 차트 함수로, 첫 번째 파라미터를 이후의 모든 파라미터와 비교하여 일치하는 표현식의 위치를 반환합니다.


구문은 Match( str, expr1 [ , expr2,...exprN ]) 형식이며, 대/소문자를 구분하여 비교합니다. 


예로 다음과 같이 나타낼 수 있습니다.

비교하고자 하는 str이 Valuelist로 생성한 차원 목록일 때, Valuelist의 값인 ‘지상파’와 ‘지상파 외’가 위치한 순서에 따라 반환되는 값의 차이를 확인하십시오.



주간 별로 지상파, 종편, 케이블 채널의 시청자 수, 시청률 상위 10개의 프로그램의 데이터입니다. 

측정값 컬럼에는 시청자 수와 시청률 값이 같이 들어있으며, 구분 컬럼으로 구분 가능합니다.




시트에 집계기간 필터와 전국 주간 조사 데이터를 테이블로 추가해 보면 다음과 같습니다.



하나의 테이블에 시청자 수와 시청률이 함께 나오고 있습니다. Pick 함수를 활용하여 시청자 수 또는 시청률 데이터만 나오도록 변경하겠습니다.



1. 변수를 생성합니다.



시트 편집모드 - 왼쪽 하단의 "변수 대화 상자"를 통해 아래와 같은 변수를 생성합니다. 

변수명 : vSelect1

정의 : 1



2. 변수 생성 후, 화면에 2개의 버튼 차트를 추가합니다.


종류 : 버튼

차트 속성 : 각각 아래 그림과 같이 추가합니다.


시청률 속성
시청자수 속성


시청자수를 선택하면 vSelect1변수의 값은 1, 시청률을 선택하면 vSelect1 변수의 값은 2가 됩니다.


버튼의  [모양 – 배경 – 배경색]을 '단색'에서 "표현식 기준"으로 변경하고, 아래 수식을 입력합니다.

시청자 수 버튼 :  =If($(vSelect1) = 1, '#388E3C', '#C8E6C9')

시청률 버튼 : =If($(vSelect1) = 2, '#388E3C', '#C8E6C9')




3. 버튼 작동에 따라 측정값이 변경되도록 측정값 수식을 변경합니다.


측정값의 의미는,

vSelect1 변수의 값이 1일 때, 시청자 수를 나타내는 측정값을 반환

vSelect1 변수의 값이 2일 때, 시청률을 나타내는 측정값을 반환

입니다.




4. 편집 완료 버튼을 눌러 분석 모드에서 화면을 살펴보면 선택한 버튼에 따라 테이블의 값이 바뀌는 것을 확인할 수 있습니다. 





현재 선택한 집계 기간에 상위 10위를 차지하는 프로그램들이 속한 채널들은 다음과 같습니다.

지상파에 4개의 채널, 종편에 3개의 채널, 케이블에 3개의 채널의 프로그램들이 상위 10위를 차지하고 있습니다. 



현재 3개로 나뉘어 있는 송출 분류를, 지상파 그리고 지상파 외 2개로 구분하여 주간 TV 시청 데이터를 보고 싶다면 어떻게 해야 할까요?

 

Qlik에서는 추가적인 데이터 전처리를 하지 않고 시각화 단계에서 바로 구성할 수 있습니다. 

ValueList 함수를 활용하여 가상 차원을 생성할 수 있기 때문입니다. 



1. 데이터를 나타낼 피벗 테이블을 시트에 추가합니다.



2. 차원 - 행에 ValueList 함수를 사용해서 가상 차원을 생성합니다. 

레이블은 “분류”로 입력합니다 



3.  차원 – 행에 '채널'을 추가합니다.


4. 아래 그림의 시청자 수를 나타내는 측정값 표현식을 입력합니다.



여기서 잠깐! 측정값 표현식에 앞서 설명에 없던 함수가 등장했습니다. Match 입니다.


따라서 측정값 표현식의 의미는, 

Match 함수를 통해 ValueList로 만든 가상 차원에서 ‘지상파’에는 1, ‘지상파 외’에는 2가 반환

Pick 함수를 통해 순서대로 지상파의 시청자 수, 지상파를 제외한 시청자 수를 반환 

입니다.




5. 다음으로 피벗 테이블 [속성 패널 – 추가 기능 – 데이터처리 – zero 값 포함]을 해제합니다.




6. 편집 완료 버튼을 눌러 분석 모드에서 화면을 살펴보면 지상파와 지상파를 제외한 채널로 구분되어 나타나는 것을 확인할 수 있습니다. 






Pick, Valuelist, Match 함수를 활용하여  최종 데이터 시각화 화면을 통해 데이터 탐색을 진행해 보겠습니다.

전체 데이터를 보여주는 첫 화면입니다. 집계기간 피터 창에서 "2022년7월25일~31일"을 선택합니다. 



시청자 수 버튼을 눌러 시청자 수 기준으로 데이터를 확인합니다. 




송출 분류 중 케이블을 선택하여, 케이블 기준 시청자 수 상위 10개의 프로그램을 확인해 봅니다.



리포팅 결과 : 2022년 7월 27일 ~31일 한 주 동안 케이블 채널에서 시청자 수 


1위는 현재 인기 드라마인 "이상한 변호사 우영우"로 시청자 수가 4,049 천명

2위는 토일 드라마 "환혼"으로 시청자 수는 1,740 천명

3위는 "극한의출장요리사백패커"로 시청자 수는 908천명


인 것을 알 수 있습니다.





앞으로도 좋은 인사이트로 찾아뵙겠습니다.

그럼 다음 김대리의 클릭에서 또 만나요!




► 클릭 센스 브로셔 다운받기

GTPlus DMS


► 클릭 센스 30일 무료 체험 신청하기

https://bit.ly/3jHK0l8


► 클릭 센스 문의하기

http://www.gtplus.co.kr/etc




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari