키 값을 가지고, 파편화된 데이터를 함께 볼 수 있습니다.
데이터셋을 쿼리로 가져옵니다. 드라이브 내 2_sales_sample_merge.xlsx를 불러옵니다.
설명:
병합은 두 개 이상의 테이블 간의 공통된 열을 기준으로 데이터를 결합합니다.
예시: 고객 정보 테이블과 주문 정보 테이블을 고객 ID로 병합하여, 고객별 주문 내역을 포함한 테이블을 생성할 수 있습니다.
병합 방법





실습: "고객, 주문, 상품 정보 병합하기"
실습 정답

아래 M 코드를 적절히 이용해 누적 재고를 계산해봅시다.
그룹화 및 누적 재고 계산 (M 코드 활용):
List.Accumulate 함수를 사용하여 각 제품의 주문량을 누적 차감하는 방식으로 재고를 계산합니다.// 주문일 기준으로 정렬
정렬된_데이터 = Table.Sort(#"확장된 products", {{"주문일", Order.Ascending}}),
// 각 제품별로 초기 재고 설정 및 수량 차감
재고_차감_데이터 = Table.Group(정렬된_데이터, {"제품명"}, {{"누적재고", each List.Accumulate([수량], [재고]{0}, (state, current) => state - current), type number}})
해석:
Table.Group(정렬된_데이터, {"제품명"}, ...):
정렬된_데이터 테이블을 '제품명' 열을 기준으로 그룹화하는 것을 의미합니다. 즉, 동일한 제품명을 가진 행들을 하나의 그룹으로 묶는 것입니다.정렬된_데이터로, 그룹화할 데이터를 전달하는 테이블입니다.{"제품명"}로, 제품명 열을 기준으로 데이터를 그룹화하도록 지시합니다.{"누적재고", each List.Accumulate([수량], [재고]{0}, (state, current) => state - current), type number}:
그룹화된 각 제품 내에서 누적 재고를 계산하는 방식입니다.
"누적재고": 이 그룹화된 데이터에 대해 새로 생성되는 열 이름을 누적재고로 지정합니다.
each: 그룹 내에서 각 행에 대해 특정 함수를 적용하겠다는 의미로, 익명 함수의 시작을 나타냅니다.
List.Accumulate([수량], [재고]{0}, (state, current) => state - current):
List.Accumulate: M 코드에서 리스트의 값을 순차적으로 누적하여 계산하는 함수입니다.[수량]은 해당 그룹 내에서 각 제품이 주문된 수량을 가리킵니다.[재고]{0}는 그룹 내 첫 번째 행의 재고값을 참조합니다.state - current는 현재까지의 재고 상태에서 이번에 주문된 수량을 빼는 방식입니다.type number: 새로 계산된 '누적재고' 열의 데이터 유형을 number로 지정합니다.

데이터셋을 불러옵니다. 드라이브 내의 3_sales_sample_append.xlsx를 불러옵니다.