인수 설명
=LET ( d, FILTER ( 원본 범위, 상품명 범위 <> "" ), q, CHOOSECOLS ( d, 3 ), cum, SCAN ( 0, q, LAMBDA ( a, b, a + b ) ), MAKEARRAY ( SUM ( q ), 2, LAMBDA ( r, c, INDEX ( d, XMATCH ( r, cum, 1 ), c ) ) ) )인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
원본 범위필수상품명, 규격, 수량을 왼쪽부터 차례로 입력한 범위입니다. 수량 열의 값은 모두 1 이상의 정수입니다.
상품명 범위필수빈 행을 제외할 기준이 되는 상품명 범위입니다. 비교식 <>""에서 <>는 같지 않음, ""는 빈 문자열이므로 상품명이 있는 행만 남기는 조건 범위입니다.
A
B
C
D
E
F
G
H
I
J
1
상품
규격
수량
반복 상품
반복 규격
검산 항목
값
2
머그컵
화이트
2
머그컵
화이트
상품 수
4
3
텀블러
블랙
3
머그컵
화이트
수량 합계
8
4
노트
무지
1
텀블러
블랙
결과 행 수
8
5
에코백
네이비
2
텀블러
블랙
6
텀블러
블랙
7
노트
무지
8
에코백
네이비
9
에코백
네이비
10
이 공식이 사용하는 함수
동작 원리
FILTER 함수가 빈 상품 행을 제외하고 SCAN 함수가 수량의 누적 끝번호를 만들면, XMATCH 함수가 반복 순번에 대응하는 원본 행을 찾고 MAKEARRAY 함수가 상품명과 규격을 펼칩니다.
예제 시트에서 반복 목록이 시작되는 E2 셀을 추적합니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
1
빈 상품 행을 제외합니다
상품명이 비어 있지 않은 네 행만 남기면 상품명, 규격, 수량이 함께 있는 원본 배열이 만들어집니다.
=FILTER ( A2:C6, A2:A6 <> "" )
= {머그컵, 화이트, 2; 텀블러, 블랙, 3; 노트, 무지, 1; 에코백, 네이비, 2}
2
수량의 누적 끝번호를 구합니다
수량 2, 3, 1, 2를 앞에서부터 더하면 각 상품이 끝나는 반복 순번은 2, 5, 6, 8입니다.
=LET ( d, FILTER ( A2:C6, A2:A6 <> "" ), q, CHOOSECOLS ( d, 3 ), SCAN ( 0, q, LAMBDA ( a, b, a + b ) ) )
= {2; 5; 6; 8}
3
반복 순번마다 원본 행을 찾습니다
일치 방식 1은 반복 순번과 정확히 같거나 다음으로 큰 누적 끝번호를 찾습니다. 1~8번은 원본의 1, 1, 2, 2, 2, 3, 4, 4번째 행에 대응합니다.
=XMATCH ( {1;2;3;4;5;6;7;8}, {2;5;6;8}, 1 )
= {1; 1; 2; 2; 2; 3; 4; 4}
4
찾은 행의 상품명과 규격을 펼칩니다
수량 합계만큼 여덟 행을 만들고 각 반복 순번에 대응하는 원본 행의 첫째 열과 둘째 열을 가져옵니다.
=LET ( d, FILTER ( A2:C6, A2:A6 <> "" ), q, CHOOSECOLS ( d, 3 ), cum, SCAN ( 0, q, LAMBDA ( a, b, a + b ) ), MAKEARRAY ( SUM ( q ), 2, LAMBDA ( r, c, INDEX ( d, XMATCH ( r, cum, 1 ), c ) ) ) )
= {머그컵, 화이트; 머그컵, 화이트; 텀블러, 블랙; 텀블러, 블랙; 텀블러, 블랙; 노트, 무지; 에코백, 네이비; 에코백, 네이비}
E2:F9 범위에 여덟 행과 두 열로 표시됩니다.
댓글 0
로그인 후 댓글을 작성할 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!