1. CALCULATE 함수 기본 구조 복습
DAX
코드 복사
CALCULATE(
<expression>,
<filter1>,
<filter2>,
...
)
<expression>: SUM, AVERAGE, COUNT, DISTINCTCOUNT 등 집계 함수를 지정
<filter>: 테이블[컬럼] = "값" 같은 조건을 넣어, 해당 조건만 적용한 상태에서 <expression>을 계산
예) CALCULATE(COUNT(HR[EmployeeNumber]), HR[Attrition] = "No")
: 퇴사하지 않은 직원 수를 세어 줌.
2. 추가 사례: Attrition & Gender 별로 인원수 집계
아래 예시는 HR 데이터를 예로 들어, “퇴사 여부(Attrition)”와 “성별(Gender)” 조합별 인원수를 구해 시각화에 표시한 경우를 보여줍니다.
2-1. DAX Measure 작성
DAX
코드 복사
HC_By_Attrition_Gender =
CALCULATE(
COUNT(HR[EmployeeNumber]),
HR[Attrition] = "No",
HR[Gender] = "Male"
)
- 예) 위와 같이 만든 측정값(Measure)은 “퇴사하지 않은 남성(Male)”의 인원수만 세어줍니다.
- 유사하게 다른 조건(여성, 퇴사한 케이스 등)들을 칼큘레이트로 분리해 측정값을 더 만들 수 있습니다.
2-2. 카드(Card) 시각화
- 새 Measure를 만들면, 시각화 창에서 “카드(Card)”를 선택한 뒤 해당 측정값을 드래그 앤 드롭합니다.
- 화면에 “퇴사하지 않은 남성 인원수” 같은 값이 한눈에 표시됩니다.
2-3. 파이 차트(Pie Chart)
- 차원(범주)으로
Attrition, Gender 등을 드래그하고, 값(Values)에 인원수(COUNT) 혹은 새로 만든 Measure를 놓으면,
- 파이 차트 형태로 각 조합별 비율을 직관적으로 확인 가능.
- 아래 그림처럼, “퇴사 Yes/No” + “남/여” 조합으로 분류된 파이 차트가 나옵니다.
3. 보고서 화면 예시
- 카드 비주얼
- 예: “Working HC: [Filtered HC]”로 이름 붙인 카드에서,
CALCULATE를 활용해 조건부 집계를 표시.
- 화면상에는 “1,253 명” / “237 명” / “16.2%” 등 다양한 조건에 따른 측정값을 배치할 수 있음.
- 파이 차트
- “HC by Attrition / Gender”라는 제목의 파이 차트에,
- 퇴사(Y/N)와 성별(M/F) 조합별로 인원수가 어떻게 나뉘는지 시각화.
- 차트를 클릭해 세부값을 확인하거나, 다른 시각화와 상호 작용(필터링)시킬 수도 있음.
이처럼 CALCULATE 함수를 통해 특정 조건하의 집계 결과를 Measure로 정의해두면,
카드, 파이 차트, 테이블/매트릭스 등 다양한 시각화 컴포넌트에서 쉽고 빠르게 불러다 쓸 수 있습니다.
4. 요약 및 팁
- CALCULATE는 DAX의 대표적인 필터 함수로, 필터를 추가하거나 기존 컨텍스트를 재정의해 주어진 집계를 계산합니다.
- Attrition, Gender 등 여러 컬럼에 대해 AND 조건을 쉼표로 나열해도 좋고, 복잡한 경우에는
FILTER 함수를 중첩하여 OR 조건 등을 구성할 수 있습니다.
- 시각화 단계에서는 Measure로 만들어둔 값들을 카드나 차트에 배치해 손쉽게 KPI 지표를 표현 가능합니다.
- Power BI의 필터 컨텍스트와 CALCULATE 함수가 어떻게 상호작용하는지 이해하면, 같은 Measure가 필터링(슬라이서, 시각화 상호작용 등)에 따라 동적으로 업데이트되어 매우 유연한 보고서를 만들 수 있습니다.