반응형
Time intelligence를 이용하면 기간별 증감률을 쉽게 구할 수 있습니다. 하지만 날짜가 연속성이 없을 때는 어떻게 하면 될까요? FILTER, SELECTEDVALUE 등의 몇 가지 DAX 함수의 조합으로 가능한데 알아보겠습니다.
결과
- 테이블 ‘날짜’ 열 : 테이블의 날짜열을 보면 날짜가 1월 1일, 1월 5일, 1월 6일, 1월 8일 등으로 불연속적입니다.
- 테이블 ‘판매량’ 열 : 해당날짜의 판매량을 나타냅니다.
- 테이블 ‘증감률’ 열 : 전 날짜를 기준으로 증감률을 구한 값이 나타납니다.
- 증감률 차트 : 날짜를 X축, 증감률이 막대그래프, 판매량이 라인 차트로 나타낸 차트입니다.
주요 목표는 날짜가 불연속적임에도 불구하고 증감률을 전 시점 대비하여 구하는 것입니다.
측정식
증감률을 구하는 DAX 측정식입니다.
- PrevDate 변수 : 테이블에서 필터링된 해당 날짜보다 이전 날짜 테이블에서 가장 늦은 날짜를 필터링합니다. 즉, 직전 날짜를 반환합니다.
- PrevSales 변수 : 직전 날짜에 해당하는 판매량을 구합니다.
- ([판매량] - PrevSales) / PrevSales 식을 통해 증감률을 구하여 반환합니다.
증감률 =
VAR PrevDate =
MAXX(
FILTER(
ALL(Data[날짜]),
Data[날짜] < SELECTEDVALUE(Data[날짜])
),
Data[날짜]
)
VAR PrevSales =
CALCULATE(
[판매량],
FILTER(
ALL(Data[날짜]),
Data[날짜] = PrevDate
)
)
RETURN
IF(
PrevSales <> 0 && [판매량] <> 0,
([판매량] - PrevSales) / PrevSales
)
관련 DAX 함수 설명 - SELECTEDVALUE
- 설명 : 열이름의 컨텍스트가 하나의 고윳값으로 필터링된 경우 해당 값을 반환하는 함수입니다. 그렇지 않으면 대체 값을 반환합니다.
- 구문 : SELECTEDVALUE(<columnName>[, <alternateResult>])
- columnName : 기존 열을 나타내는 인수이며 식은 올 수 없습니다.
- alternateResult(선택) : 고유값으로 필터링되지 않는 경우 반환되는 함수이며 지정되지 않으면 빈칸이 반환됩니다.
정리 소감
타임인텔리전스를 사용하지 않고 증감률을 구하고 싶을 때 활용할 수 있는 DAX Pattern입니다. SELECTEDVALUE, MAXX, FILTER, CALCULATE의 응용하는 방법도 배울 수 있는 기회였습니다.
반응형
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
Power BI DAX Patterns 백분위수 계산 (Percentile Calculation) (0) | 2022.04.29 |
---|---|
Power BI DAX 함수 기초 (ALLSELECTED) (0) | 2022.04.28 |
Power BI DAX 최대값 최소값 및 해당 시점 찾는 방법 (MAX, MIN, CALCULATE, FILTER) (0) | 2022.04.23 |
Power BI DAX TOPN 함수 사용하여 시군구별 대장 아파트 가격 비교 하기 (0) | 2022.04.22 |
Power BI DAX Patterns 동적 제목 설정하는 방법 (CONCATENATEX) (0) | 2022.04.14 |
댓글