이 글은 24.02.27에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
Project 5. 재고 분석을 통한 물류기획 관리
이번 시간에는 inventory table 데이터를 Power BI로 시각화 해 보고 대시보드를 작성할 것이다.
Power BI
데이터를 가져오자.
상단 데이터 가져오기 - MySQL - 서버 이름 적어주고, 스키마 이름 입력하고 - 적당히 쿼리 짜서 데이터 로드하기.
지난 프로젝트인 HR데이터 분석 때 했던 방식과 동일하다.
그리고 이제부터...
대시보드 작성에 쓰일 주요 지표 정의하기
- SKU count : 물품 종류
- Inventory count : 재고 보유량
- Count per SKU : 물품 종류 별 평균 갯수.
- Inventory cost : 총 재고 가치
- Inventory cost per count : 재고물품 하나의 평균 가치
- MOC(Month Of Coverage) : 보유 재고로 몇 달간 판매할 수 있는가. 재고 보유량/월 평균 판매량
정의한 지표 계산하기
DAX 구문으로 계산할 것이다.
상단 새 측정값 - DAX 구문 입력.
1. SKU count
SKU count = DISTINCTCOUNT(inventory[SKU_number])
2. Inventory count
Inventory count = SUM(inventory[ItemCount])
3. Count per SKU
Count per SKU = DIVIDE([2. Inventory count], [1. SKU count])
4. Inventory cost
여기서는 DAX 함수 중 SUMX라는 함수를 이용해 계산 할 것이다.
inventory cost = SUMX(inventory, inventory[ItemCount]*inventory[PriceReg])
5. Inventory cost per count
inventory cost per count = DIVIDE([inventory cost], [Inventory count])
6. MOC
Month of coverage = DIVIDE([Inventory count], DIVIDE(SUM(inventory[SoldCount]), 6))
시각화
1) 우선 카드로 SKU count, Inventory cost, Count per SKU, Inventory cost per SKU 표시
2) 도넛차트도 추가해주자. 자잘한 사항들은 알아서 조정해보도록 하자.
3) 꺾은선 및 세로막대형 차트. 역시 세부사항들은 사용자 마음이니 알아서 조정해보자.
4) (누적)영역형 차트. Inventory table에 Aging 열을 추가해준 후, 해당 열로 시각화 할 것이다.
화면 좌측 테이블 뷰 - 새 열
Aging year = 2024-[ReleaseYear]
를 입력해주면 Aging year 열이 생길 것.
그 후 누적 영역형 차트에 아래 사진과 같이 필드를 올리고, 해당 차트에만 ReleaseYear 1950 이상이라는 필터를 걸어주면 ??
해당 차트를 복사해서 하나는 일반 영역형 차트로 바꿔주고, 두 차트 모두 범례에 Inventory type을 넣어주자.
SWITCH와 SELECTEDVALUE
그런데, 위의 영역형 차트에서 SKU count 말고 다른 5개의 지표들도 보고 싶다고 하면, 어떻게 해야 할까? 그래프를 5개 더 만들어야 할까?
그보단 필터를 걸어주는 것이 더 효율적이다.
슬라이서 등의 필터를 걸어줘도 좋지만, DAX 구문으로도 같은 효과를 내게 할 수 있다.
그것이 SWITCH 구문이다.
SQL의 CASE WHEN 구문과 비슷한 역할을 한다고 이해하면 된다.
이 때, expression 자리에 요긴하게 사용할 수 있는 DAX구문이 있는데, 그것이 SELECTEDVALUE 구문이다.
이제 사용해서 원하는 시각화 차트를 그려보자.
우선, 새로운 테이블(상단의 홈 탭 - 데이터 가져오기. 이름은 D_indicator로.)를 만들고 아래와 같이 indicator, index라는 열을 만들어준 후 switch와 selectedvalue 구문을 써서 새 측정값을 만들어준다.
이제 슬라이서 하나 생성. 필드에는 indicator를 올리자.
그리고 영역 차트의 Y축 값엔 SKU count 대신 위에서 만든 측정값인 Switch indicator를 올려주자. 그 후 슬라이서에서 영역 차트에서 보고 싶은 항목을 선택하면?
잘 작동한다!
SKU grade 테이블 추가 및 inventory 테이블과 join
지난 시간에 만든 SKU grade 테이블도 활용해서 시각화에 추가해보자.
mysql에 연결해서 sku grade 테이블을 가져온다.
이제 inventory 테이블과 sku grade 테이블을 조인할건데, 조인할 마땅한 key가 없으므로 두 테이블에 각각 key 역할을 할 동일한 column을 하나 만들어 줄 것이다.
열 추가 탭의 사용자 지정 열 메뉴를 활용한다.
이렇게 SKU_grade 테이블에 join key라는 열을 만들어 주었고, inventory 테이블에도 같은 열을 만들어 준다.
그러고 나서 좌측의 모델보기 탭에 가면, 연결된 것을 볼 수 있다.
'Data Analysis > Data Analysis' 카테고리의 다른 글
Project 6. 유통 SCM 데이터 분석 (2) (0) | 2024.04.01 |
---|---|
Project 6. 유통 SCM 데이터 분석 (1) (0) | 2024.04.01 |
Project 5. 재고 분석을 통한 물류기획 관리 (1) (1) | 2024.04.01 |
Project 4. HR 데이터를 통한 채용 기획하기 (6) (2) | 2024.03.30 |
Project 4. HR 데이터를 통한 채용 기획하기 (5) (1) | 2024.03.30 |