혼란스러운 데이터를 실행 가능한 인사이트로: 분석가가 Power BI, DAX, 및 Dashboards를 활용하는 방법
Source: Dev.to
분석 워크플로우 (전체 그림)
대부분의 Power BI 프로젝트는 다음 흐름을 따릅니다:
Raw Data → Cleaning (Power Query) → Data Model → DAX Measures → Dashboards → Decisions
📊 시각적 흐름 다이어그램 (개념적)
[ Excel / CSV / SQL / APIs ]
|
v
[ Power Query ]
|
v
[ Data Model ]
|
v
[ DAX ]
|
v
[ Dashboards ]
|
v
[ Business Actions ]
Step 1 – Load Messy Data into Power BI
현실 세계에서는 데이터에 다음과 같은 문제가 흔히 발생합니다:
- ❌ 중복 행
- ❌ 빈 값
- ❌ 잘못된 데이터 유형(텍스트로 저장된 숫자)
- ❌ 일관되지 않은 열 이름
- ❌ 다양한 날짜 형식
데이터 로드 방법
- Power BI Desktop에서 Home → Get Data를 클릭합니다.
- Excel / CSV / SQL Server(또는 다른 소스)를 선택합니다.
- Transform Data를 클릭합니다 (아직 Load는 클릭하지 마세요).
이렇게 하면 Power Query가 열리며, 여기서 데이터 정리를 수행합니다.
단계 2 – 데이터 정리 및 준비 (Power Query)
Power Query는 스테이징 영역입니다. 여기서 수정한 내용은 반복 가능하고 자동화됩니다.
일반적인 정리 작업
| 문제 | Power Query 수정 |
|---|---|
| 중복 | Remove Rows → Remove Duplicates |
| 공백이 포함된 텍스트 | Transform → Format → Trim |
| 잘못된 데이터 유형 | Change column type |
| 지저분한 열 이름 | Rename columns |
| Null 값 | Replace values / Filter |
예시
전
Customer | Sales | Order Date
John Doe | "1,000" | 02/01/24
John Doe | "1000 " | 2024-01-02
후
Customer | Sales | Order Date
John Doe | 1000 | 2024-01-02
3단계 – 적절한 데이터 모델 만들기
좋은 데이터 모델 = 성능 향상 + DAX 작성 용이
일반적인 테이블
- Sales (사실 테이블)
- Customers (차원)
- Products (차원)
- Date (캘린더 테이블)
스타 스키마 (권장)
Customers ──┐
├── Sales ── Date
Products ───┘
모델링 모범 사례
- ✅ 하나의 사실 테이블, 여러 차원 테이블
- ✅ 일방향 관계 (특별한 필요가 없는 한)
- ✅ 항상 Date 테이블 사용
- ❌ 필요하지 않은 경우 다대다 관계 피하기
DAX 계산은 관계를 통해 데이터를 올바르게 필터링하는 데 의존합니다.
Step 4 – DAX 측정값 작성 (초급 → 기술적)
DAX = Data Analysis Expressions – Power BI가 메트릭을 계산하는 데 사용하는 언어입니다.
간단히 시작하기
Total Sales =
SUM ( Sales[Amount] )
Total Orders =
COUNTROWS ( Sales )
Total Customers =
DISTINCTCOUNT ( Customers[CustomerID] )
약간 더 기술적: 시간 지능
Sales MTD =
CALCULATE (
[Total Sales],
DATESMTD ( 'Date'[Date] )
)
Sales Last Month =
CALCULATE (
[Total Sales],
DATEADD ( 'Date'[Date], -1, MONTH )
)
MoM Growth % =
DIVIDE (
[Sales MTD] - [Sales Last Month],
[Sales Last Month]
)
DAX 해킹 팁
- 가능하면 측정값을 사용하고, 계산된 열은 사용하지 마세요.
- 시간 지능 함수용으로 항상 날짜 테이블을 생성하세요.
DIVIDE()를 사용하고/대신 사용하여 0으로 나누는 오류를 방지하세요.- 한 번에 하나의 측정값을 만들고 테스트하세요.
Step 5 – 질문에 답하는 대시보드 만들기
좋은 대시보드는 다음에 답합니다:
- What는 무슨 일이 일어나고 있나요?
- How는 추세가 어떻게 진행되고 있나요?
- Where는 어디에서 행동해야 하나요?
예시 레이아웃
+----------------------------------------+
| KPI Cards: Sales, Orders, Growth |
+----------------------------------------+
| Sales Trend (Line Chart) |
+----------------------------------------+
| Sales by Product | Sales by City |
+----------------------------------------+
| Filters (Date, Region) |
+----------------------------------------+
시각적 모범 사례
- KPI Cards → 요약 지표
- Line charts → 시간에 따른 추세
- Bar charts → 카테고리별 비교
- Slicers → 사용자 인터랙션(필터)
- 색상을 간단하고 consistent하게 유지
대시보드에 긴 설명이 필요하다면, 아마도 너무 복잡한 것입니다.
6단계 – 인사이트를 행동으로 전환
대시보드는 행동을 변화시킬 때에만 유용합니다.
예시 워크플로우
- 📉 매출 감소 나이로비에서
- ➡️ 필터 제품별
- ➡️ 재고 부족 식별
- ➡️ 공급망 문제 해결
- ➡️ 매출 회복
데이터가 영향을 미치는 순간입니다.
실습
연습 1 – 데이터 정리
- 중복 제거
- 데이터 유형 수정
- 열 이름 바꾸기
- null 행 제거
연습 2 – DAX 측정값
Total Sales = SUM ( Sales[Amount] )
Total Orders = COUNTROWS ( Sales )
Average Order Value = DIVIDE ( [Total Sales], [Total Orders] )
연습 3 – 대시보드
다음 요소를 포함하는 간단한 보고서를 만드세요:
- 1개 KPI 카드
- 1개 추세(선) 차트
- 1개 막대 차트
- 1개 슬라이서(예: 날짜 또는 지역)
Power BI + DAX Cheat Sheet
Power Query
| 작업 | 동작 |
|---|---|
| 중복 제거 | Home → Remove Rows → Remove Duplicates |
| 데이터 유형 변경 | 열 머리글 클릭 → Data Type |
| 공백 제거 | Transform → Format → Trim |
| 열 분할 | Transform → Split Column |
DAX
| 목표 | 함수 |
|---|---|
| 값 합계 | SUM() |
| 행 개수 | COUNTROWS() |
| 고유 개수 | DISTINCTCOUNT() |
| 필터 적용 | CALCULATE() |
| 시간 지능 | DATESMTD(), DATEADD(), 등 |
| 안전한 나눗셈 | DIVIDE() |
Power BI 인텔리전스
유용한 DAX 함수
DATESMTD()– 현재 필터 컨텍스트에서 월 누계까지의 날짜 열을 포함하는 테이블을 반환합니다.DATEADD()– 지정된 간격 수만큼 이동된 날짜 열을 포함하는 테이블을 반환합니다.
안전한 나눗셈
DIVIDE()– 나눗셈을 수행하고, 나누는 값이 0일 경우 대체 결과를 반환합니다.
모델링 가이드라인
- Use a Date table – 날짜 로직을 중앙 집중화하고 시계열 인텔리전스 기능을 활성화합니다.
- Prefer a star schema – 모델을 단순하고, 성능이 좋으며, 이해하기 쉽게 유지합니다.
- Avoid bi‑directional relationships unless they are truly required.
지금까지 배운 교훈
Power BI는 단순히 예쁜 차트를 만드는 것이 아닙니다.
신뢰할 수 있는 데이터 파이프라인을 구축하여 더 나은 의사결정을 가능하게 하는 것입니다.
진정한 역량은 DAX나 시각화에만 있는 것이 아니라, 비즈니스가 답하려는 질문이 무엇인지 이해하는 것입니다.
Power BI를 처음 사용하는 경우
- 먼저 대충 시작 – 데이터가 완벽하지 않더라도 모델에 데이터를 가져오세요.
- 작게 구축 – 먼저 간단한 시각화와 측정값을 만드세요.
- 한 번에 한 단계씩 개선 – 데이터 품질, 모델 설계, 시각화를 반복적으로 다듬어 가세요.
데이터가 완벽하지 않아도 실제 분석을 수행하고 있으며, 여전히 실행 가능한 인사이트를 도출할 수 있습니다.