5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

SCAN 함수

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

엑셀 SCAN 함수는 각 항목에 특정 계산을 순차적으로 적용하고 각 단계의 계산 결과를 반환하는 함수입니다.

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

인수 설명

=SCAN([초기값], 배열, 계산식)
인수구분설명
초기값 선택
SCAN 함수 계산에 사용할 시작값입니다.
  • 초기값을 생략하면 배열의 첫 번째 요소가 초기값으로 사용되고, 두번째 요소부터 계산이 시작됩니다.
배열 필수
각 항목을 순차적으로 돌아가며 계산할 범위 또는 배열입니다.
계산식 필수
각 항목을 순회하며 적용할 계산식입니다. 'short-form' 내장 함수를 사용하거나, LAMBDA 함수로 고급 계산을 수행할 수 있습니다.
  • 단순 합계(SUM), 평균(AVERAGE) 등 계산은 'short-form' 내장 함수로 계산할 수 있습니다.
  • LAMBDA 함수는 아래 구조로 작성합니다.
    예) =SCAN(0, 범위, LAMBDA(a,b,SUM(a,b)))
예제 시트
D2=SCAN(0,B2:B10,LAMBDA(a,b,SUM(a,b)))
A
B
C
D
E
1
날짜
입고량
누적합계
2
2025-01-01
10
10
3
2025-01-02
34
44
4
2025-01-03
16
60
5
2025-01-04
31
91
6
2025-01-05
20
111
7
2025-01-06
33
144
8
2025-01-07
20
164
9
2025-01-08
43
207
10
2025-01-09
33
240
11
입고량을 위에서부터 누적한 10부터 240까지의 결과가 D2:D10에 차례로 펼쳐집니다.

함수 개요

엑셀 SCAN 함수는 범위의 각 요소에 지정한 계산을 순차적으로 적용하고, 각 단계에서 생성된 중간 결과를 배열로 반환하는 함수입니다. 범위의 누적 합계, 누적 개수, 이동 평균 등 각 항목의 순차적인 계산이 필요할 때 유용하게 사용할 수 있습니다.

=SCAN(0,입고수량,SUM)입고 수량의 누계를 계산합니다.
=SCAN(0,성적,MAX)각 성적의 최고 점수를 반환합니다.

단순 합계(SUM), 평균(AVERAGE) 은 기본 함수로 쉽게 계산할 수 있고, LAMBDA 를 사용하여 다양한 계산을 수행할 수 있습니다. SCAN 함수는 아래 12개 기본 함수를 제공합니다.

  • SUM(합계)
  • AVERAGE(평균)
  • MEDIAN(중앙값)
  • COUNT(숫자개수)
  • COUNTA(개수)
  • MAX(최대값)
  • MIN(최소값)
  • PRODUCT(곱)
  • ARRAYTOTEXT(텍스트변환)
  • CONCAT(텍스트병합)
  • STDEV(표준편차)
  • VAR(분산)
  • MODE(최빈값)

LAMBDA 를 활용한 SCAN 함수는 아래 구조로 작성합니다.

=SCAN(0,범위,LAMBDA(a,b,FUNC(a,b)))a: 초기값, b: 현재값으로 각 항목에 순차적으로 함수를 적용합니다.
=SCAN(0,범위,LAMBDA(a,b,SUM(a,b)))범위의 누적 합계를 계산합니다. SUM과 동일합니다.
=SCAN(0,범위,LAMBDA(a,b,MIN(100,a+b)))범위의 누적 합계를 구하되, 합계가 100이 넘지 않도록 계산합니다.

REDUCE 함수 와 유사하게 배열의 모든 요소를 순회하며 계산을 수행하지만, REDUCE는 최종 결과 하나만 반환하는 반면 SCAN은 각 단계의 중간 결과를 모두 배열로 반환합니다.

SCAN 함수 간단 예제

1
일간 입고 수량의 누계 구하기

아래 그림과 같이 일자별 입고 수량이 작성되어 있을 때, 일일 누적 입고 수량의 합계는 다음과 같이 구할 수 있습니다.

=SCAN(0,B2:B10,SUM)B2:B10 범위의 누적 합계를 계산합니다.
SCAN-예제-1
범위의 누적 합계를 계산합니다.
2
셀 병합 해제 후 생긴 공백 채우기

다음과 같이 SCAN 함수를 사용하면 셀 병합 해제 후 발생하는 공백을 한 번에 채울 수 있습니다.

=SCAN("",A2:A8,LAMBDA(a,b,IF(b="",a,b)))A2:A8 범위에 공백이 있을 시, 윗 셀로 값을 채웁니다.
SCAN 함수 빈 칸 채우기
셀 병합 해제 후 발생하는 공백을 채웁니다.
3
업무 항목을 순차적으로 연결하여 문장 만들기

아래 그림과 같이 A열에 각 업무 단계가 나열되어 있을 때, SCAN 함수를 사용하면 각 업무 단계를 한 문장으로 연결할 수 있습니다.

=SCAN(,A2:A6,LAMBDA(a,b,a&"→"&b))A2:A6 범위의 각 항목을 화살표(→)로 연결합니다.
Snipaste_2025-04-01_17-43-12
각 업무 단계를 순차적으로 하나씩 연결합니다.

그 외 주의사항

초기값을 생략하면 배열의 첫 번째 요소가 초기값으로 사용되고, 계산은 두 번째 요소부터 시작됩니다.

SCAN 함수의 계산식으로 잘못된 함수를 입력하거나 LAMBDA의 인수가 잘못되면#VALUE! 오류를 반환합니다.

SCAN 함수는 배열을 반환하므로, 결과가 출력될 범위에 기존 데이터가 있으면 #SPILL! 오류를 출력합니다.

SCAN 함수는 M365 또는 2024 이후 버전에서 제공됩니다. 이전 버전에서 SCAN 함수가 사용된 파일을 실행하면 #NAME? 를 반환합니다.

댓글 0

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