Site icon MIDAS DIGITAL TIMES

파워 BI DAX 함수 초보자가 먼저 익힐 7가지 계산식

파워 BI DAX 함수 초보자가 먼저 익힐 7가지 계산식

파워 BI DAX 함수는 Power BI 보고서에서 합계, 비율, 조건별 실적, 전년 대비 증감과 같은 계산을 만들 때 사용합니다. 엑셀 함수와 비슷해 보이지만 셀 주소가 아니라 테이블과 열을 기준으로 계산하고, 이용자가 선택한 필터에 따라 결과가 달라진다는 점이 특징입니다. 처음부터 수백 개의 함수를 외울 필요는 없습니다. 측정값과 계산 열의 차이를 이해하고 SUM, COUNTROWS, DISTINCTCOUNT, DIVIDE, CALCULATE 같은 기본 함수부터 적용하면 대부분의 기초 보고서를 만들 수 있습니다.

파워 BI DAX 함수란 무엇인가요?

DAX는 Data Analysis Expressions의 약자로 Power BI, Analysis Services, Excel Power Pivot 등에서 사용하는 수식 언어입니다. Microsoft의 DAX 개요에 따르면 DAX 수식은 테이블 형식 데이터 모델의 관련 테이블과 열을 대상으로 고급 계산을 수행하는 함수, 연산자와 값으로 구성됩니다. 엑셀에서는 A1:A10 같은 셀 범위를 참조하지만 DAX에서는 다음과 같이 테이블과 열을 참조합니다.

총매출액 = SUM('매출'[매출액])

이 수식을 보고서의 카드에 넣으면 전체 매출액이 표시됩니다. 지역을 선택하거나 연도를 필터링하면 선택된 조건에 맞춰 값이 다시 계산됩니다. 파워 BI DAX 함수가 대화형 보고서에 적합한 이유입니다. 파워 BI DAX 함수를 익히기 전에 Power BI의 설치와 데이터 가져오기부터 시작하려면 파워 BI 사용법 초보자 가이드를 먼저 참고하세요.

측정값과 계산 열의 차이

파워 BI DAX 함수를 사용할 수 있는 대표적인 위치는 측정값과 계산 열입니다.

구분측정값계산 열
계산 시점보고서의 필터와 시각화 맥락에서 계산각 행을 기준으로 계산해 모델에 값 생성
주요 용도합계, 비율, KPI, 조건별 집계분류, 문자열 결합, 행 단위 계산
예시총매출, 고객당 매출, 목표 달성률연도-월, 지역 분류, 주문 금액 구간
특징필터에 따라 동적으로 결과 변경열 값으로 축, 범례, 필터에 사용 가능

Microsoft의 Power BI 측정값 만들기 문서는 측정값을 보고서와 상호작용할 때 결과가 바뀌는 동적 계산으로 설명합니다. 반면 계산 열 만들기는 모델에 이미 로드된 데이터를 바탕으로 각 행의 값을 만드는 방법을 안내합니다.합계와 비율 같은 지표는 우선 측정값으로 만드는 습관을 들이세요. 분류용 필드나 각 행에 필요한 값이라면 계산 열을 검토합니다.

SUM으로 합계 구하기

SUM은 숫자 열의 합계를 구하는 가장 기본적인 함수입니다.

총매출액 = SUM('매출'[매출액])

카드에 넣으면 전체 합계가 표시되고, 지역별 막대형 차트의 값에 넣으면 각 지역의 합계가 표시됩니다. 같은 측정값이 시각화의 조건에 맞춰 다르게 계산됩니다. 단가와 수량처럼 두 열을 행마다 곱한 뒤 합산해야 한다면 SUM 대신 SUMX를 사용할 수 있습니다.

총판매금액 = SUMX('매출', '매출'[수량] * '매출'[단가])

X가 붙은 반복 함수는 테이블의 각 행에 식을 적용한 뒤 결과를 집계합니다.

COUNTROWS로 행 개수 세기

COUNTROWS는 테이블의 행 수를 계산합니다. 주문 테이블의 한 행이 주문 한 건이라면 주문 건수를 다음과 같이 만들 수 있습니다.

주문건수 = COUNTROWS('주문')

데이터에 한 주문이 여러 상품 행으로 나뉘어 있다면 단순 행 수가 실제 주문 수와 다를 수 있습니다. 이때는 주문 번호의 고유 개수를 세는 DISTINCTCOUNT가 적합합니다.

고유주문수 = DISTINCTCOUNT('주문'[주문번호])

파워 BI DAX 함수를 선택하기 전에 ‘한 행이 무엇을 의미하는지’를 먼저 확인해야 정확한 결과가 나옵니다.

DIVIDE로 비율 계산하기

두 값을 나눌 때 / 연산자를 사용할 수도 있지만 0으로 나누는 오류를 안전하게 처리하려면 DIVIDE가 편리합니다.

고객당매출 = DIVIDE([총매출액], [고객수], 0)

첫 번째 인수는 분자, 두 번째는 분모, 세 번째는 분모가 0일 때 반환할 대체 값입니다. 측정값을 만든 뒤 형식을 백분율, 통화 또는 소수점 자릿수에 맞게 지정하세요. 목표 달성률도 같은 방식으로 만들 수 있습니다.

목표달성률 = DIVIDE([총매출액], [매출목표], 0)

파워 BI DAX 함수 4: CALCULATE로 조건 바꾸기

CALCULATE는 기존 계산에 새로운 필터 조건을 적용합니다. 파워 BI DAX 함수 중 활용 범위가 매우 넓고, DAX를 이해하는 핵심 함수이기도 합니다. 온라인 채널의 매출만 계산하는 예시는 다음과 같습니다.

온라인매출 =
CALCULATE(
    [총매출액],
    '채널'[채널명] = "온라인"
)

보고서에서 지역이나 기간을 선택하면 그 필터는 유지되고 채널 조건이 추가됩니다. CALCULATE는 필터 맥락을 바꾸어 식을 다시 평가한다고 이해하면 됩니다.

IF로 조건 분류하기

IF는 조건에 따라 다른 값을 반환합니다. 목표 달성 여부를 텍스트로 표시하는 측정값을 만들 수 있습니다.

달성상태 =
IF(
    [목표달성률] >= 1,
    "달성",
    "미달"
)

조건이 많으면 중첩 IF가 길어질 수 있습니다. 여러 값을 구분할 때는 SWITCH를 사용하면 읽기 쉬운 수식을 만들 수 있습니다.

성과등급 =
SWITCH(
    TRUE(),
    [목표달성률] >= 1.1, "A",
    [목표달성률] >= 1.0, "B",
    [목표달성률] >= 0.9, "C",
    "D"
)

RELATED로 관련 테이블 값 가져오기

매출 테이블과 상품 테이블이 상품 코드로 연결되어 있다면 RELATED를 사용해 관련 테이블의 값을 계산 열로 가져올 수 있습니다.

상품카테고리 = RELATED('상품'[카테고리])

RELATED가 올바르게 작동하려면 모델에 적절한 관계가 만들어져 있어야 합니다. 함수 오류가 발생한다면 수식보다 먼저 모델 보기에서 관계 방향, 키의 중복과 데이터 형식을 확인하세요.

날짜 기반 계산 시작하기

전년 대비나 누계 계산을 하려면 연속된 날짜가 들어 있는 날짜 테이블을 준비하는 것이 좋습니다. 단순한 올해 누계는 TOTALYTD로 시작할 수 있습니다.

연간누계매출 =
TOTALYTD(
    [총매출액],
    '날짜'[날짜]
)

전년도 같은 기간의 매출은 CALCULATE와 SAMEPERIODLASTYEAR를 조합할 수 있습니다.

전년동기매출 =
CALCULATE(
    [총매출액],
    SAMEPERIODLASTYEAR('날짜'[날짜])
)

날짜 기반 함수는 날짜 테이블의 범위, 연속성, 관계 설정에 영향을 받습니다. 결과가 비어 있다면 함수만 수정하지 말고 날짜 테이블과 매출 테이블의 관계를 함께 확인하세요.

파워 BI DAX 함수 오류를 줄이는 방법

열과 측정값을 구분하기

데이터 창에서 열과 측정값의 아이콘을 확인하고 이름을 명확히 지정하세요. 측정값은 [총매출액]처럼 참조하고 열은 '매출'[매출액]처럼 테이블 이름과 함께 참조하는 습관이 좋습니다.

계산 결과를 작은 표에서 검증하기

복잡한 시각화에 바로 넣기보다 테이블 시각화에 날짜, 지역과 측정값을 함께 넣어 예상값과 비교하세요. 전체 합계만 맞고 세부 값이 틀리는 문제를 빠르게 찾을 수 있습니다.

한 번에 하나의 계산만 만들기

긴 수식을 한 번에 작성하지 말고 총매출, 고객 수, 고객당 매출처럼 작은 측정값으로 나눕니다. 재사용하기 쉽고 오류 원인을 찾기도 편합니다.

데이터 모델을 먼저 점검하기

DAX가 복잡해지는 이유가 함수 부족이 아니라 잘못된 테이블 구조인 경우가 많습니다. 사실 테이블과 차원 테이블을 구분하고 일대다 관계를 명확하게 만들면 수식이 단순해집니다. 보고서를 게시한 뒤 최신 값이 유지되도록 하려면 파워 BI 데이터 새로고침 방법도 함께 확인하세요.

자주 묻는 질문

DAX와 Power Query는 어떤 차이가 있나요?

Power Query는 데이터를 불러오고 정리하는 단계에서 사용합니다. DAX는 모델에 로드된 데이터를 대상으로 측정값과 계산 열 등을 만듭니다. 원본 정리가 목적이면 Power Query, 보고서의 동적 계산이 목적이면 DAX를 우선 검토하세요.

엑셀 함수를 알면 DAX를 쉽게 배울 수 있나요?

SUM, IF, DATE처럼 비슷한 함수가 있어 도움이 됩니다. 그러나 DAX는 관계형 데이터 모델과 필터 맥락을 기반으로 하므로 셀 중심의 엑셀과 다른 개념도 익혀야 합니다.

계산 열을 많이 만들면 안 되나요?

계산 열은 모델에 값을 저장하거나 계산해야 하므로 데이터 크기와 새로고침 성능에 영향을 줄 수 있습니다. 축이나 분류에 꼭 필요한 열인지, Power Query에서 처리할 수 있는지, 측정값으로 대체할 수 있는지 검토하세요.

마무리

파워 BI DAX 함수 학습은 많은 문법을 외우는 것보다 작은 측정값을 직접 만들어보는 것이 중요합니다. SUM으로 합계를 만들고, COUNTROWS와 DISTINCTCOUNT로 건수를 비교하고, DIVIDE로 비율을 계산해보세요. 그다음 CALCULATE의 필터 맥락과 날짜 함수를 익히면 실무 보고서에서 필요한 계산 대부분을 단계적으로 구현할 수 있습니다.

Exit mobile version