파워 비아이 (Power BI)의 DAX의 가장 큰 장점은 수많은 수식을 이용해 하나의 수식으로 만들 수 있다는 것입니다. 주로 하나의 수식으로 끝나는 경우가 없다고 해도 무방합니다.

문제는 수많은 수식을 함께 사용하다보면 너무 복잡해져 보기도 힘들뿐더러 나중에 수정을 하려 할 때 너무 힘들어지는 경우도 많습니다.

DAX에서는 이를 해결하기위해 변수 (Variable)을 이용해 수식을 단순화시킬 수 있습니다. 처음에는 약간 복잡할해 보일 수 있으나, 사용해 보시면 정말 편하게 수식을 정리할 수 있습니다.

정말 편리한 변수 (Variable)의 지정, 사용 방법은 어떻게 되는지 알아보겠습니다.

 

 

파워 비아이 (Power BI)의 가장 큰 장점중 하나는 데이터를 그래프나 표를 이용해 데이터를 시각화 할수 있다는 것입니다.하지만 그래프나 표를 만들면 제목을 넣을수 있는데 늘 초기 설정치는 마음에 들지 않죠.

가장 간단한 방법은 제목을 수동으로 입력하는 방법이지만 슬라이서를 이용해 데이터를 필터링 할때 필터값이 제목에 나오도록 하는 좋은 꿀팁 입니다.

DAX에서 2개의 함수만으로 간단히 해결되는 Dynamic Title, 보고서를 작성할때 좀 더 멋지게 보일수 있습니다.

아주 간단하게 만들수 있으니 한번 보실까요?

 

 

파워비아이 (Power BI) 의 보고서 탭에서 가장 많이 쓰이는 비주얼 중의 하나가 바로 카드 비주얼입니다. 클릭 하나만으로 원하는 정보를 보여주니 참 편리한 툴이죠.

전체의 합이나 평균을 보여줄때는 큰 문제가 없지만 표시될 내용이 문자라면 이야기가 살짝 달라집니다. 바로 최상단에 위치한 값이 초기 설정값 (Default)으로 지정되어 원하지 않은 값이 나오게 됩니다.

하지만 selectedvalue 라는 DAX 함수를 이용하면 초기 설정값을 임의대로 지정할 수 있습니다. 파워쿼리 (Power Query)내에서 작업하지 않고 보고서 내에 새 측정값을 만들면 바로 이용할 수 있습니다.

내용 확인해 보시죠.

 

앞에서 설명드린 데로 파워비아이에서 데이터를 변형시키는 방법은 2가지가 있습니다.

  • M-Code (M Language)
  • DAX

 

어느 것이 좋다고 단정 지을 수는 없으며, 상황에 따라 적당한 것을 사용하면 됩니다.

DAX는 엑셀의 수식에 가까운 형태를 지닌다면, M-Code (M Language)는 이름에서 알 수 있듯이 컴퓨터 언어와 비슷한 형식을 가지고 있습니다.

 

IF 문을 예를 들자면 아래와 같습니다.

 DAX를 이용한 수식
파워쿼리를 이용한 명령문

 

위의 간단한 수식 및 명령문에서 볼 수 있듯 DAX가 수식의 확장판이라면, M-Code (파워쿼리 에디터)는 VBA (Visual Basic Application)의 확장판 같은 느낌이 듭니다.

 

마치 엑셀이 수식과 VBA로 서로의 기능을 서로 보완하며 밸런스를 맞추어 가듯이, 파워비아이도 DAX와 M-Code가 서로 어우러져 1+1=2가 아닌 10 아니 100으로 기능을 확장시켜 주기 때문입니다.

 

이 두 개의 특징을 한 단어로 나타내고자 한다면 아래와 같이 정리가 될 듯합니다.

  • DAX - 확장성
  • M-Code - 유연성

 

 

파워쿼리는 아주 딱딱한 프로그램입니다.

수많은 데이터를 다루는 프로그램의 특성상 사소한 에러 하나가 계산이 거듭될수록 결과치에 큰 영향을 줄 수 있기 때문에 가능한 정해진 틀 안에서 데이터를 다루려는 속성을 가지고 있으며, 예외를 허용하는데 아주 인색합니다.

하지만 M-Code를 이용한다면 어느 정도 정해진 틀을 벗어나 유연성을 부과할 수 있으며, 이를 잘 사용한다면 약간의 융통성을 지닌 데이터를 구축할 수 있게 됩니다.

 

DAX를 통한 확장성은 말로 설명할 필요가 없습니다.

각각 독립된 쿼리를 서로 연결하면 하나의 거대한 쿼리로 바뀌게 되는데 이를 바탕으로 DAX를 이용한 수식으로 각 쿼리의 데이터를 변형시키는 것은 파워비아이의 백미라 할 수 있으며, 여기에 더해 측정값이라는 개념을 도입해, 기존의 쿼리에 새로운 열의 추가 없이 필요한 결과치를 저장해 두고, 이를 또 다른 수식에 사용이 가능하게 하여 데이터 분석의 효율을 극대화시켜줍니다.

 

어떤 것을 사용해야 하느냐는 각자의 판단이 아닐까요.

정확히 이야기하자면 둘 중 하나만 이용해도 원하는 결과는 똑같이 얻을 수 있습니다.

파워쿼리 에디터도 아주 훌륭한 프로그램이라 이것만으로도 충분히 원하는 만큼의 데이터 변환이 가능합니다.

혹시 DAX가 편하다는 분은 엑셀의 데이터를 불러와 특별한 수정 없이 DAX의 수식만으로도 원하는 결과치를 충분히 얻을 수 있습니다.

 

하지만 데이터 분석이라는 것이 한 번에 끝나는 경우가 드문지라 시작단계에서 두 가지의 효과적인 배치에 대한 고민이 좀 더 효율적이고 확장성을 지닌 데이터 구축에 도움이 되는 건 사실입니다.

 

사공이 많으면 배가 산으로 가듯, 시작부터 너무 많은 생각은 데이터 구축을 점점 복잡하게 할 수 있으니 시작할 것이 있다면 일단 무엇이라도 좋으니 무작정 시도를 해 보는 것도 중요합니다.

그러다 보면 보완할 점이 보이고, 이를 계속 보완하는 시행착오를 겪으며 이른바 진정한 내공이 생기는 것이 아닐까 생각합니다.

 

회사를 통해 파워비아이를 알게 된 지 2년이 지난 것 같습니다.

처음 파워비아이를 접했을 때의 느낌은 충격 그 자체였던 것 같습니다.

지금까지 엑셀로 데이터를 정리한 뒤 엑셀에서 데이터를 시각화한다는 것은 어찌 보면 고수들만의 영역이라고 생각을 해 왔었습니다.

하지만 파워비아이는 이러한 장벽을 단숨에 없애주는 하나의 충격적인 소프트웨어라는 생각은 지금도 변함이 없습니다.

데이터 시각화의 대중화에 이바지한 프로그램이라 설명을 할 수 있을 것 같습니다.

여러 가지의 장점이 있지만 몇 가지로 요약을 한다면 다음과 같습니다.

첫 번째로 무료라는 것입니다.

모든 프로그램이 그렇듯이 프리웨어 버전은 사용에 어느 정도의 한계가 있지만 파워비아이는 이것이 과연 무료 프로그램이냐는 생각이 들 정도로 모든 기능을 제약 없이 사용할 수 있습니다.

물론 Premium이라는 라이센스가 있긴 하지만, 이는 온라인상에 파워비아이로 작업한 것을 업로드하거나, 앱을 생성한다거나 그러한 일련의 부가적인 서비스인 것이지 파워비아이 프로그램 내에서 기능의 한계를 두는 것은 아니기 때문에 업로드 대신 파일을 공유한다면 충분히 극복될 수 있는 기능이라 생각합니다.

두 번째로는 편의성입니다.

엑셀도 2000년 이후에 파워쿼리 (Power Query)라는 기능을 추가하여, 데이터 분석에 보다 효율적인 기능을 제공하게 되었습니다.

파워비아이 역시 파워쿼리를 기본 기능으로 가지고 있어 기본적으로 외부 파일로부터 데이터를 가지고 와서 파워 쿼리 내의 강력한 데이터 변형 툴로 모든 데이터의 분석이 가능함과 동시에, 엑셀의 함수 개념과 비슷한 DAX라는 기능을 이용해 데이터 분석을 한층 업그레이드시킬 수 있습니다.

여기에 보고서, 데이터, 모델 탭을 제공하여 각각의 영역에서 특성화된 작업을 진행할 수 있습니다.

여기에 더해 각각 독립된 시각화 툴을 이용해 특색있는 보고서의 형태를 아주 쉽게 만들 수 있다는 것은 정말 큰 장점이라 생각합니다.

세 번째로는 확장성입니다.

파워비아이는 오픈소스의 형태로 시각화에 해당되는 도구를 Power BI AppSource (죄송합니다. 한국어 버전이 있는지는 아직 모르겠습니다) 를 통하여 얼마든지 추가를 할 수 있다는 것입니다.

아래를 보시면 MS 사이트에서 제공하는 파워비아이 비주얼 소스로 다양한 업체나 개인이 자체적으로 만들어 업로드를 하고 있습니다.

기본적으로 제공하는 비주얼 대신 이곳의 사이트에서 추가한다면 다양한 형태의 데이터 분석을 위해 사용이 가능합니다.

네 번째로는 연동성입니다.

앞에서 말씀드린 Premium 라이센스를 이용하게 되면 (한 달에 $10 이내였던 것으로 기억합니다) 파워비아이 사이트에 보고서를 업로드해 회원들 혹은 직장 동료가 특별히 파워비아이 프로그램이 컴퓨터에 없더라도 열람이 가능하며, MS 프로그램과의 연동성도 아주 뛰어납니다.

특히 요즘 같은 코로나 시기에 많이 쓰는 MS에서 제공하는 Team이라는 프로그램과도 100% 호환이 가능해 별도의 프로그램 설치 없이 모든 회원이나 동료가 이용 가능하다는 것입니다.

마지막으로 업데이트가 되겠네요

이것도 Premium 라이센스에 해당하는 내용이 될 텐데, Premium 라이센스를 가지면 MS로부터 일정의 공간을 할당받는데 이를 통해 자동 업데이트가 진행이 되도록 셋업이 가능합니다.

예를 들자면 데이터의 종류가 많이 연결되어있는 경우 업데이트 시간이 오래 걸릴 텐데, 매일 12시에 자동 업데이트가 되도록 지정을 한다면 매일 아침 늘 업데이트된 보고서를 볼 수 있다는 장점이 있습니다.

간단하게 5가지 정도의 장점을 이야 했는데, 제가 미처 말씀드리지 못한 장점들이 수없이 존재합니다.

일단 파워비아이를 써 보시면 파워비아이의 파워에 감탄하며 데이터 분석 및 시각화에 정말 최적화된 프로그램이라는 생각을 가지게 될 것입니다.

만일 아직 파워비아이를 접해보지 못한 분이 계신다면, 지금이라도 프로그램을 받아서 실행해보시길 바랍니다.

파워쿼리와 엑셀의 차이점은 많이 있습니다.

수식의 입력이나 함수의 사용이나 뭐 하나 같은 것이 없습니다.

하지만 가장 큰 차이점은 '단위의 구성'입니다.

앞에서도 간단히 설명해 드렸지만 이에 대한 이해가 없다면 파워쿼리로 작업 시 많은 혼동을 가지고 옵니다.

엑셀을 잠시 보겠습니다.

빨간색 박스가 보이죠?

엑셀은 Cell이라는 단위로 구성이 되어있습니다.

셀 단위의 구성으로 인해 좀 더 독립적이고 자유롭게 이용을 할 수 있습니다.

즉 A3, C4, C6는 독립적인 단위이고, C7=A3*(C4+C6)라는 수식을 이용한다면 셀 C7에 수식의 결과치를 나타냅니다.

또 다른 셀에 숫자나 문자를 입력해 또 다른 수식을 만들 수 있습니다.

반면 쿼리는 어떨까요?

쿼리는 엑셀만큼 독립적이지는 않습니다.

쿼리에는 Cell의 개념이 없고 열의 개념을 가지고 있습니다.

(참고로 지금 빨간색 박스로 표시한 것은 열이라고 이야기를 합니다. 영문 버전은 Column이라고 표시를 하는데 약간 헷갈리네요)

파워쿼리는 열이라는 단위로 구성이 되어있기 때문에 열 전체가 한 덩어리로 움직입니다.

엑셀처럼 A3* A4라는 애초에 불가능하다는 이야기입니다. (물론 완전히 불가능하다는 이야기는 아니지만 이런 수식을 만들기 위해서는 많은 작업이 필요합니다)

열의 이름으로 단위가 구성되며 곱셈을 원한다면 [Sun]*[Mon]이라는 수식이 성립됩니다.

그럼 자동으로 [Sun]의 1행과 [Mon]의 1행이 곱해져 결과치를 보여주게 됩니다.

여기서 가장 중요한 것 중의 하나가 바로 열의 속성인데 위를 보시면 [Date]라는 열은 속성이 날짜이며, 나머지 열들은 속성이 숫자로 되어있습니다.

만일 숫자로 속성이 되어있는 열의 중간에 다른 속성 (날짜, 혹은 글자)이 있다면 Error로 표시가 됩니다.

그리고 이 Error를 수정하지 않는 한 다음 작업도 진행이 되지 않습니다.

왜 그럴까 하는 생각도 들지만 방대한 분량의 데이터를 취급하기 위한 최선의 방법이 아닐까 합니다.

이야기가 길어질 것 같으니 여기서는 차이점만 간단히 말씀드리겠습니다.

파워쿼리를 시작할 때 가장 먼저 잡아야 할 개념은 열 단위로 구성이 된다는 것입니다.

그리고 계산이 이루어질 경우 열의 같은 행끼리 이루어지며 (예를 들어 [Mon]+[Tue]라고 수식을 입력한다면 1행은 1행끼리, 2행은 2행끼리 자동으로 수식이 진행됩니다) 2행과 3행으로 크로스 되어서 진행이 되지 않은 다는 것입니다.

엑셀처럼 자유롭게 한 열에 여러 수식을 사용할 수도 없으며, 반드시 정해진 방법에 따라 열을 기본 단위로 해서 모든 수식이나 열의 추가가 이루어진다는 것을 꼭 염두에 두시고 시작을 하셨으면 합니다.

처음 접하시는 분들은 약간 혼동이 올 수도 있겠지만, 어느 정도 익숙해지면 데이터를 변환하는데 이만한 툴은 없을 거라 생각을 하시게 될 것입니다.

'파워쿼리 > 파워쿼리' 카테고리의 다른 글

파워쿼리 에디터의 이해  (0) 2021.03.27

+ Recent posts