엑셀의 경우는 Microsoft 365 버전이상에서만 Reduce와 Scan 함수를 사용할 수 있는데,
구글 스프레드시트에서는 이런 최신 함수를 누구나 사용할 수 있으니 좋습니다.
1. 구글 스프레드시트의 Reduce 함수
가. 구문
엑셀에서는
=REDUCE([initial_value], array, lambda(accumulator, value, body))
라고 되어 있는데,
구글 스프레드시트는 문법은
REDUCE(초기_값, 배열_또는_범위, LAMBDA)
라고 되어 있는데
사용 예를 보면
REDUCE(5, A1:A3, LAMBDA(accumulator, current_value, accumulator+current_value))
라고 되어 있어 Lambda 함수의 인수에 대한 표시가 이해하기 쉽습니다.
accumulator는 누산기(누계)로서 초기값은 Reduce함수의 첫 번째 인수인 5가 되며,
current_value는 현재값으로서 Reduce함수의 두 번째 인수인 A1:A3를 하나씩 이동하면서 처리하므로 처리할 당시의 값이 됩니다.
accumulator+current_value는 수식의 예로서, 누산기에 현재값을 반복적으로 더해가는 것입니다.
나. 사용 예
예를 들어 A1셀 값이 3, A2셀 값이 5, A3셀 값이 7인 경우
C1셀에
=REDUCE(5,A1:A3,lambda(accumulator,current_value,accumulator+current_value))
라고 입력하고 엔터 키를 누르면 20이 구해집니다.
20이 구해지는 과정을 설명하면 아래와 같습니다.
초기 값은 5이고,
current_value는 처음에는 3이 되므로
accumulator+current_value = 5 + 3 = 8이 되고,
8이 accumulator로 전달됩니다.
그리고, 두 번째 current_value가 5이므로
8 + 5 = 13이 되고,
다시 13이 accumulator로 전달되고,
7이 current_value가 되므로
13 + 7 = 20이 나오는 것입니다.
위 수식에서 Lambda함수의 첫 번째 인수인 accumulator는 a로 바꿀 수 있고,
current_value는 c로 간단히 바꿔 사용할 수 있습니다.
2. 구글 스프레드시트의 Scan 함수
Scan함수는 Reduce함수와 구문은 같은데,
계산하는 단계별 값을 보여주는 함수입니다.
위 수식 =REDUCE(5,A1:A3,lambda(accumulator,current_value,accumulator+current_value))
에서 REDUCE를 scan으로 수정하고 엔터키를 누르면 인수를 누르라고 하는데, 다시 엔터키를 누르면
아래와 같이 단계별 값인 8, 13,20이 구해집니다.
따라서, Reduce함수의 동작 원리를 알고자 할 때 Scan 함수를 사용하면 유용합니다.
'구글 스프레드시트' 카테고리의 다른 글
구글 스프레드시트의 Split(엑셀의 TextSplit) 함수 (0) | 2024.09.23 |
---|---|
구글 스프레드시트의 호환성 - Reduce, Scan 함수 (0) | 2024.09.12 |
구글 스프레드 시트 호환성(2) - Filter + Sort (2) | 2024.08.28 |
구글 스프레드시트 - 셀 값이 바뀌었을 때 다른 셀 값 지우기 (0) | 2024.08.27 |
구글 스프레드시트 호환성 - Index + Aggregate(2) (0) | 2024.08.26 |