2020. 6. 18. 00:35ㆍ엑셀/파워피벗 공부
마치 마법과도 같은 함수이다.
파워 피벗을 사용하는 가장 큰 보람을 주고 있는 함수이다.
MS 사이트에서 찾아보면 다음과 같이 소개되어 있다.
"지정된 필터로 수정된 컨텍스트에서 식을 평가합니다."
Evaluates an expression in a context that is modified by the specified filters.
CALCULATE(<expression>,<filter1>,<filter2>…)
내 나름대로 쉽게 표현하자면
"현재 파워 피벗테이블에 걸려 있는 필터가 아닌 CALCULATE 함수에서 지정된 필터를 기준으로 측정값이 계산되어 출력된다."
라고나 할까?
역시 직접 써봐야 이해가 된다. 엑셀과 프로그램밍은 글로 배울 수 없어요. 손으로 배워야 합니다. ^^;
예를 들어보자.
위와 같은 매출실적 데이터에서 매출실적의 전체 합계 값을 각 항목별에 다 띄울 수 있을까?
노란색 박스 부분에 전체의 총계인 127,500을 표현 할 경우가 필요한데... 그냥 피벗테이블에서는 불가능하다. 무조건 화면에 표시된대로만 구성되기 때문이다.
하지만 파워피벗에서는 이게 가능하다. 아마 다른 포스팅에서 이미 예시로 소개된적이 있을 것이다. 하지만 오늘 DAX 함수에 대해 소개 포스팅이므로 젤 빈도가 높은 CALCULATE 를 잘 정리해보자.
먼저 위 테이블을 데이터 모델로 구성하고 측정값을 다음과 같이 만들면된다.
Sales amount:=SUM(fSales[매출금액])
먼저 매출금액의 측정값을 만든다.
Total Amount:=(fSales[Sales amount],ALL(fSales))
* ALL 함수는 적용되었을 수 있는 필터를 무시하고 테이블의 모든 행 또는 열의 모든 값을 반환한다. 현재 걸린 필터를 지우고 원본 데이터의 모든 항목에 대한 계산을 만들어주는 조건이라고 생각하면 이해하기 쉽다.
다시 설명하자면
- '매출금액'의 합계로 계산된 측정값 => Sales amount
- 그리고 이 측정값에 걸린 필터를 무시하는 측정값 => Total Amount
인 것이다. 아래 그림을 보면 이해가 쉬울 것이다.
측정값 Total Amount는 현재 피벗 테이블의 상태를 무시하고 전체의 합계로 각 항목별로 출력되었다.
측정값 등록 내용
이것을 이용하면 많은 것을 할 수 있다. 일단 총계를 필터에 영향없이 표현이 가능하니 전체 비중을 보는 것도 가능하다. 물론 일반 피벗 테이블에서도 가능하지만 필터가 걸렸을때의 문제가 해결된다.
그 외에도 특정 값을 필터 하여 기준값 대비 계산도 가능하다. 이게 아주 중요하다. 이 부분은 작업 사례를 별도로 포스팅을 할 계획이다.
일찍 퇴근합시다.
'엑셀 > 파워피벗 공부' 카테고리의 다른 글
파워쿼리로 데이터모델구성 예제 (0) | 2020.07.17 |
---|---|
[파워피벗] 데이터모델 구성할때 테이블 정리 Tip (0) | 2020.07.17 |
[파워피벗 공부] 계획 대비 실적 차이분 예제 (0) | 2020.06.15 |
엑셀 슬라이서 사용법(2/2) (0) | 2020.06.12 |
[파워피벗 공부] 누적합계 Running Total (0) | 2020.06.09 |