본문 바로가기
POWER BI

[Power BI/파워비아이] 실전 팁: 최신 데이터가 없는 경우 DAX로 자동 보정하는 법

by 하니in독일 2025. 4. 7.
반응형

 

 

데이터 분석을 진행하다 보면, 모든 팀이나 부서가 동일한 기간 동안의 데이터를 제공하지 않는 경우가 많습니다.

예를 들어, 일부 팀은 특정 월까지의 데이터를 제공하고, 다른 팀은 그보다 더 최신 데이터를 제공하는 경우가 있습니다.

이 경우, 전체 데이터를 분석할 때 최신 데이터가 없는 팀의 데이터를 보정해 사용해야 하는 상황이 발생할 수 있는 것이지요, 오늘은 이러한 상황에서 데이터를 보정하는 방법과 이를 DAX를 활용하여 처리하는 방법을 설명하겠습니다.

 


예시 데이터: A,B,C,D팀의 매출량 

아래의 데이터 예시를 보면 C팀은 10월 이후의 매출량이 NULL이고 D팀은 11월 이후의 매출량이 NULL인 상황입니다.

날짜 매출
A팀 2023-01 95,000
A팀 2023-02 98,000
A팀 2023-03 100,000
A팀 2023-04 102,000
A팀 2023-05 105,000
A팀 2023-06 110,000
A팀 2023-07 115,000
A팀 2023-08 118,000
A팀 2023-09 120,000
A팀 2023-10 122,000
A팀 2023-11 125,000
A팀 2023-12 130,000
B팀 2023-01 80,000
B팀 2023-02 82,000
B팀 2023-03 85,000
B팀 2023-04 87,000
B팀 2023-05 90,000
B팀 2023-06 92,000
B팀 2023-07 94,000
B팀 2023-08 96,000
B팀 2023-09 97,000
B팀 2023-10 98,000
B팀 2023-11 100,000
B팀 2023-12 105,000
C팀 2023-01 70,000
C팀 2023-02 72,000
C팀 2023-03 75,000
C팀 2023-04 78,000
C팀 2023-05 80,000
C팀 2023-06 82,000
C팀 2023-07 84,000
C팀 2023-08 86,000
C팀 2023-09 88,000
C팀 2023-10 NULL
C팀 2023-11 NULL
C팀 2023-12 NULL
D팀 2023-01 85,000
D팀 2023-02 88,000
D팀 2023-03 90,000
D팀 2023-04 92,000
D팀 2023-05 95,000
D팀 2023-06 98,000
D팀 2023-07 100,000
D팀 2023-08 103,000
D팀 2023-09 105,000
D팀 2023-10 108,000
D팀 2023-11 NULL
D팀 2023-12 NULL

 

 

이 때 단순히 SUM으로만 계산하게 되면 다음과 같은 결과치를 보여주게 됩니다. 

다음과 같이 팀 별로 빈 부분이 생기고, 전 4팀의 합계치도 줄어들게 됩니다. 


❕DAX를 이용해 최신 데이터가 없는 경우 자동으로 가장 최신 데이터를 보여주는 법

다음과 같은 DAX 계산식을 통해 최신 데이터가 없는 경우에는 가장 최신 데이터를 보여줄 수 있습니다. 

 

Adjusted Revenue = 
VAR CurrentTeam = SELECTEDVALUE('테이블'[팀])
VAR CurrentDate = 
    CALCULATE(
        MAX('테이블'[날짜]),
        FILTER(
            ALL('테이블'),
            '테이블'[팀] = CurrentTeam && NOT(ISBLANK('테이블'[매출]))
        )
    )
VAR LastAvailableRevenue = 
    CALCULATE(
        SUM('테이블'[매출]),
        '테이블'[날짜] = CurrentDate,
        '테이블'[팀] = CurrentTeam
    )
RETURN
if(isblank(sum('테이블'[매출])),LastAvailableRevenue,sum('테이블'[매출]))

 

1. CurrenTeam = 각 팀별 계산을 위해 사용합니다. 

2. CurrentDate = 각 테이블 당 가장 최근의 날짜를 팀 별 그리고 매출의 기입 여부에 따라 다르게 표시합니다. 예를 들어, 팀A의 경우는 가장 최근의 날짜인 2023년 12월이, 팀D의 경우에는 2023년 10월이 표시됩니다. 

3. LastAvailableRevenue = 위의 두 variable을 중심으로 해 가장 최근의 매출을 구합니다. 

 

이 세 가지 Variable을 이용해서 return 값을 완성 시킬 수 있습니다. 

 

RETURN

: IF의 구문을 사용해, 매출이 NULL인 경우네느 최근의 매출값을, 아닌 경우에는 주어진 매출값을 보여주도록 합니다. 

 

이를 통해 다시 구한 Adjusted Revenue 는 다음과 같습니다.  

아래의 표 처럼 예전에는 비어있던 매출의 값이 가장 최근의 매출 값으로 채워진 것을 볼 수 있습니다.   

 

하나의 DAX 계산식을 통해 간단하게 계산식을 보정할 수 있습니다. 

 


오늘은 데이터가 일정하게 제공되지 않았을 때에 DAX를 이용해 데이터를 보정해 보여주는 방법에 대해 알아보았습니다. 

간단한 DAX 계산식 하나로 문제를 해결 할 수 있으니 편리하고 좋지 않나요? 

 

다음 시간에도 좀 더 편리한 DAX 계산으로 돌아오겠습니다.

감사합니다!  

반응형