MAP과 REDUCE로 반복 처리하기
배열 전체에 LAMBDA를 적용해 값을 변환하거나 누적합니다.
MAP과 REDUCE로 반복 처리하기은(는) CoddyKit의 무료 Excel Formulas Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Excel Formulas Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Excel Formulas Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
코드 없이 반복 처리하기
범위의 각 값에 같은 계산을 적용하거나, 전체 범위를 하나의 숫자로 축약하고 싶을 때가 있습니다. 프로그래밍에서는 이를 반복문이라고 합니다. 최신 스프레드시트에서는 MAP과 REDUCE가 LAMBDA를 사용해 이 작업을 대신 수행합니다.
- MAP은 배열의 각 요소를 새로운 요소로 변환합니다
- REDUCE는 모든 요소를 하나의 누적 결과로 결합합니다
두 함수 모두 각 값에 대해 수행할 작업을 설명하는 LAMBDA를 받습니다. Microsoft 365와 Google Sheets에서 사용할 수 있습니다.
MAP의 작동 방식
MAP은 배열을 순서대로 살펴보며 각 항목에 LAMBDA를 적용하여 같은 크기의 새 배열을 만듭니다. LAMBDA의 매개변수에는 한 번에 하나의 요소가 전달됩니다.
형식은 다음과 같습니다. 배열과 각 값을 나타내는 매개변수를 가진 LAMBDA를 MAP에 전달합니다. MAP은 변환된 결과를 셀에 자동으로 펼칩니다.
=MAP(array, LAMBDA(value, calculation))첫 번째 MAP 예
A2:A6에 가격 다섯 개가 있고 각각을 10퍼센트씩 올리고 싶다고 가정해 보겠습니다. MAP은 모든 값에 한 번에 인상률을 적용합니다.
LAMBDA 매개변수 p는 차례로 각 가격을 나타냅니다. MAP은 입력 셀마다 하나씩 총 다섯 개의 결과를 반환하며, 결과를 열 아래로 펼칩니다.
채우기 핸들을 끌거나 복사할 필요가 없습니다. 수식 하나로 전체 범위를 처리할 수 있습니다.
=MAP(A2:A6, LAMBDA(p, p*1.1))두 배열과 함께 사용하는 MAP
MAP은 두 배열을 동시에 순서대로 처리할 수 있습니다. 이때 LAMBDA는 각 배열에서 하나씩 가져온 두 매개변수를 위치별로 대응시켜 받습니다.
여기서는 A2:A6의 수량에 B2:B6의 가격을 곱해 행별 합계를 구합니다. 매개변수 q는 각 수량에, pr은 각 가격에 대응합니다.
두 배열의 크기가 같아야 합니다. 그렇지 않으면 오류가 발생합니다.
=MAP(A2:A6, B2:B6, LAMBDA(q, pr, q*pr))REDUCE의 작동 방식
REDUCE는 배열을 하나의 값으로 축약합니다. 각 요소가 처리될 때마다 업데이트되는 누산기를 유지합니다.
REDUCE에는 누산기의 시작 값, 배열, 그리고 두 매개변수를 가진 LAMBDA가 필요합니다. 두 매개변수는 acc(현재까지의 합계)와 value(현재 요소)입니다. LAMBDA는 각 단계에서 새로운 누산기 값을 반환합니다.
=REDUCE(start, array, LAMBDA(acc, value, new_accumulator))첫 번째 REDUCE 예
REDUCE로 범위의 합을 구해 보겠습니다. 물론 SUM으로도 같은 작업을 할 수 있지만, REDUCE의 작동 원리를 분명하게 보여 줍니다.
누산기를 0에서 시작합니다. A2:A6의 각 값에 대해 LAMBDA가 해당 값을 acc에 더합니다. 마지막 요소를 처리하면 acc에 합계가 들어갑니다.
값이 10, 20, 30이라면 누산기는 0, 10, 30, 60으로 차례로 변하고 최종값은 60이 됩니다.
=REDUCE(0, A2:A6, LAMBDA(acc, v, acc + v))누적 곱에 REDUCE 사용하기
연산을 바꾸면 REDUCE로 새로운 작업을 수행할 수 있습니다. 모든 값을 곱하려면 누산기를 1에서 시작하고 각 단계에서 곱합니다.
이렇게 하면 곱을 계산할 수 있으며, 복리 성장 계수와 같은 작업에 유용합니다. 시작 값은 중요합니다. 합에는 0을, 곱에는 1을 사용해야 합니다. 각각의 중립적인 시작 값이기 때문입니다.
=REDUCE(1, A2:A6, LAMBDA(acc, v, acc * v))MAP과 REDUCE 결합하기
하나의 수식에서 MAP으로 변환하고 REDUCE로 요약할 수 있습니다. 흔한 작업 중 하나는 범위의 제곱을 더하는 것입니다.
여기서는 MAP이 각 값을 제곱한 다음, REDUCE가 0에서 시작해 그 값을 모두 더합니다. MAP의 결과가 REDUCE가 처리할 배열이 됩니다.
=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))Google Sheets의 MAP과 REDUCE
Google Sheets에는 두 함수가 모두 동일한 문법으로 제공됩니다. MAP은 각 요소에 LAMBDA를 적용하고, REDUCE는 시작 값과 배열, 두 매개변수를 가진 LAMBDA를 사용해 누적합니다.
Sheets에는 관련 도우미 함수인 SCAN도 있습니다. SCAN은 REDUCE와 비슷하지만 최종 결과만 반환하는 대신 모든 중간 누산기 값을 반환합니다. Excel에도 SCAN이 있습니다.
=SCAN(0, A2:A6, LAMBDA(acc, v, acc + v))팁과 주의할 점
다음 몇 가지를 기억해 두세요.
- MAP에서는 LAMBDA가 요소마다 하나의 값을 반환해야 합니다
- REDUCE에서는 LAMBDA가 항상 새로운 누산기 값을 반환해야 하므로 잊지 마세요
- 알맞은 시작 값을 선택하세요. 합에는 0, 곱에는 1, 텍스트 결합에는 빈 문자열을 사용합니다
- 함께 전달하는 배열은 차원이 같아야 합니다
확실하지 않다면 먼저 단일 값에 인라인으로 LAMBDA를 테스트해 보세요.
각 함수를 사용하는 경우
각 입력에 대한 결과가 필요할 때는 MAP을 사용하세요. 예를 들어 모든 값에 인상률을 적용하거나 서식을 지정할 때 유용합니다.
여러 값을 하나로 결합하고 싶을 때는 REDUCE를 사용하세요. 사용자 지정 합계, 연결, 또는 직접 작성한 논리로 찾은 최댓값 등이 그 예입니다.
두 함수를 함께 사용하면 이전 스프레드시트에서는 하나의 수식으로 처리할 수 없었던 반복 작업도 표현할 수 있습니다.
빠른 확인
REDUCE를 얼마나 이해했는지 테스트해 보세요.
요약: MAP과 REDUCE를 사용한 반복 처리
LAMBDA 기반 함수를 사용해 배열을 반복 처리하는 방법을 배웠습니다.
- MAP은 각 요소를 새로운 요소로 변환하여 배열을 반환합니다
- REDUCE는 누산기를 사용해 배열을 하나의 값으로 축약합니다
- 알맞은 시작 값을 선택하세요. 합에는 0, 곱에는 1을 사용합니다
- MAP은 여러 배열을 대응시킬 수 있으며, MAP과 REDUCE를 결합하면 강력한 한 줄 요약을 만들 수 있습니다
- SCAN은 모든 중간 단계를 보여 줍니다
다음에는 LAMBDA를 이름이 지정된 함수로 저장하여 통합 문서 전체에서 깔끔하고 재사용 가능한 수식으로 사용하는 방법을 배웁니다.
=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))자주 묻는 질문
“MAP과 REDUCE로 반복 처리하기” 강의는 무료인가요?
네 — “MAP과 REDUCE로 반복 처리하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Excel Formulas Academy 강의 전체를 잠금 해제할 수 있습니다. Excel Formulas Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“MAP과 REDUCE로 반복 처리하기”에서 뭘 배우나요?
배열 전체에 LAMBDA를 적용해 값을 변환하거나 누적합니다. 브라우저에서 직접 실행하는 실습 코드로 Excel Formulas Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Excel Formulas Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Excel Formulas Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“MAP과 REDUCE로 반복 처리하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Excel Formulas Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Excel Formulas Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- LET으로 단계 이름 지정하기
- LAMBDA로 사용자 지정 함수 정의하기
- MAP과 REDUCE로 반복 처리하기
- 이름이 지정된 LAMBDA로 더 깔끔한 수식 만들기