본문 바로가기
Power BI

Power BI DAX 기초 - 계산 열과 행 컨텍스트 이해

by 꼬리무늬 2024. 7. 14.
728x90
반응형

 

목차

     

    개요

     

    행 컨텍스트를 설명하는 대표적인 예로 “계산 열 (calculated column)”이 있습니다. 

    원본 테이블에 없지만 필요에 따라 DAX 식으로 열을 추가해 측정값 계산에 사용할 수 있습니다. 이렇게 열을 추가하는 작업은 아래 어느 과정에서도 가능합니다. 

     

     

     


    원칙적으로는 원본 데이터, 파워 쿼리에서 계산 열을 만드는 것이 맞습니다. 이렇게 원본 데이터에 가까운 곳에 미리 작업을 하면, 원본 데이터를 활용하는 다양한 Power BI 작업에서 활용할 때 그대로 가져다 쓸 수 때문입니다. 

    반복하더라도 익숙한 DAX 함수로 열을 추가해도 상관없습니다. 

     

     

    예제에 사용된 데이터

     

    연습을 위한 간단한 테이블입니다. 주문 날짜 별 제품의 색깔, 수량, 가격을 포함하고 있습니다.

     

     

    측정값 [Sum of Amount]

     

    Sum of Amount =
    SUM ( SHOP[Amount] )

     

     

     

    계산 열

     

    행 컨텍스트 동작

     

    한 가지 사용에 주의해야 할 점은 DAX 식을 만든 계산 열은 “행 컨텍스트” 방식으로 동작한다는 것입니다. 
    행 컨텍스트는 테이블 모든 행을 반복해서 식을 수행하는 것인데, “필터 컨텍스트” 동작과 구분을 해야 합니다. 

    그리고 결과로 새로 추가된 “계산 열”은 데이터 테이블의 다른 열과 동일한 성격을 갖습니다. DAX 식으로  “계산 열”을 만들지만 측정값과 전혀 관련이 없습니다. 

     

    계산열을 만드는 방법은 아주 간단합니다.

     

    계산 열 만들기

     

    아래는 SHOP 테이블에 새로운 열 (계산 열)을 만드는 과정입니다.

    테이블 도구에서 새 열을 선택합니다.

     

     

    임으로 아래처럼 식을 입력합니다. Amount와 Price를 곱하는 목적입니다.

     

     

    그 결과 아래처럼 새로운 열 Sales가 생성되었습니다.

     

     

    IF 문을 사용해서 하나 더 만들어 봅니다. 아래처럼 문법은 간단합니다.

     

     

     

    계산 열에는 각 행에서 Amount와 Price의 곱이 계산되고 그 결과가 저장되어 있습니다. 

    이처럼 매 행을 반복해서 모두 계산하는 것을 “행 컨텍스트”라고 합니다. 

     

     

    반응형

     

    반복기 함수와 계산 열

     

    행 컨텍스트를 갖고 동작하는 DAX 함수를 반복기 함수 (iterator function)라고 부르는데, SUMX 함수가 그중의 하나입니다. 

     

    이전 글 참고: Power BI DAX 기초 - SUMX 반복기 함수 이해

     

    Power BI DAX 기초 - SUMX 반복기 함수 이해

    목차  개요 이번 포스트는 가장 많이 사용되는 DAX SUM 함수와 반복기 함수 (iterator function) SUMX 함수 특징에 대해 알아보려고 합니다.  함수 이름 마지막에 'X'가 붙은 함수를 반복기 함수라고 하

    brightsomuch.tistory.com

     

    SUMX는 각 행에서 수행될 식을 입력 파라미터로 넣을 수 있습니다. 
    의미는, SHOP테이블에서 모든 행마다 Amount * Price 를 수행하라는 의미입니다. 

     

    SUMX Sales =
    SUMX (
        SHOP,
        SHOP[Amount] * SHOP[Price]
    )

     


    이제, 새로 만든 SHOP[Sales] 열의 합과, [SUMX Sales]를 비교해 보면, 같은 결과가 나옵니다. 

     



    행 별로 수행하는 식이 같으니 같은 결과가 나오는 것은 당연합니다. 
    이는, 측정값으로 할 수 있는 경우 굳이 계산 열을 만들 필요가 없다는 것을 뜻합니다. 

     

     

     

    마치며

     

    테이블에 DAX 함수를 이용해서 새로운 열을 만들어, 테이블에 있던 다른 열과 동일한 성격을 갖도록 할 수 있습니다.

    이는 측정값을 만들 때, 필터를 적용할 수 있다는 의미입니다.

     

    위 SUMX 함수식에서 볼 수 있듯이 굳이 계산 열을 만들 필요가 없을 수도 있습니다.

     

    그러나 Power BI에 익숙하지 않거나 대용량 데이터를 다루지 않는 이상, 계산 열로 결과를 직접 확인할 수 있는 장점이 있어서 필요시 계산 열을 만들어도 상관없습니다. 

     

    최적화된 데이터 관리보다는 오류 없는 보고서를 만드는 것이 훨씬 중요합니다.

    728x90
    반응형