엑셀 전문가 · 대화형 레슨 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›측정값›새 측정값

옆으로 밀어 창 전체를 볼 수 있어요.

  1. 1Power Pivot › 측정값 › 새 측정값.
  2. 2모든 측정값은 측정값 전용 테이블에 모아요.
  3. 3분모가 0이면 DIVIDE는 오류 대신 빈 값을 돌려줘요.
  4. 4관리 › 다이어그램 뷰에서 별 모양 스키마를 만들고 관계 방향을 확인해요.
  5. 5같은 측정값이 지역마다 다시 계산돼요. 이것이 필터 컨텍스트예요.

Microsoft 365용 Excel(Windows) 화면을 재현한 그림입니다. Mac, 웹용 Excel 또는 좁은 창에서는 리본 배치가 조금 다를 수 있습니다.

따라 만들기

스타 스키마예요. Sales 팩트 테이블 하나를 차원 테이블 세 개가 둘러싸고 있어요. 실제 모델에 필요한 측정값 세 개를 작성해 보세요.

⭐ 스타 스키마 모델
측정값 세 개를 모두 작성한 다음 확인하세요. 올바른 함수를 쓴 DAX라면 같은 결과를 내는 어떤 식이든 정답으로 인정돼요.

혼자 응용하기

나만의 스타 스키마 만들기

평소 쓰는 평면 내보내기 파일을 하나 골라 팩트 테이블 하나와 차원 테이블 두 개 이상(날짜 테이블 하나와 조회용 테이블 하나)으로 나눠 보세요. 관계를 연결한 다음 Revenue, Margin %, 이전 기간 비교 측정값을 작성하고, 다른 차원으로 잘라 볼 때 같은 측정값이 다른 숫자를 돌려주는지 확인하세요.

이 레슨에서 틀린 부분을 찾았거나 제안이 있나요? 의견 보내기