목차
인삿말
안녕하세요! 대기업 BI 입니다. 😀
오늘은 제가 좋아하는 Power BI 유튜버가 강의했던 내용을 보고 가져와본 내용입니다.
궁금하신 분들은 링크 남겨드리니 원본을 보셔도 괜찮습니다.
https://www.youtube.com/watch?v=KgkOY4-sUUQ
그럼 이번에 해볼 내용은요
"New 카드" 시각적 개체에 진행률 표현하기 입니다.
결과를 바로한번 살펴볼까요?
바로 위쪽에 각 제조업체 별 설치대수, 목표 달성률 등을 카드에 나타내고
"달성률" or "진행률" 등의 Process Bar를 시각적 개체에 나타내는 것입니다.
그럼 지체없이 바로 시작해볼게요! 😀
New 카드 시각적 개체 알아보기
먼저 New 카드 시각적 개체는
기존 카드 시각적 개체와 다르게 구현의 자유도가 높습니다.
예로 이미지 Url을 이용해 이미지를 삽입 사용할 수도 있구요.
위치는 [홈] 리본 메뉴 탭 - 계기, 카드 및 KPI [카드(신규)]에 있습니다.
해당 시각적 개체를 클릭하면 아래와 같은 화면으로 개체가 만들어질텐데,
먼저 개체에 들어갈 측정값을 만들어볼게요.
총 5개의 측정값을 만들어야 하는데요.
※ 측정값을 "폴더"로 정리하는 법이 궁금하신 분들은 아래 포스팅 참조해주세요!
측정값 DAX 효율적으로 정리하기
목차 인삿말 안녕하세요! 대기업 BI 입니다. 😀 이번에는 Power BI에서 DAX를 작성하여 구성하는 "측정값"을 어떻게 보기좋게 정리할 수 있을지 알려드리고자 합니다. 그럼 바로 측정값을 정리하
www.bigcorpbi.com
측정값 구성하기 (총 5개)
1) 설치대수 = COUNTA('파워쿼리기본'[승강기번호])
항상 구성해본 측정값이라 어렵지 않죠?
[승강기번호]의 개수를 세는 측정값 입니다.
"빈 셀을 제외한 숫자/문자"를 모두 세는 DAX 구문이죠?
2) 설치대수목표CQ = 1500
목표는 대부분 별도 테이블로 정리해서 월별, 연별 목표를 선정합니다만
현재는 단순 예시를 보여주기 위함이므로 위와 같이 구성해주시고,
혹시 별도 목표 테이블을 BI 가져왔다면 목표는 SUM 등으로 특정값을 가져와주면 되겠죠?
※ 궁금하신분들은 댓글 남겨주세요.
3) 설치대수CQ =
var _cal = CALCULATE( MAX('날짜'[연No]) , ALLSELECTED('날짜') )
var _cal2 = QUARTER( LASTNONBLANK( '날짜'[Date] , [설치대수] ) )
var _cal3 = CALCULATE(
[설치대수],
'날짜'[연No] = _cal,
'날짜'[분기] = _cal2,
CONTAINSSTRING('파워쿼리기본'[제조업체명],"현대"))
return
_cal3
갑자기 복잡한 함수가 나왔는데..
하나씩 살펴볼게요.
(1) var _cal = CALCULATE( MAX('날짜'[연No]) , ALLSELECTED('날짜')
1) CALCULATE 함수를 이용해서 최종 연도의 MAX 값을 가져오고
2) ALLSELECTED 함수를 이용해 외부 필터링을 적용한 하나의 테이블이 반환되도록 합니다.
그럼 현재 제가 가진 "날짜" 테이블의 값 중에서 "연No" 칼럼의 MAX 값을 가져오겠죠?
(2) var _cal2 = QUARTER( LASTNONBLANK( '날짜'[Date] , [설치대수] ) )
1) QUARTER 함수를 이용해 마지막 날짜의 (MAX 날짜) 분기를 가져오고
2) 마지막으로 비어있지 않은 날짜의 [설치대수]를 반환해줍니다.
※ 어차피 쿼터만 가져오려고 사용하는 DAX이므로 뒤 [설치대수]에 1을 넣어도 무방합니다.
(3) var _cal3 = CALCULATE(
[설치대수],
'날짜'[연No] = _cal,
'날짜'[분기] = _cal2,
CONTAINSSTRING('파워쿼리기본'[제조업체명],"현대"))
return
_cal3
마지막은 비교적 간단한데,
1) [설치대수] 측정값을 가져오기 위해
2) 아까 위에서 만든 MAX 연도와 MAX 분기를 특정해주고,
3) 마지막 "제조업체명"이 "현대"를 포함하면 모두 가져오는 측정값입니다.
4) 그리고 마지막으로 변수형 var 구조를 사용하면 return은 필수죠?
4) 카드_데이터바 =
var _cal = 25
var _cal2 = MIN( DIVIDE([설치대수CQ], [설치대수목표CQ]) , 1)
var _cal3 = _cal2 * _cal
var _cal4 = _Cal - _cal3
var _cal5 = "█"
var _cal6 = "░"
var _cal7 =
REPT( _cal5, _cal3 ) &
REPT( _cal6, _cal4 )
RETURN _cal7
위 DAX도 비교적 간단합니다. 실제 이부분이 Process Bar를 만드는 부분입니다.
먼저,
1) _cal : 총 데이터를 쪼갤 개수입니다. 즉 25개의 프로세스 바를 구성하겠다라는 의미입니다.
2) _cal2 : DIVIDE를 이용해 목표 대비 달성률을 가져오는데, MIN을 가져와 1이 넘지 않도록 해줍니다.
즉 1보다 항상 작거나 같은 값을 반환하겠죠.
3) _cal3 : 총 데이터 개수 * 달성률이면 총 25보다 작은 어떤 값이 만들어지겠죠?
"Process Bar를 채우기 위한 음영 개수"가 되겠네요.
4) 그리고 총 개수 25개에서 그만큼을 빼주면 실제 채워지지 않을 음영의 개수가 되겠네요.
5) _cal5 : 채워질 음영의 도형 모양
6) _cal6 : 공란의 역할을 해줄 도형 모양
7) 마지막 _cal7 : REPT 함수를 이용해 REPT("반복할문자", "반복횟수")를 지정해줄건데,
채울 부분 은 아까 달성률 * 개수 한 부분이고,
빈 공간은 총 개수에서 그만큼을 빼준 걸 반복해주면 되겠죠?
8) 마지막 Return 해주면 완료입니다.
5) 카드레이블 =
var _cal = FORMAT( DIVIDE( [설치대수CQ] , [설치대수목표CQ] ) , "0.0%" )
var _cal2 = REPT(" ", 5) & "달성률(%) : "
var _cal3 =
_cal2 & _cal
return _cal3
그리고 추가적으로 카드 레이블을 만들건데 어떤 부분이냐면
바로 아래에 설명 레이블 부분입니다.
위 DAX는 비교적 간단한데, 하나하나 살펴보면
1) DIVIDE 함수를 이용해 달성률 가져와주고,
2) FORMAT 함수로 소숫점 한자리의 백분율 형태로 값 형식을 정의해줍니다.
3) 그리고 공란을 조합해서 레이블을 만들어줍니다.
New 카드 시각적 개체 내 적용하기
자 그럼 이제 New 카드 시각적 개체에 어떻게 넣는지 알아볼까요?
아래 단계를 따라와주시면 됩니다.
※ 참고로 제 화면과 시각적 개체 최초 세팅이 다를 수 있습니다.
따라서 단계만 잘 따라오시면 결과물을 보실 수 있습니다. 😁
1) [설치대수CQ] 측정값을 카드 시각적 개체에 넣어주세요.
2) [서식] 설정 - [설치대수CQ]를 참조 레이블에 넣어주세요.
3) 레이블 선택 - 제목 OFF - 소수점 자리수를 0으로 변경 해주세요.
4) [설명] 섹션 - [값] 비활성화 - 레이블 내 글꼴 크기 20, 색상 검정색
5) 그 다음 [참조 레이블] - [세부 정보]에 [카드레이블] 측정값 넣고
6) 그 다음 [참조 레이블] 시리즈 선택 "모두" 변경 - [구분선], [배경] 모두 비활성화
7) 그리고 참조 레이블 - [설치대수CQ] 시리즈로 변경 - [카드_데이터바] 측정값 넣기
8) 레이블 선택을 [카드_테이터바]로 변경 -
글꼴 크기 : 10,
글꼴 색 : "#6DA9E4" 코드 변경,
[세부 정보] 비활성화
9) 그 다음 원하시는대로 디자인을 변경하면, 아래의 결과물을 보실 수 있습니다 😁
맺음말
이번 게시글에서는
New 카드 시각적 개체 구성과 DAX를 이용해 Process Bar를 만드는 방법에 대해
알아봤습니다.
아마 처음 따라오시는 분들은 난이도가 높았을수도 있고, BI에 능숙하신 분들은 앞으로 어떻게 활용해야겠다..
등의 방향성에 도움이 되셨을거라 생각합니다.
저는 목표 테이블을 만들고 각 날짜별로 프로세스 Bar 가 보이도록 하면 좋겠다라고 생각했네요.
(물론 귀찮아서 시도는 안함)
ㅎㅎ.. 아무쪼록 이런 방법으로 BI 보고서를 좀 더 깔끔하고 직관적으로 만들 수도 있겠다라는 걸 느꼈습니다.
그럼 여러분들도 즐거운 주말인데 BI 재밌게 즐기시구요!
다음에는 좀 더 재미있는 포스팅에서 뵙도록 할게요.
(+지난 번 DAX 활용 꿀팁은 다음 포스팅에서 이어나갈게요!)
이웃, 공감, 댓글은 힘이됩니다-!
(그리고 해당 Pbix 파일 샘플이 필요하신 분들은 이웃추가 후 댓글로 이메일 남겨주세요. 😃)
Power BI 문의하기
아래는 Power BI에 대해 더 알아보고 싶으신 분들에게 남겨드리는 글 입니다.
개인적인 궁금증이나, 기업/공공기관의 공식적인 의뢰 모두 환영이니 언제든지 연락주세요!
❒ Power BI 교육, 프로젝트의뢰 : bigcorpbi0419@naver.com
❒ 크몽의뢰하기 (첫의뢰할인) : https://kmong.com/gig/396278
제조업 관리 Power BI 시각화 대시보드 구축 - 크몽
대기업BI전문가 전문가의 IT·프로그래밍 서비스를 만나보세요. 전문가 소개- 해커스 HRD Power BI 대표 강사 - 현) 대기업 내 BI 코디네이터...
kmong.com
❒ 해커스 HRD 인터넷 강의 : https://www.hackershrd.com/lecture.php?mode=lecView&product_key=01::refu%3E4%3EB004%3EM029&p_id=17282a0d5e4c6aa48f5a2fa2a51ae9f3&s_id=Y23M080031
기업교육의 중심 :: 해커스HRD 챔프스터디
재직자 내일배움카드, 기업단체교육, 실무역량 강화 교육, 직급별 필수교육, 고용노동부 인증 훈련기관
www.hackershrd.com