Power BI 보고서의 정확성, 유연성, 성능을 극대화하려면 필터 컨텍스트, 시간 인텔리전스, 테이블 조작 등 다양한 기능을 제공하는 DAX 함수를 전략적으로 활용해야 합니다. 이 10가지 주요 DAX 함수의 실제 사용 예시, 주의사항, 장점을 파악해 데이터 모델의 가치를 높이세요

CALCULATE
1. 상세 용도 : 식의 필터 컨텍스트를 추가, 제거, 변경하여 특정 조건에 맞는 지표를 산출합니다.
- 동적 KPI 생성: 지역·기간·제품별 매출, 비용, 이익
- 가상 테이블 필터: 상위 10% 고객, 특정 매출 구간
2. 예시
WesternSales2025 =
CALCULATE(
[Total Sales],
'Region'[RegionName] = "West",
YEAR('Sales'[Date]) = 2025
)
3. 주의사항
- 필터 인수가 필터 컨텍스트를 전환하므로, 의도치 않은 중복 필터링에 주의
- 다중 테이블 참조 시 컨텍스트 교차 방향 확인 필요
4. 장점
- 복잡한 비즈니스 로직을 단일 식으로 구현
- 행 수준 보안(RLS)과 연계해 세밀한 데이터 접근 제어 가능
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/calculate-function-dax
SUMX
1. 상세 용도 : 테이블의 각 행에 사용자 식을 계산한 뒤 결과를 합산합니다.
- 단가×수량 매출 산정, 할인 후 총액
- 가중 평균, 지수화된 점수 합계
2. 예시
TotalRevenue =
SUMX(
'Sales',
'Sales'[Quantity] * 'Sales'[UnitPrice]
)
3. 주의사항
- 대용량 테이블에 적용 시 성능 저하 우려
- 사전 필터링이나 요약 테이블 활용 권장
4. 장점
- 행 단위 복합 계산 지원으로 정확도 보장
- CALCULATE·FILTER와 조합해 유연성 확보
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/sumx-function-dax
FILTER
1. 상세 용도 : 조건에 맞는 행만 추출해 새로운 테이블 반환
- 고가 상품, 신제품 세그먼트
- 최근 30일 주문 내역
2. 예시
HighValueCustomers =
CALCULATE(
[Total Sales],
FILTER(
'Customers',
'Customers'[TotalPurchase] > 1000000
)
)
3. 주의사항
- 전체 테이블 스캔으로 계산 비용 발생
- 인덱스, 단순 비교 조건 활용해 효율성 개선
4. 장점
- 복합 논리 조건(AND/OR/NOT) 유연 구성
- CALCULATE와 결합해 동적 필터 컨텍스트 구현
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/filter-function-dax
ALL / REMOVEFILTERS
1. 상세 용도 : 특정 열·테이블의 모든 필터를 제거해 전체 집계 참조
- 전체 대비 비율(%) 계산
- 대시보드 초기 상태 설정
2. 예시
AllRegionSales =
CALCULATE(
[Total Sales],
ALL('Region')
)
3. 주의사항
- ALL 사용 시 모든 필터가 해제되므로 모델 관계 영향 확인
- REMOVEFILTERS가 더욱 명시적이고 안전
4. 장점
- 부분 집계 대비 전체 집계 비교 용이
- 계산 컨텍스트 초기화로 예측 가능성 확보
5. 공식 문서(ALL) : https://learn.microsoft.com/ko-kr/dax/all-function-dax
6. 공식 문서(REMOVEFILTERS) : https://learn.microsoft.com/ko-kr/dax/removefilters-function-dax
RELATED
1. 상세 용도 : 관계형 모델에서 1:다 관계로 연결된 테이블의 값을 조회
- 제품 코드 → 제품명, 카테고리
- 고객 ID → 세분화 속성
2. 예시
ProductCategory = RELATED('Product'[CategoryName])
3. 주의사항
- 정의되지 않은 관계에는 오류 발생
- 다대다 관계 시 RELATEDTABLE 또는 TREATAS 사용
4. 장점
- 조인 구문 없이 참조 값 활용
- 계산 열·측정값에 손쉽게 적용
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/related-function-dax
DATEADD / TOTALMTD / TOTALQTD / TOTALYTD
1. 상세 용도 : 시간 기반 이동 및 누적 합산 자동화
- DATEADD: 전년·전월 대비 비교
- TOTALMTD/QTD/YTD: 월·분기·연 누적 합계
2. 예시
SalesPY_Month =
CALCULATE(
[Total Sales],
DATEADD('Date'[Date], -1, YEAR)
)
MTD_Sales =
TOTALMTD(
[Total Sales],
'Date'[Date]
)
3. 주의사항
- 날짜 테이블에 연속 날짜 보장 필요
- 누락된 날짜 시 이동 간격 불일치
4. 장점
- 시간 인텔리전스 로직 간편 구현
- 전년 대비·누적 실적 자동 갱신
5. 공식 문서(DATEADD) : https://learn.microsoft.com/ko-kr/dax/dateadd-function-dax
6. 공식 문서(TOTALYTD): https://learn.microsoft.com/ko-kr/dax/totalytd-function-dax
RANKX
1. 상세 용도 : 지정 식 기준으로 테이블 행별 순위 부여
- 매출 순위, 이익 순위
- 상위 N개 상품이나 직원 산정
2. 예시
SalesRank =
RANKX(
ALL('Products'),
[Total Sales],
,
DESC,
Dense
)
3. 주의사항
- ALL 미사용 시 필터 범위 내에서만 순위 계산
- 동점 처리 옵션 지정 필수
4. 장점
- 실시간 랭킹 대시보드 구현
- Top/Bottom 분석 자동화
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/rankx-function-dax
SWITCH
1. 상세 용도: 다중 조건 분기 로직 간결 작성
- 매출 구간별 등급 분류
- 사용자 세그먼트 태깅
2. 예시
SalesCategory =
SWITCH(
TRUE(),
[Total Sales] > 1000000, "High",
[Total Sales] > 500000, "Medium",
"Low"
)
3. 주의사항
- 조건이 많아지면 가독성 저하
- 복잡 로직은 맵핑 테이블 이용 권장
4. 장점
- IF 중첩 감소로 유지보수성 향상
- 간단한 분류 로직 즉시 적용
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/switch-function-dax
SUMMARIZE / ADDCOLUMNS
1. 상세 용도 : 테이블 그룹화 및 그룹별 집계값 포함 새 테이블 생성
- 월별 매출 요약
- 카테고리별 평균 마진, 성장률
2. 예시
MonthlySummary =
SUMMARIZE(
'Sales',
'Date'[YearMonth],
"MonthlySales", [Total Sales]
)
DetailedSummary =
ADDCOLUMNS(
MonthlySummary,
"YoYPct",
DIVIDE(
[MonthlySales] -
CALCULATE(
[MonthlySales],
DATEADD('Date'[Date], -1, YEAR)
),
CALCULATE(
[MonthlySales],
DATEADD('Date'[Date], -1, YEAR)
)
)
)
3. 주의사항
- 빈 그룹·중복 키 처리 주의
- 컬럼 참조 순서 명확히 지정
4. 장점
- 동적 요약 데이터 구축
- 후속 계산(증감율·누적합) 최적
5. 공식 문서(SUMMARIZE) : https://learn.microsoft.com/ko-kr/dax/summarize-function-dax
6. 공식 문서(ADDCOLUMNS) : https://learn.microsoft.com/ko-kr/dax/addcolumns-function-dax
TREATAS
1. 상세 용도: 외부 테이블 값을 가상 필터로 매핑
- 슬라이서 선택값 기반 필터링
- 동적 파라미터 분석
2. 예시
SalesBySelectedRegions =
CALCULATE(
[Total Sales],
TREATAS(
VALUES('Selection'[RegionName]),
'Region'[RegionName]
)
)
3. 주의사항
- 대상 열 데이터 형식·값 일치 필수
- 파라미터 테이블 관리 중요
4. 장점
- 사용자 입력 기반 동적 필터 구현
- What-If 분석, 파라미터 활용 강력
5. 공식 문서 : https://learn.microsoft.com/ko-kr/dax/treatas-function-dax
'● Data Insights > Data Visualization' 카테고리의 다른 글
| (Power BI) DAX 함수의 반환 유형별 분류: 스칼라 vs 테이블 함수 (0) | 2025.10.09 |
|---|---|
| (Power BI) 데이터 모델링: Dimension·Fact·Star Schema와 Cross-Filter Direction 가이드 (0) | 2025.09.30 |
| (Power BI) 코드 없이 완성하는 데이터 변환 : 업무 생산성 강화 가이드 (0) | 2025.09.17 |
| (데이터 시각화) Power BI vs Tableau 2025: AI 기반 비즈니스 인텔리전스 도구 선택 가이드 (4) | 2025.09.16 |
| (Power BI) Copilot 이해하기: AI 어시스턴트로 만드는 효율적 보고서 (3) | 2025.09.08 |