메뉴

REDUCE 함수

M365
지원 버전 자세히 보기
M365웹 엑셀

엑셀 REDUCE 함수는 배열의 요소를 차례로 누적 계산해 최종값 하나를 반환하는 함수입니다.

REDUCE 함수 예제 미리보기
예제 미리보기 크게 보기

인수 설명

=REDUCE([초기값], 배열, 계산식)
인수구분설명
초기값 선택
누적 계산을 시작할 때 사용할 첫 번째 값입니다.
  • REDUCE 함수의 초기값은 합계 계산에서는 0, 곱셈에서는 1, 텍스트 연결에서는 빈 문자열처럼 연산에 맞는 값이어야 합니다.
배열 필수
처음부터 끝까지 순서대로 누적 계산할 값 배열입니다.
계산식 필수
누적값과 현재 값을 받아 다음 누적값을 반환할 LAMBDA 계산식입니다.
  • LAMBDA(a,x,수식)에서 a는 이전 누적값, x는 현재 배열 요소를 뜻합니다.
예제 시트
C2=REDUCE(0,A2:A4,LAMBDA(a,x,a+x))
A
B
C
D
1
REDUCE 결과
2
2
9
3
3
24
4
4
5
REDUCE 함수는 값 {2;3;4}를 초기값 0부터 더하면 C2에 9를 반환합니다. REDUCE 함수는 값 {2;3;4}를 초기값 1부터 곱하면 C3에 24를 반환합니다.

함수 개요

엑셀 REDUCE 함수는 배열을 순서대로 순회하면서 LAMBDA 함수 로 누적값을 갱신합니다. REDUCE 함수는 갱신한 마지막 값 하나만 반환합니다. 특정 조건을 만족할 경우, 이전 단계의 결과를 다음 단계에 순차적으로 계산해 최종 결과를 반환할 수 있어 코딩의 반복문을 대체해 자동화 서식에 사용할 수 있습니다.

=REDUCE(0,{2;3;4},LAMBDA(a,x,a+x))초기값 0부터 세 숫자를 차례로 더합니다.
결과9

요소마다 변환 결과를 모두 펼치는 함수는 MAP 함수 입니다. 각 단계의 누적값을 모두 반환하는 함수는 SCAN 함수 입니다. 좌표 기반 배열을 만드는 함수는 MAKEARRAY 함수 입니다.

REDUCE 함수 간단 예제

1
여러 금액의 합계 구하기

금액 배열 {12;18;25;5}를 초기값 0부터 차례로 더합니다.

=REDUCE(0,{12;18;25;5},LAMBDA(a,x,a+x))네 금액을 누적하여 더합니다.
결과60
2
80점 초과 점수만 합산하기

B2:B6 범위에는 점수 {75;80;82;90;85}가 입력되어 있습니다. REDUCE 함수는 80점을 초과한 점수만 누적값에 더합니다.

=REDUCE(0,B2:B6,LAMBDA(a,x,IF(x>80,a+x,a)))REDUCE 함수는 80점을 초과한 점수만 누적값에 더합니다.
결과257
3
연속 할인 결과 구하기

기준 금액 100에 할인 배수 {0.9;0.8}을 순서대로 곱해 10% 할인 후 다시 20% 할인한 값을 구합니다.

=REDUCE(100,{0.9;0.8},LAMBDA(a,x,a*x))두 할인 배수를 차례로 적용합니다.
결과72
4
처리 단계 연결하기

처리 단계 {"접수";"검토";"완료"}를 화살표로 연결합니다. 첫 번째 배열 요소 앞에는 구분자가 붙지 않습니다.

=REDUCE("",{"접수";"검토";"완료"},LAMBDA(a,x,IF(a="",x,a&" → "&x)))단계명을 하나의 문자열로 누적합니다.
결과접수 → 검토 → 완료

그 외 주의사항

REDUCE 함수와 LAMBDA 함수는 M365 버전에서만 제공됩니다. LAMBDA를 지원하지 않는 구버전 Excel에서는 #NAME? 오류가 발생합니다.

REDUCE 함수의 LAMBDA 계산식이 누적값과 현재 요소를 받는 매개변수 두 개로 구성되지 않으면 #VALUE! 오류가 반환될 수 있습니다.

REDUCE 함수의 초기값은 연산에 맞는 값이어야 합니다. 예를 들어 곱셈의 초기값이 0이면 이후 값을 곱해도 최종 결과는 0입니다.

REDUCE 함수는 최종값 하나만 반환합니다. SCAN 함수 는 각 단계의 중간 누적값을 모두 반환합니다.

댓글 0
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
스크랩 완료