엑셀 전문가 · 대화형 레슨 12개 중 4번째
데이터 모델과 DAX
A7에서는 표 두 개를 관계로 연결했어요. 실제 스타 스키마는 여러 표를 연결해요. 거래 내역이 가득한 팩트 테이블 하나를 그것을 설명하는 작은 차원 테이블들이 둘러싸는 구조죠. 그리고 이 구조의 진가를 끌어내는 것이 DAX 측정값(measure)이에요.
화면 기준: Windows용 Microsoft 365 Excel. 연습은 어느 브라우저에서나 할 수 있어요.
글로 보는 튜토리얼엑셀 데이터 모델링과 DAX 측정값 만들기실력 점검
먼저 해 보세요:
- 팩트 테이블 하나를 차원 테이블 여러 개가 둘러싼 스타 스키마를 그려요.
- 두 팩트 테이블 사이의 다대다 관계(relationship)가 왜 위험한지 설명해요.
- CALCULATE로 필터 컨텍스트(filter context)를 바꾸는 DAX 측정값을 작성해요.
- 측정값 안에서
/연산자보다 DIVIDE가 왜 더 안전한지 설명해요.
모두 익숙하다면 E5 — VBA 자동화로 건너뛰세요.
개념 익히기
이번 레슨에서 배울 내용
- 팩트 테이블과 차원 테이블
- 팩트 테이블 하나(Sales — 거래 하나당 한 행)를 그것을 설명하는 작은 차원 테이블들(Calendar, Products, Regions)이 둘러싸요. 절대 그 반대가 아니에요.
- 스타 스키마 설계
- 모든 차원은 서로가 아니라 팩트 테이블에 직접 연결돼요. 사슬이 아니라 '별' 모양이죠. 이 모양 덕분에 필터 컨텍스트가 예측 가능하게 동작해요.
- 관계 방향
- 필터는 보통 '일' 쪽(차원)에서 '다' 쪽(팩트 테이블)으로 흘러요. Region 필터가 Sales를 좁히지, 그 반대는 아니에요. 다대다 관계는 이런 예측 가능성을 깨뜨리니 피하는 게 좋아요.
- 측정값 테이블
- 측정값만 담아 두는 작고 빈 표예요. 측정값을 Sales나 Calendar에서 분리해 두면, 모델을 여는 누구든 모든 계산을 한눈에 보이는 한 곳에서 찾을 수 있어요.
- CALCULATE 기초
CALCULATE는 기존 측정값을 받아 그 주변의 필터 컨텍스트를 바꿔요. "Revenue"와 "Revenue, 단 East만"의 차이를 만드는 게 바로 이 함수예요.- 시간 인텔리전스 개념
SAMEPERIODLASTYEAR같은 함수는 현재 필터의 날짜를 1년 전으로 옮겨요. 그래서 이전 기간 비교 측정값이 특정 월 하나가 아니라 지금 보고 있는 어느 월에서든 동작해요.- 안전한 비율을 위한 DIVIDE
DIVIDE(numerator, denominator)는 분모가 0이면 오류 대신 빈 값을 돌려줘요./로 만든 비율 측정값은 언젠가#DIV/0!로 보고서를 망가뜨려요.- 필터 컨텍스트
- 같은 측정값이 피벗 테이블(PivotTable)의 셀마다 다른 숫자를 돌려주는 건, 각 셀이 행, 열, 슬라이서(Slicer) 필터의 조합을 각자 적용하기 때문이에요. 이게 필터 컨텍스트이고, 측정값이 계산된 열(calculated column)보다 강력한 이유예요.
엑셀에서 찾는 위치
Power Pivot›측정값›새 측정값
자동 저장 Book1.xlsx · 저장됨 검색–□✕
파일홈삽입페이지 레이아웃수식데이터검토보기자동화도움말Power Pivot
관리
데이터 모델
측정값
KPI
계산
데이터 모델에 추가
테이블
검색
관계
| A | B | C | D | E | F | G | H | ||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 지역 | Sales YoY % | |||||||
| 2 | 북부 | 5.8% | |||||||
| 3 | 남부 | -1.2% | |||||||
| 4 | 서부 | 9.4% | |||||||
| 5 | |||||||||
| 6 | |||||||||
| 7 | |||||||||
| 8 | |||||||||
| 9 | |||||||||
| 10 | |||||||||
| 11 | |||||||||
| 12 | |||||||||
| 13 |
측정값? ✕
_Measures▾
Sales YoY %
=DIVIDE([Sales] - [Sales LY], [Sales LY])
[Sales LY] = CALCULATE([Sales], SAMEPERIODLASTYEAR(Calendar[Date]))
범주: 백분율
확인취소
◀ ▶Sheet1+
준비접근성: 계속 진행 가능▦ ▤ ▥ — + 100%
옆으로 밀어 창 전체를 볼 수 있어요.
- 1Power Pivot › 측정값 › 새 측정값.
- 2모든 측정값은 측정값 전용 테이블에 모아요.
- 3분모가 0이면 DIVIDE는 오류 대신 빈 값을 돌려줘요.
- 4관리 › 다이어그램 뷰에서 별 모양 스키마를 만들고 관계 방향을 확인해요.
- 5같은 측정값이 지역마다 다시 계산돼요. 이것이 필터 컨텍스트예요.
Microsoft 365용 Excel(Windows) 화면을 재현한 그림입니다. Mac, 웹용 Excel 또는 좁은 창에서는 리본 배치가 조금 다를 수 있습니다.
따라 만들기
스타 스키마예요. Sales 팩트 테이블 하나를 차원 테이블 세 개가 둘러싸고 있어요. 실제 모델에 필요한 측정값 세 개를 작성해 보세요.
혼자 응용하기
나만의 스타 스키마 만들기
평소 쓰는 평면 내보내기 파일을 하나 골라 팩트 테이블 하나와 차원 테이블 두 개 이상(날짜 테이블 하나와 조회용 테이블 하나)으로 나눠 보세요. 관계를 연결한 다음 Revenue, Margin %, 이전 기간 비교 측정값을 작성하고, 다른 차원으로 잘라 볼 때 같은 측정값이 다른 숫자를 돌려주는지 확인하세요.
이 레슨에서 틀린 부분을 찾았거나 제안이 있나요? 의견 보내기