인수 설명
=REDUCE([초기값], 배열, 계산식)
- REDUCE 함수의 초기값은 합계 계산에서는 0, 곱셈에서는 1, 텍스트 연결에서는 빈 문자열처럼 연산에 맞는 값이어야 합니다.
- LAMBDA(a,x,수식)에서 a는 이전 누적값, x는 현재 배열 요소를 뜻합니다.
함수 개요
엑셀 REDUCE 함수는 배열을 순서대로 순회하면서 LAMBDA 함수 로 누적값을 갱신합니다. REDUCE 함수는 갱신한 마지막 값 하나만 반환합니다. 특정 조건을 만족할 경우, 이전 단계의 결과를 다음 단계에 순차적으로 계산해 최종 결과를 반환할 수 있어 코딩의 반복문을 대체해 자동화 서식에 사용할 수 있습니다.
=REDUCE(0,{2;3;4},LAMBDA(a,x,a+x))초기값 0부터 세 숫자를 차례로 더합니다.요소마다 변환 결과를 모두 펼치는 함수는 MAP 함수 입니다. 각 단계의 누적값을 모두 반환하는 함수는 SCAN 함수 입니다. 좌표 기반 배열을 만드는 함수는 MAKEARRAY 함수 입니다.
REDUCE 함수 간단 예제
금액 배열 {12;18;25;5}를 초기값 0부터 차례로 더합니다.
=REDUCE(0,{12;18;25;5},LAMBDA(a,x,a+x))네 금액을 누적하여 더합니다.B2:B6 범위에는 점수 {75;80;82;90;85}가 입력되어 있습니다. REDUCE 함수는 80점을 초과한 점수만 누적값에 더합니다.
=REDUCE(0,B2:B6,LAMBDA(a,x,IF(x>80,a+x,a)))REDUCE 함수는 80점을 초과한 점수만 누적값에 더합니다.기준 금액 100에 할인 배수 {0.9;0.8}을 순서대로 곱해 10% 할인 후 다시 20% 할인한 값을 구합니다.
=REDUCE(100,{0.9;0.8},LAMBDA(a,x,a*x))두 할인 배수를 차례로 적용합니다.처리 단계 {"접수";"검토";"완료"}를 화살표로 연결합니다. 첫 번째 배열 요소 앞에는 구분자가 붙지 않습니다.
=REDUCE("",{"접수";"검토";"완료"},LAMBDA(a,x,IF(a="",x,a&" → "&x)))단계명을 하나의 문자열로 누적합니다.그 외 주의사항
REDUCE 함수와 LAMBDA 함수는 M365 버전에서만 제공됩니다. LAMBDA를 지원하지 않는 구버전 Excel에서는 #NAME? 오류가 발생합니다.
REDUCE 함수의 LAMBDA 계산식이 누적값과 현재 요소를 받는 매개변수 두 개로 구성되지 않으면 #VALUE! 오류가 반환될 수 있습니다.
REDUCE 함수의 초기값은 연산에 맞는 값이어야 합니다. 예를 들어 곱셈의 초기값이 0이면 이후 값을 곱해도 최종 결과는 0입니다.
REDUCE 함수는 최종값 하나만 반환합니다. SCAN 함수 는 각 단계의 중간 누적값을 모두 반환합니다.