TOP
class="layout-aside-left paging-number">
본문 바로가기
타이탄의 도구/Power BI

[Power BI] DAX(Data Analysis Expressions)란?

by 기록자_Recordian 2024. 9. 1.
728x90
반응형

데이터 분석에 관심이 있거나 Power BI를 사용해 본 경험이 있는 사람이라면, DAX(Data Analysis Expressions)에 대해 들어본 적이 있을 것이다. DAX는 데이터를 보다 깊이 있게 분석하고, 복잡한 계산을 수행할 수 있도록 도와주는 강력한 수식 언어이다. 이 포스팅을 통해 DAX(Data Analysis Expressions)를 사용하여 다양한 기본 계산 및 데이터 분석 문제를 해결하는 방법에 대한 빠르고 쉬운 소개로 사용할 수 있다.

DAX란?

 

DAX란 수식 또는 식에서 하나 이상의 값을 계산하고 반환하는 데 사용할 수 있는 함수, 연산자 및 상수 컬렉션이다. DAX를 사용하면 이미 모델에 있는 데이터로 새로운 정보를 만들 수 있다.

 

DAX는 Microsoft의 Power BI, Excel의 Power Pivot, 그리고 SQL Server Analysis Services(SSAS)와 같은 데이터 분석 도구에서 사용되는 수식 언어이다. 엑셀의 수식과 비슷한 형태를 가지고 있지만, DAX는 데이터 모델링과 분석을 위한 더 고급 기능을 제공한다.


DAX의 주요 특징

 

특징 설명
함수 기반 언어 DAX는 함수와 연산자를 조합하여 데이터를 계산합니다. 수십 가지의 내장 함수 제공.
컬럼 기반 계산 DAX는 테이블의 행(row)을 계산하는 엑셀과 달리, 컬럼(column) 전체를 대상으로 계산.
고급 필터링 가능 DAX는 복잡한 필터링과 조건을 적용하여 데이터 분석 가능.
메모리 내 분석 DAX는 메모리 내에서 데이터를 분석하므로 빠른 성능 제공.

DAX의 기본 개념

 

DAX를 이해하기 위해서는 몇 가지 기본 개념을 아는 것이 중요하다.

  • 컬럼(Column)과 테이블(Table): DAX는 컬럼과 테이블을 대상으로 연산을 수행한다. 이 때문에 DAX 식은 테이블에서 데이터를 추출하거나 계산된 컬럼을 생성하는 데 자주 사용된다.
  • 메저(Measure): 메저는 테이블에 저장되지 않는 계산된 값이다. DAX 식으로 정의된 메저는 보고서나 대시보드에서 실시간으로 계산되어 사용된다.
  • 계산된 컬럼(Calculated Column): 계산된 컬럼은 기존의 컬럼 데이터를 기반으로 새로운 값을 생성하는 컬럼이다. 계산된 컬럼은 테이블에 저장되며, 데이터 모델의 일부로서 분석에 활용된다.

DAX는 왜 중요한가?


새로운 Power BI Desktop 파일을 만들고 일부 데이터를 파일로 가져오는 작업은 간단하다. DAX 수식을 사용하지 않고도 중요한 정보를 보여 주는 보고서를 만들 수 있다.

그러나 제품 범주 전체 및 다양한 날짜 범위에 대해 증가 비율을 분석해야 하는 경우는 어떻게 될까? 또는 시장 추세와 비교하여 전년동기대비 성장을 계산해야 하는 경우는 어떻게 될까?

DAX 수식은 이러한 기능과 여러 가지 다른 중요한 기능도 제공한다. 효과적인 DAX 수식을 만드는 방법을 학습하면 데이터를 최대한 활용하는 데 도움이 된다. 필요한 정보를 얻으면 총결산에 영향을 주는 실제 비즈니스 문제를 해결할 수 있다.


DAX의 주요 함수와 예제


DAX에는 수많은 함수가 존재하며, 이들을 잘 활용하는 것이 데이터 분석의 성패를 가를 수 있다. 여기에서는 몇 가지 대표적인 DAX 함수를 소개한다.

1. SUM: 컬럼의 모든 값을 더한다.

TotalSales = SUM(Sales[SalesAmount])

 

2. CALCULATE: 조건에 따라 계산된 값을 반환한다.

SalesFiltered = CALCULATE(SUM(Sales[SalesAmount]), Sales[Category] = "Electronics")

 

3. RELATED: 다른 테이블의 값을 참조한다.

ProductCategory = RELATED(Product[Category])

 

4. IF: 조건에 따라 다른 결과를 반환한다.

HighSales = IF(SUM(Sales[SalesAmount]) > 100000, "Yes", "No")

DAX의 고급 기능


DAX의 진정한 강점은 고급 기능에 있다. 이 기능들은 복잡한 데이터 모델링과 분석을 가능하게 한다.

1. 타임 인텔리전스(Time Intelligence): 특정 기간 동안의 누적 합계, 이동 평균, 전년 동기 대비 성장률 등과 같은 시간 기반 계산을 쉽게 할 수 있다.

예시: 전년 대비 매출 성장률

SalesGrowth = CALCULATE(SUM(Sales[SalesAmount]), SAMEPERIODLASTYEAR(Calendar[Date]))

 

2. 동적 메저(Dynamic Measure): 사용자 입력에 따라 실시간으로 값이 변하는 메저를 만들 수 있다. 이를 통해 대시보드 사용자가 다양한 시나리오를 탐색할 수 있다.

3. 컨텍스트(Context) 관리: DAX에서는 '행 컨텍스트(Row Context)'와 '필터 컨텍스트(Filter Context)'라는 개념이 중요하다. 이 컨텍스트들은 DAX 식이 데이터를 어떻게 필터링하고 계산할지를 결정한다.


DAX의 학습 방법


DAX를 효과적으로 배우기 위해서는 실습이 중요하다. 아래는 DAX를 학습하는 데 도움이 될 몇 가지 팁입니다.

1. 기본 함수부터 시작하기: SUM, AVERAGE, COUNT와 같은 기본 함수부터 시작하여, 점차 복잡한 함수로 넘어간다.

2. 실제 데이터로 연습하기: 자신의 데이터나 공공 데이터를 활용하여 DAX 식을 작성해 본다. 실습을 통해 DAX의 개념을 더 잘 이해할 수 있다.

3. 문서와 커뮤니티 활용하기: Microsoft의 공식 문서나 Power BI 커뮤니티에서 다양한 예제와 팁을 찾아본다.


DAX는 단순한 수식 언어를 넘어, 데이터 분석을 위한 강력한 도구이다. DAX를 잘 활용하면 복잡한 분석 작업도 효율적으로 수행할 수 있으며, 보다 깊이 있는 인사이트를 도출할 수 있다. 이제 DAX의 기본 개념과 주요 기능을 이해했으니, 직접 실습해 보며 DAX의 진가를 체험해 보자.

[추가로 학습하면 좋은 개념들]

  • 데이터 모델링(Data Modeling)
  • 타임 인텔리전스(Time Intelligence)
  • 필터 컨텍스트(Filter Context)
  • 동적 메저(Dynamic Measures)

[출처]

Microsoft Learn

728x90
반응형