앞에서 powerbi기본적인 사용법을 배웠다.
이제 계산, 차트를 만들 때 좀 더 시각적으로 자유도를 높이기 위하여 함수를 다루기로 한다.
1. 기본적인 함수
2. 측정값 개념과 원리
powerbi는 진짜 로딩 작업이 너무 오래 걸린다.
<시작>
일단 새로운 시각적 개체를 불러온다.
이번에는 테이블로 하나 불러온다.
일단 country별 salesamout를 넣는다.
현재는 국가별로 매출액을 합계를 내서 계산을 하고 있는데, 이 원리는 어떤 필드에 대해서 어떻게 집계를 할거냐
여기서 필드는 열이라고 생각하면 된다고 했다.
이제 이 부분을 식으로 한번 작성해본다.
=SUM(SALES TABLE[SALESAMOUNT])
-> 함수(테이블[열])
파이썬이랑 비슷한듯?
측정값==식
SUM과 같은 이 함수를 DAX (Data analysis expression) 함수라고 한다.
이제 앞으로 측정값이라고 하면 다 우리가 직접 작성하는 명시적인 측정값을 이제부터 의미
굳이 내장된 함수 사용할 수 있겠지만, 이렇게 작성하는 이유는 이래야 복잡한 계산이 있을 수 있고, 좀 더 고급 작업을 할 수 있기 때문이다.
고급 작업-> 조건을 넣어서 계산, 둘의 집계값을 나눠준다든지 등등
<새 측정값 계산>
특정한 테이블을 하나 선택
이런 식으로 아래 측정값이 나타난 모습을 확인할 수 있다.
처음해야할 작업은 지금 이 측정값의 이름을 지어주는 것이다.
내가 원하는대로 작성해도 되겠지만, 실무에 쓰이려면 명시적으로 알아볼 수 있도록 작성해야할 것이다.
이렇게 이름을 작성하고 함수명을 작성하면 자동완성 기능이 나타나게 되는데, (Tab/ enter/click중 에 하면 된다.)
캡쳐본에는 잘 안뜨는 듯 하다.
Tab/ enter/click중 에 하면 된다.
salesamo만 작성해도 자동완성되어 내가 찾고자하는 열이 나온다.
(단, 데이터에서 드래그하여 열을 가져오는 것은 현재까지는 불가능하다)
이렇게 해서 엔터를 치면 우리의 첫번쨰 명시적 측정값이 만들어진 것을
데이터를 통하여 확인해볼 수 있다.
주의점
테이블명을 내가 임의로 지어내려고 하면 이렇게 작성해야한다.
측정값=SUM('테이블명'[열이름])
측정값이 좀 더 재밌는거 같다!
이 측정값은 내장 측정값과 마찬가지로 시각화에 넣어줄때 그때 계산이 되는 것
식을 도출했다고해서 바로 계산값이 도출되는 것은 아니다.
얘는 지금 시각적 개체에 넣어주기를 기다리고 있다.
넣어주게 되면 그때 해당되는 필터에 맞춰서 계산이 돌아가게 된다.
아 어떤지 알거 같지 않은가?
감이 좀 잡히는 듯?
이제 customer key에 대해서 해보자
일단 고유로 바꿔서 중복값을 제거하고
고유한 것들만 계산을 하기 위해서 (중복을 없애기 위하여)
distinctcount함수를 사용해본다.
이렇게 하면 우리가 기대한 대로 내장함수와 동일한 값이 산출되는
모습을 확인해볼 수 있다.
그리고 이번에는 고유한 고객 한명당 평균 매출액이 얼마인가?
-> TTLSales/No of Customer
이렇게 계산식을 작성하면 새로운 열이 만들어 지고
이렇게 테이블을 넣어주면 된다.
측정값의 특징
1. 각 측정값의 결과는 항상 하나의 값만 반환
엑셀에서 함수를 쓰는 것은 어떤 셀 한칸을 채우기 위한 것
powerbi에서는 시각적으로 주어진 필터에 따라서 그때 그때 필터에 맞춰서 게산식이 돌아가고 값을 반환
(각 측정값의 결과는 항상 하나의 값만 반환!)
2. 한 번 만든 측정값들은 재사용이 가능하다.
데이터만 가만히 있으면 어떤 시트든 추가가 가능하다.
그러면 측정값을 재활용하여 다른 측정값을 만들어본다.
이미 만들어 놓은 측정값 소환하려면 이처럼 대괄호([])를 넣어야한다.
이처럼 왼쪽 값과 똑같이 된 모습을 확인하면서
재사용이 가능하다는 것을 알 수 있다.
<정리>
DAX함수란? 집계/연산 또는 '새 열'/'새 테이블' 생성을 위하여 사용하는 함수
측정값 특징
1. 집계/ 연산 목적으로 작성한 DAX함수식
2. 시각화에 삽입될 때 주어진 슬라이서 OR 필터에 맞춰서 계산
3. 항상 하나의 값을 반환
4. 작성하고 나서 언제든지 재사용 또는 조합 ㄱ능
5. 내재적 측정값 VS 명시적 측정값으로 구별
내재적-> 내부에 이미 있던 함수
명시적-> 우리가 만드는 측정값