본문 바로가기
Power BI

Power BI DAX 기초 - 측정값 만들기

by 꼬리무늬 2024. 6. 30.
728x90
반응형

목차

     

     

    개요

     

    지난 포스트에서 측정값에 대한 기본적인 이해를 했고 시각적 개체로 몇 가지 예를 봤습니다.

     

    Power BI DAX 기초 - 측정값 이해

    목차  개요 Power BI를 통해 데이터를 분석할 때 DAX (Data Analysis Expressions) 함수를 이용해 식으로 구성된 측정값을 만듭니다. 이때, DAX 함수의 입력과 출력이 어떤 형태인지, 그리고 측정값이 어떤

    brightsomuch.tistory.com

     

     

    이번 포스트는 Power BI Desktop 프로그램을 통해 간단한 측정값을 직접 만들면서 DAX 함수에 기본적인 내용도 같이 배워보려고 합니다.

     

    아래 예제로 주어진 데이터를 활용해서 측정값을 만들어 시각적 개체로 표현하는 과정입니다.

     

    DAX (Data Analysis Expressions)

     

    마이크로소프트 (Microsoft)의 SQL 서버관리서비스팀에서 개발한 쿼리 언어 DAX(Data Analysis Expressions)는 2010년 엑셀 Add-in 파워 피벗 (Power Pivot)에 처음으로 탑재되었습니다.

     

    데이터 분석에 주로 사용된 DAX는 다양한 함수를 갖고 있는데, 지금은 Power BI에 아주 강력한 도구가 되었죠.

     

    DAX 함수를 통해 "측정값", "테이블", "열"을 만들 수 있습니다.

     

    함수 설명이 영어와 한글 페이지에 제공되고 있습니다. DAX 식을 만들 때 항상 참고하는 페이지입니다.

     

     

    DAX 레퍼런스 문서

     

    아래는 한글 페이지를 캡처한 것인데요, 아래처럼 함수 이름을 제대로 표시하지 못하고 있습니다.

    DAX의 함수 이름은 모두 영어입니다. 따라서 검색할 한글 페이지에서 찾는 경우가 종종 발생합니다.

     

    모든 정보를 제대로 이해하기 위해서는 영어 페이지를 우선으로 하고, 설명은 한글 페이지에도 도움을 받는 방향으로 활용하는 것을 추천합니다.

     

    특히 처음 접할 때, 모든 용어가 새롭고 어렵습니다. 용어는 영어로 익숙하는 것이 유리하지만, 의미 파악을 위해 한글 페이지도 적극적으로 활용하세요.

     

     

     

    Power BI Desktop

     

    마이크로소프트에서 만든 무료 도구 Power BI Desktop을 아래 페이지에서 다운로드 받을 수 있습니다.

     

    https://www.microsoft.com/en-us/power-platform/products/power-bi/downloads

     

    아래와 같은 주요 기능을 갖고 있습니다.

    • 데이터를 로딩해서 원하는 형태로 가공하는 파워 쿼리 (Power Query)
    • DAX 수식으로 측정값을 만들고 분석하는 파워 피봇 (Power Pivot)
    • 측정값을 다양한 형태로 그려주는 시각화 개체들

    앞으로 모든 작업은 Power BI Desktop에서 이뤄집니다.

     

     

    예제 데이터

     

    연습을 위한 엑셀 데이터 입니다. 아주 간단한 형태이지만 처음 측정값을 익힐 목적으로는 충분합니다.

    Sheet 이름은 SHOP입니다. 제품/색깔의 주문 내역을 갖고 있습니다.

     

    연습을 위한 데이터를 만들 때, 셀 병합을 피하고 모든 셀이 형식에 맞는 값을 갖도록 해야 합니다. 그렇지 않을 경우 파워 쿼리에서 별도 작업을 해야 하거나, 데이터를 읽어 들이지 못할 수도 있습니다.

     

     

    데이터 로딩 및 변환 - 파워 쿼리

     

    Power BI Desktop을 실행하고 빈 보고서에서 Excel 파일에서 데이터 가져오기를 선택합니다.

     

    이러한 과정은 엑셀에서 "데이터 가져오기"를 통해 파워 쿼리를 실행하는 동작과 일치합니다.

     

    표시 옵션에서 (1) Sheet 이름인 "SHOP"을 선택하고 (2) 로드를 통해 데이터를 가져옵니다.

     

     

    참고로, "데이터 변환"을 통해 파워 쿼리를 실행시켜 현재 로딩하려고 하는 데이터의 값의 형태를 바꿀 수 있습니다. 지금은 원본 데이터가 오해를 갖는 형태가 아니기 때문에 바로 "로드"를 실행해도 상관없습니다.

     

    나중에 조금 익숙해지면 "데이터 변환"을 통해 분석 가능한 데이터 형태인지 검토하고 필요시 수정해야 하는, 반드시 수행해야 할 작업 중의 하나입니다.

     

    Power BI - 작업 공간

     

    보고서 보기

    대부분의 작업은 여기에서 일어납니다. 측정값을 만들고 시각적 개체를 이용해 보드를 만들 수 있습니다.

     

     

    테이블 보기

    테이블의 데이터를 볼 수 있으며, DAX 함수를 통해 새로운 열 (계산 열)을 만들어 추가할 수 있습니다.

     

     

    모델 보기

    로딩된 데이터에 여러 테이블이 존재할 때, 테이블 간 관계를 설정할 수 있습니다. 테이블 간은 키 값 (구분 요소)으로 연결됩니다. 대표적인 예가 캘린더 테이블을 만들어 연결하는 것입니다.

     

    현재 예제 데이터는 하나의 테이블로 구성되어 있어서 아래처럼 SHOP 하나만 보입니다.

     

    테이블 연결은 Power BI의 주요 기능 중의 하나입니다. 여러 테이블이 서로 연결해야 하는 경우는 다른 포스트에서 다루도록 할게요.

     

     

     

    반응형

    측정값 만들기

     

    DAX - SUM 함수

     

    DAX의 가장 기본적이고 가장 많이 사용되는 SUM 함수를 사용하기 위해 문서를 참고합니다.

     

    입력으로 <열> 이름을 제공하고 그 결과는 숫자입니다.

     

     

    그리고 SUM은 집합 함수 (Aggregation function) 범주에 들어갑니다. 집합 함수는 열 전체를 대상으로 계산하게 되는데, 집합 함수에 속하는 다른 함수들도 동일한 성질을 갖고 있습니다. 

     

    나중에 다룰 SUMX 함수는 반복기 함수 (iterator function)이고, 완전히 다른 방식으로 측정값을 만듭니다.

     

    DAX - 측정값 만들기

     

    측정값을 만들기 위해서 "보고서 보기" 모드 SHOP에서 오른쪽 마우스 클릭을 한 다음 새 측정값 선택합니다.

     

    (메뉴의 "새 측정값"에서 만들지 않는 이유는, 측정값을 어느 테이블에 만들지 명시적으로 작업하기 위함입니다. 필요에 따라 측정값을 위한 테이블을 별도로 만들 수도 있습니다.)

     

     

    그리고 아래처럼 측정값 식을 입력합니다.

     

    Sum of Amount =
    SUM ( SHOP[Amount] )

     

     

    아래 열 이름을 나타낼 때, 항상 테이블 이름과 같이 있어야 합니다. 다른 테이블의 동일 열 이름과 구별하기 위함입니다.

     

     

    (1) DAX 식이 입력하고 엔터를 누르면 새로운 측정값 (2) Sum of Amount가 생겼습니다. 아이콘이 계산기 모양입니다.

     

     

    시각화 개체 측정값 계산되는 과정

     

    측정값은 시각적 개체의 필터 컨텍스트에 의해 값이 항상 바뀌기 때문에, 시각화 개체 "테이블"을 측정값이 잘 만들었는지 확인하는 가장 훌륭한 시각적 개체입니다.

     

    특히 원하는 값이 맞는지 여부를 단계별로 확인하고 싶을 때 테이블처럼 유용한 시각적 개체가 없죠. 

     

    시각적 개체 테이블 각 행의 측정값이 계산되는 과정.

    1. 시각적 개체에서 필터 컨텍스트 (Product, Color로 필터)를 만듭니다. 그리고 행 별로 필터링할 값을 결정합니다.
    2. 테이블에서 주어진 필터 정보에 따라 행을 찾습니다.
    3. 선택된 행에서 Amount를 모두 합합니다.

    위 과정을 시각적 개체의 행을 반복해서 Sum of Amount를 모두 계산합니다.

     

     

    아래처럼 시각적 개체 막대형 차트를 통해서도 표현할 수 있습니다. 범례에 "Color"를 넣어서 각 Product에 Color가 차지한 개수를 나타낼 수 있습니다.

     

     

     

     

    다양한 시각적 개체 활용

     

    다양한 시각적 개체가 많이 있습니다. 이것 저것들을 시도해 보면 좋을 듯합니다.

     

    728x90
    반응형