여기서 값(매출량, CPC,...)은 A, AA, AAA로 통일함
날짜가 포함된 컬럼은 B, BB로 통일함
테이블 : '테이블'
컬럼 : [컬럼]
○ 전월의 데이터 구하기
전월A = CALCULATE([CPC] , DATEADD( 'Data'[B], -1 , MONTH))
○ 총 합계 데이터 구하기
총A = SUM('Data'[A])
○변수 선언 및 필터와 그룹화 후 계산
이해가 어려워서 실제 값으로 정리
VAR 변수명 = 식
SUMMARIZE( 테이블, [컬럼명])
FILTER(테이블, [컬럼명] IN 테이블)
-------------
-------------
>> DATA 테이블에서 Year 열을 기준으로 그룹화하고, 각 그룹의 Year 값을 가져오고 이를 TB라는 변수에 저장한다.
D_OBJECTIVES 테이블에서 Year값이 TB 변수에 포함된 값과 일치하는 행만 필터링하고, OBJECTIVES 열을 기준으로 그룹화하여 각 그룹의 Objectives 값을 가져온다. 이는 TB2라는 변수에 저장된다.
D_SUBMEDIA 테이블에서 Year 값이 TB 변수에 포함되고 , GB 열의 값이 1 또는 4인 행만 필터링하고 SUBMEDIA 열을 기준으로 그룹화하여 각 그룹의 Submedia 값을 가져온다. 이는 TB3라는 변수에 저장된다.
마지막으로 Budget(NET)의 측정값의 합계를 계산하는데, 이를 위해 Data 테이블의 Objectives 열 값이 TB2 변수에 포함된 값 중 하나이고, Submedia 열 값이 TB3변수에 포함된 값 중 하나인 행만 고려한다.
○ IF 문 사용
SELECTEDVALUE(테이블[컬럼명] , 없을때의 값) : 지정된 테이블의 열 값을 가져오고, 만약 선택된 값이 없다면 없을때의 값을 출력한다.
IF ( 조건식(T/F) , True일때 값, False 일때 값)
문자열 합치기에는 & 기호가 쓰인다.
>> Data 테이블의 Year 열에서 선택된 값을 가져와 SEL 변수에 저장함
SEL 변수가 Null인지 아닌지를 판단 , NULL이 아닌경우 , MAX 함수를 사용하여 D_OBJECTIVES테이블에서 OBJECTIVES 열의 최대 값을 계산한다. 이때, D_OBJECTIVES의 YEAR 값이 SEL 변수와 일치하는 행만 고려한다.
그 다음 결과를 문자열 형식으로 변환하여 "[OBJECTIVE CPC]" 형식으로 반환하고 SEL 변수가 NULL인 경우, 즉 선택된 값이 없는 경우에는 "[Multi CPC]" 문자열을 반환한다.
○ MAX 와 MAXX
------------------------
MAX() : 주어진 열의 최대값 반환 ex) MAX(Data[Sales]) : Sales 열에서 가장 큰 값 반환
MAXX() : 주어진 테이블에서 지정된 열의 최대값 반환 ex) MAXX(Sales, Sales[Revenue]) : Sales 테이블에서 Revenue 열의 최대값 반환
>> ADDCOLUMNS( 테이블명 , 컬럼명 , 표현식 ) 으로 생성된 변수 ST 의 StartDT 컬럼의 최대값 반환 후 Year-Month 열과 비교
○ SELECTCOLUMNS
------------------------
SELECTCOLUMNS( 테이블, 새로운 컬럼명, 표현식/계산식 )
: 주어진 테이블에서 새로운 열을 선택하거나 계산하여 새로운 테이블 생성
>> 0_DATE 테이블에서 Month 열을 기준으로 그룹화하여 같은 기간 작년 데이터를 만든다.
이후 그룹화된 결과에서 PRE_DATE 열을 선택하고 이 중 최대값을 계산하여 SDT 변수에 저장한다.
이후 0_ DATE 테이블에서 Month 열의 최대값을 계산하여 EDT 변수에, 기준연월 열의 최대값을 계산하여 SEL 변수에 저장한 뒤 주어진 조건에 따라 RETURN
○ COUNT , COUNTAX
------------------------
COUNT() : 주어진 열에서 비어있지 않은 값을 가진 행의 수 반환
특정 열의 값이 있는 행의 수를 세는 데 사용됨
ex) COUNT(Sales[Product])
COUNTAX() : 주어진 테이블에서 특정 조건을 만족하는 행의 수 반환
ex) COUNTAX(Sales, Sales[Revenue] > 1000 ) : Sales 테이블에서 Revenue열의 값이 1000 보다 큰 행의 수를 반환
'Power BI' 카테고리의 다른 글
Power BI 보고서 작성 # 1 (0) | 2024.04.24 |
---|---|
Power BI - 데이터 적재 , ETL (4) | 2024.04.23 |
DAX 함수 및 파워쿼리편집기를 통한 측정값 #3 (4) | 2024.04.17 |
DAX 함수 및 파워쿼리편집기를 통한 측정값 #2 (0) | 2024.04.16 |
Power BI 기본 내용 정리 (0) | 2024.04.11 |