파워BI DAX 엑셀 한계 넘어 YoY 누적합계 측정값 쉽게 만드는 법 15년차 분석가의 핵심 가이드
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
파워BI DAX 엑셀 한계 넘어 YoY 누적합계 측정값 쉽게 만드는 법 15년차 분석가의 핵심 가이드
📑 목차
엑셀의 한계를 넘어: 왜 우리는 DAX라는 신세계로 떠나야 하는가?
안녕하세요, 여러분. 15년 동안 데이터 분석 현장에서 수많은 밤을 지새운, 이제는 흰머리가 희끗한 개발자이자 여러분의 멘토입니다. 솔직히 고백하자면, 저도 커리어의 첫 5년은 철저한 '엑셀(Excel) 만능주의자'였습니다. VLOOKUP과 Pivot Table, 그리고 약간의 매크로만 있으면 세상 모든 데이터를 지배할 수 있다고 굳게 믿었죠. 하지만 그 믿음은 데이터가 10만 행을 넘어가고, 복잡한 시계열 분석이 필요한 순간 산산조각 났습니다. 어느 날 팀장님이 "작년 동기 대비(YoY) 성장률이랑 연간 누적 매출을 제품 카테고리별로 필터링해서 1초 만에 보여줘"라고 요청했을 때, 제 500MB짜리 엑셀 파일은 비명을 지르며 멈춰버렸습니다. 모래시계만 뱅글뱅글 도는 그 화면, 그리고 등 뒤로 흐르던 식은땀을 저는 아직도 잊을 수가 없습니다. ☕
Power BI와 DAX(Data Analysis Expressions)는 바로 그 '엑셀의 벽' 앞에서 시작됩니다. 엑셀이 정적인 '스냅샷'이라면, Power BI의 DAX는 살아 움직이는 '유기체'와 같습니다. 많은 분들이 DAX를 단순히 "엑셀 수식의 조금 어려운 영어 버전"이라고 오해합니다. 하지만 제 경험상 DAX는 수식 언어라기보다는 데이터를 쿼리하고, 문맥(Context)을 이해하고, 자유자재로 필터링하는 강력한 '엔진'에 가깝습니다. 엑셀에서는 셀(Cell) 하나하나의 좌표를 참조하지만, DAX는 테이블 전체와 그들 간의 관계(Relationship)를 기반으로 작동합니다. 이 근본적인 패러다임의 전환을 이해하지 못하면, 아무리 비싼 도구를 쥐어줘도 결국 엑셀처럼 쓰다가 포기하게 됩니다.
오늘 우리는 엑셀로는 구현하기 까다롭거나, 구현하더라도 데이터가 추가될 때마다 수식을 뜯어고쳐야 하는 '전년 대비 성장률(YoY)'과 '누적 합계(Running Total)'를 DAX로 우아하고 강력하게 해결하는 방법을 배울 것입니다. 단순히 인터넷에 떠도는 코드 한 줄을 복사해서 붙여넣는 것이 아니라, "도대체 왜 이렇게 동작하는지" 그 원리를 뼈속까지 이해시켜 드리겠습니다. 준비되셨나요? 이 여정이 끝나면 여러분은 더 이상 엑셀의 행 번호를 세며 야근하지 않게 될 것입니다. 🚀
한눈에 보는 비교: 엑셀 vs Power BI (DAX)
본격적인 함수 학습에 앞서, 왜 우리가 이 고생을 해서 DAX를 배워야 하는지 명확한 비교표로 정리해 보았습니다. 엑셀이 나쁘다는 것이 아닙니다. 도구의 목적이 다를 뿐입니다. 데이터 분석의 관점에서 두 도구의 차이를 확실히 인지하고 넘어가세요.
| 구분 | 엑셀 (Excel) | Power BI (DAX) |
|---|---|---|
| 계산 논리 | 셀(Cell) 기반 (A1 + B1) 개별 위치 참조가 핵심 |
컬럼(Column) 및 테이블 기반 문맥(Context)에 따른 동적 계산 |
| 데이터 용량 | 약 100만 행 제한 (실제로는 10만 행 넘으면 느려짐) |
수천만~수억 행 처리 가능 (VertiPaq 엔진의 압축 기술) |
| 필터 상호작용 | 정적임. 슬라이서 연결이 제한적이며 복잡한 관계 설정 불가 |
완전 동적. 클릭 한 번으로 모든 차트와 측정값이 재계산됨 |
| 시간 인텔리전스 | 복잡한 수식 필요 (OFFSET, INDEX 등) 날짜 누락 시 오류 발생 빈번 |
내장 함수(SAMEPERIODLASTYEAR 등)로 강력하고 간단하게 처리 가능 |
| 유지 보수 | 데이터 추가 시 범위 재설정 필요 수식이 깨질 위험 높음 |
데이터 새로고침 한 번으로 끝 로직과 데이터가 분리되어 안전함 |
DAX의 핵심 뇌 구조: 컨텍스트(Context) 완벽 이해하기
필터 컨텍스트(Filter Context): DAX가 데이터를 보는 안경
DAX를 처음 접할 때 90%의 사용자가 포기하는 지점이 바로 '컨텍스트(Context)'입니다. 엑셀은 'A1 셀 + B1 셀'처럼 명확한 물리적 위치를 기반으로 계산합니다. 하지만 DAX는 "현재 내 주변 상황이 어떠한가?"를 먼저 봅니다. 이를 **필터 컨텍스트**라고 부릅니다. 예를 들어, 여러분이 '2023년 매출'이라는 막대그래프를 보고 있다고 가정해 봅시다. DAX가 총매출을 계산할 때, 단순히 전체 매출을 더하는 것이 아닙니다. "아, 지금 사용자가 '2023년'이라는 막대를 선택했구나, 그리고 왼쪽 슬라이서에서 '전자제품'을 골랐네?"라고 판단하여, 전체 100만 건의 데이터 중 그 조건에 맞는 5천 건만 순식간에 걸러내어 합계(SUM)를 구합니다.
이 모든 과정이 밀리초(ms) 단위로 일어납니다. 제가 처음 대규모 유통사 프로젝트를 할 때, 이 컨텍스트 개념을 무시하고 엑셀처럼 모든 행을 순회하며 조건문을 거는 식(FILTER 함수 남발)을 짰다가 리포트 하나 띄우는데 30초가 걸린 적이 있습니다. 클라이언트 임
💬 여러분의 경험을 들려주세요!
✨ 이 방법을 시도해보셨나요? 댓글로 공유해주세요!
📌 도움이 되셨다면 저장하고 주변에도 알려주세요.
🔔 더 많은 개발 팁을 받고 싶다면 구독해주세요!
이 글이 도움되셨나요? 공유해주세요!
아래 링크를 통해 구매 시 운영자에게 일정 수수료가 발생할 수 있습니다.
'2. **데이터 시각화 도구 파워BI(Power BI)에서 엑셀만으로는 구현하기 힘든 전년 대비 성장률(YoY)이나 누적 합계를 구하기 위해 DAX(Data Analysis Expressions) 함수로 측정값을 생성하는 가이드**' 관련 상품을 쿠팡에서 확인해 보세요.
상품 보러가기 →- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기