[257회 라이브 공지] 이번 주 라이브는 `3/4(수) 오후 8시` 에 진행합니다! 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

배열함수와 배열수식의 기초 및 사용법 총정리 :: 엑셀 위키

엑셀 배열함수와 배열수식의 기초 동작원리 및 간단한 실전 예제를 살펴봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2020. 09. 27. 20:05
URL 복사
메모 남기기 : (22)

엑셀 배열함수/배열수식 기초 및 사용법 :: 엑셀사전

실습파일

요약

엑셀 배열함수/배열수식의 정의대표적인 사용법을 간추려서 알아봅니다.

설명

배열함수 또는 배열수식을 이해하기 위해서는 '배열'이란 무엇인지 알아야합니다.
배열과 범위의 대표적인 3가지 차이점이 궁금하시다면 오빠두엑셀의 관련 포스트를 준비해드렸으니 해당 링크를 확인하세요!

시간이 없으신 분들을 위해 간단히 설명드리자면, 여러분은 셀과 범위의 차이점을 알고 계시나요? 그렇다면 축하드립니다! 여러분은 이미 배열의 90%를 이해하셨습니다!

  • 셀 : [행과 열이 만나는 지점] 입니다.
  • 범위 : [시트상에서 보여지는 셀의 집합] 입니다.
  • 배열 : [데이터의 행렬 집합체] , 즉 [셀 안에 있는 데이터의 행렬집합체] 입니다.

간단히 예를 들자면, 범위는 '서울시' 또는 '경기도' 와 같은 지역이 되겠고, 배열은 '서울시의 공공유치원, ={강남유치원, 서초유치원, 압구정유치원, ...}' 또는 '서울시의 소방서, ={강남소방서, 서초소방서, 압구정소방서, ...}' 라고 표현할 수 있습니다.

배열함수 배열수식 VS 범위 배열
범위는 겉으로 보이는 [셀]의 집합체, 배열은 안에 포함된 [데이터]의 집합체로 이해하면 편합니다.
일반적인 함수의 경우 함수의 인수로서 '범위'가 들어가는 것이 대부분입니다. 따라서 처리영역이 범위 그 자체로 제한이 걸리게 되는데요. 예를들어, 서울시라는 범위는 강남구, 강서구 강북두 등등으로 범위에서 범위로의 이동은 편리하지만 실제로 처리하는 데이터 (예를들어 서울시의 중학교, 서울시의 병원 등)의 각 항목별로는 접근하기 어렵다는 단점이 있습니다.

반면 배열수식 또는 배열함수를 사용할경우, 함수의 인수로 '배열'이 입력되면서 배열의 각 항목 하나하나에 직접 함수를 적용할 수 있게 됩니다. 따라서 일반적인 함수보다 훨씬 간단하고 효율적으로 수식을 작성할 수 있게됩니다.

세부내용

1. 배열을 나타내는 방법

배열은 '데이터의 행렬 집합체'라고 말씀드렸습니다. 범위에서는 A,B,C 또는 1,2,3 으로 행과 열을 구분하였지만 배열에서는 콤마(",")와 세미콜론(";")으로 행과 열을 구분합니다. 하나의 배열은 중괄호("{}")안에 감싸집니다. 아래의 간단한 범위를 예로 보겠습니다.

[엑셀 시트 예제]
\    A    B    C
1  가   나   다
2  라   마   바
3  사   아   자
범위 => A1:C3
배열 => {가, 나, 다; 라, 마, 바; 사, 아, 차}
2. 배열수식을 입력하는 방법

일반 함수는 'Enter(엔터)'키로 입력하는 반면, 배열수식은 반드시 'Ctrl(컨트롤) + Shift(쉬프트) + Enter(엔터)'키로 입력을 해야합니다. 'Ctrl + Shift + Enter'로 입력을 하면 기존에 있던 함수가 중괄호("{}")안에 감싸지면서 배열수식으로 입력이 됩니다. (엑셀에서는 배열수식을 CSE함수(Ctrl+Shift+Enter)라고도 부릅니다.)

[배열수식 예제]
\    A    B
1  가   가
2  나   다
3  다   다
[상황1] C1셀에 다음과 함수를 입력한 뒤 'Enter(엔터)'로만 입력.
=SUM(IF(A1:A3<>B1:B3,1,0))
'// 결과값으로 0이 출력됩니다. 일반 함수로 입력되었으므로 IF함수의 첫번째 인수로 들어간 A1:A3, B1:B3이 배열로 반환되지 않게되고, 따라서 각 범위의 첫번째 셀인 A1과 B1만 IF함수의 인수로 입력됩니다.
[상황2] C2셀에 똑같은 함수를 입력한 뒤 'Ctrl + Shift + Enter'로 입력.
={SUM(IF(A1:A3<>B1:B3,1,0))}
=SUM({IF(A1<>B1,1,0), IF(A2<>B2,1,0), IF(A3<>B3,1,0)})
=SUM({IF(가<>가,1,0), IF(나<>다,1,0), IF(다<>다,1,0)})
=SUM({0,1,0})
=1
'//결과값으로 1이 출력됩니다. 배열수식으로 입력되면서 IF함수의 첫번째 인수로 들어간 A1:A3, B1:B3이 배열로 반환됩니다. 그리고 IF함수의 각 항목별로 출력된 값이 SUM함수의 인수로 들어가면서 최종 합계를 구하게 됩니다.
3. 기본적인 배열수식의 사용예제

아래 날짜별 매출액을 보겠습니다.
(예제파일은 상단의 이미지링크를 클릭하여 다운로드하세요)

3-A. SUMIF 함수를 사용 (일반수식)

배열함수 배열수식 사용방법

SUMIF에 들어가는 인수는 아래와 같습니다.

= SUMIF ( 참조범위, 참조, [합계범위] )
보시다시피 SUMIF 함수에는 모두 '범위'가 인수로 들어가므로 배열수식으로 이용할 수 없는데요. 만약, 날짜별로 매출액이 적혀있고 각 월별로 매출액의 합계를 구할 때 SUMIF 함수를 이용해야 한다면 어떻게 해야 할까요?
우선 매출액의 합계 기준이 '월' 이므로, MONTH 함수를 이용하여 각각의 날짜에서 '월' 값을 출력해야 합니다.

'월'값을 출력했으면 SUMIF 함수를 이용하여 월별로 매출액의 합계를 계산합니다.

= SUMIF ( D7:D17, 4, C7:C17 )

[Q&A링크] "=SUMIF ( MONTH(B7:B17), 4, C7:C17 ) 로 입력하면 안되나요?"

3-B. SUMPRODUCT 함수를 사용 (배열수식)

배열함수 배열수식 예제

SUMPRODUCT 함수SUMIF 함수, COUNTIF 함수, AVERAGEIF 함수 등을 대신하여 다양한 방법으로 응용할 수 있는 대표적인 배열수식 중 하나입니다. SUMIF 함수를 사용할 때에는 MONTH 함수를 이용하여 별도의 범위에 '월'값을 출력하여 월별합계를 계산해야했지만, SUMPRODUCT 함수를 사용할 경우 별도의 중간과정 없이 하나의 수식으로 간단하게 해결할 수 있습니다. SUMPRODUCT 함수에 관한 자세한 설명은 관련포스트를 참고하세요.

예제파일에서 사용된 배열는 아래와 같습니다.

{= SUMPRODUCT ( --(MONTH(F7:F17)=4)*G7:G17)}
'// 배열수식은 반드시 Ctrl + Shift + Enter로 입력해야 합니다.

위 배열수식을 각 단계별로 해석해보겠습니다.

  • {MONTH(F7:F17)}의 배열화 :
    {1, 1, 3, 4, 4, 4, 5, 5, 5, 6, 6}
  • 출력된 배열과 4를 비교 :
    {FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, ...}
  • -- 를 통해 논리값을 숫자화 :
    {0, 0, 0, 1, 1, 1, 0, 0, ..}
    '// => 이 단계에서 4월이 아닌 값은 '0'이 출력되면서 곱셈값이 '0'이 됩니다.
  • 각 매출액의 배열과 곱셈 :
    {0, 0, 0, 1, 1, 1, 0, 0, ... } * {40000, 74000, 57000, 47000, 67000, 68000, .. }
  • SUMPRODUCT의 최종 출력 :
    = SUMPRODUCT ( {0, 0, 0, 47000, 67000, 68000 ... } )
    = 182,000
4. 결론 :: 배열수식 이용의 장점과 단점

요약해서 말씀드리자면, 현재(2018년 기준으로) 최신버전인 엑셀 2016을 이용하고 있을 경우, 배열수식의 사용은 필수가 아닌 선택입니다. 하지만 일반함수와 다르게 중간과정없이 수식을 입력할 수 있게되므로 여러방면에서 유용하게 이용할 수 있습니다.

■ 배열수식을 이용하는 것의 장점

  • 배열수식을 이용하는 것은 (일반적으로) 적은양의 메모리를 사용하므로 계산속도가 빨라집니다.
  • 중간과정 없이 수식을 입력할 수 있으므로 시트가 간결해지고 효율적으로 이용할 수 있게됩니다.
  • 배열수식은 일반적인 함수로는 수행할 수 없는 (하지만 최신버전의 엑셀에서는 대부분 수행가능한) 계산을 도와줍니다.
  • 사견이지만, 배열수식은 대게 엑셀 숙련자만 이해할 수 있는 내용이므로 시트보호를 하지 않더라도 일반 초보자의 경우 시트내용을 변경하지 않도록 하는 강제시트보호 기능이 있습니다.

■ 배열수식을 이용하는 것의 단점

  • 배열수식은 전체 행 또는 열(예: A:A, B:B, 1:1 등) 을 참조범위로 이용할 수 없습니다.
  • 배열수식은 대게 작성한 사람을 제외한 다른 사람이 함수를 분석하기 어려운 경향이 있으므로 검토에 어려움을 겪을 수 있습니다.
  • 배열수식은 대게 일반함수보다 적은양의 메모리를 사용하지만, (적은 경우로) 많은 양의 배열이 동시에 적용된 배열수식을 넓은 범위에 걸쳐 적용할 경우 일반함수보다 느리게 동작할 수도 있습니다.

다른 주의사항

    1. SUMIF 함수의 첫번째 인수는 '참조범위', 즉 [범위]형태로만 입력가능합니다. 만약 MONTH(B7:B17) 를 Ctrl + Shift + Enter키를 통해 배열수식형태로 입력하게되면 [범위]가 아닌 [배열] 형태로 입력되므로 엑셀에서 잘못된 수식이라는 오류메세지를 출력합니다.
      배열함수 배열수식 오류
댓글 22
4.9 (14개 평가)
컴공조아
컴공조아 2020.02.14 14:33
엑셀2016 쓰는데 컨트롤 쉬프트 엔터가 안되네요. 아무것도 안먹혀요. 근데 컨트롤 쉬프트는 잘만 되는데 엔터만 섞으니 안되네요. 엑셀이 잘못된건가싶어 웹용 엑셀365로 했는데도 안되네요. 뭐가 문제인걸까요?
오빠두엑셀
오빠두엑셀 작성자 2020.02.15 05:15
안녕하세요~^-^ 단축키 실행이 안되신다면 다른 외부프로그램과의 충돌일 가능성이 높습니다. 다른 프로그램에서 Ctrl + Shift 관련 단축키를 사용중인지 확인해보시겠어요? 감사합니다!^^*
폭시*
폭시* 2021.03.03 02:49
제 경우를 말씀드리면, 혹시 컴퓨터에 한글이 설치되어 있다면 자판입력기가 '한컴입력기'는 아닌지 확인해보세요. '한컴입력기'는 <ctrl>+<shift>+<enter>를 눌러도 반응하지 않지만, 'Microsoft 입력기'는 정상작동되었습니다.
차야카
차야카 2022.06.16 11:03
감사합니다 ㅜㅜㅜㅜㅜ microsoft 입력기로 바꿨더니 작동하네요 ㅜㅜㅜㅜㅜㅜㅜ
치킨콜라
치킨콜라 2020.02.24 19:27
4월 합계 구하는 부분 결과 설명이 잘못 됐네요. 한 칸씩 밀린것 같습니다.
오빠두엑셀
오빠두엑셀 작성자 2020.02.25 13:15
앗~ 한칸씩 밀려있었네요!^^ 수정했습니다. 알려주셔서 감사드립니다!
오리온
오리온 2020.04.14 09:48
자세한 설명 감사드립니다. 늘 헷갈리고 했는데, 조금더 공부를 해야겠지만, 감사합니다.
엑린이
엑린이 2020.04.24 21:47
감사합니다
Fainter
Fainter 2020.10.28 09:28
읽어봤지만 배열은 어렵네요. 조금 더 자세히 봐야겠네요 ^^ 친절한 설명 감사드립니다 .. 근데 무지 유용합니다 ㅎㅎ
감사하모니카
감사하모니카 2021.09.14 14:51
3-B. SUMPRODUCT 함수를 사용 (배열수식) 수식 {=SUMPRODUCT(--(MONTH(F7:F17)=4)*(G7:G17)} 알려주셨는데 호기심에 --를 안 넣고, 컨트롤+쉬프트+엔터도 안 해봤는데 정상적인 값이 계산됩니다. =SUMPRODUCT((MONTH(F7:F17)=4)*G7:G17) 이렇게요 사용하는 엑셀은 2013입니다. 혹시 왜 그런 것일까요?
오빠두엑셀
오빠두엑셀 작성자 2021.09.14 18:44
감사하모니카님 안녕하세요. 헛 제가 수식 설명을 잘못 적어드렷습니다.^^; 잘못된 부분 확인해주셔서 감사드립니다. 네 말씀하신 게 맞습니다. SUMPRODUCT 함수는 배열로 입력하지 않아도, 함수 인수로 배열을 받을 수 있기 때문에 그냥 Enter로만 입력하셔도 잘 동작합니다.
질문드려요
질문드려요 2022.02.10 10:07
[상황1] C1셀에 다음과 함수를 입력한 뒤 'Enter(엔터)'로만 입력. =SUM(IF(A1:A3<>B1:B3,1,0)) '// 결과값으로 0이 출력됩니다. 
  • 여기서 저는 왜 1이 출력될까요?...말씀대로라면, A1 , B1 만 잡으니 0이 나와야할텐데요
오빠두엑셀
오빠두엑셀 작성자 2022.02.11 02:18
안녕하세요? 엑셀 2021/M365 버전을 사용중이실 경우, ENTER로만 입력해도 자동으로 배열수식(=동적배열수식)으로 입력되어 1이 반환됩니다.^^ 사용중인 버전을 확인해보시겠어요? 감사합니다.
고구마
고구마 2022.07.04 21:03
배열이 좀 헷갈렸는데, 도움이 되었습니다.
독고진
독고진 2022.10.02 13:29
단어 개념이 헷갈려서 질문합니다. 1. "배열수식"이란 배열을 인수로 받아들이는 함수를 포함한 수식을 말하는 것이지요? 배열 자체는 아니지요? 2. Ctrl-Shift-Enter 치면, 엑셀이 기존 수식을 {=SUM(...)} 이렇게 표시해줍니다.    이것을 "배열수식으로 입력"이라고 하셨는데요,   범위 ( A1:B10 ) 인수가 있을 때, 이것을 내부적으로 배열로 입력해 준다는 뜻인가요?   우리가 배열수식을 만들 때도, 우리가 입력할 수 있는 것은 "범위" 뿐이죠?     "배열"을 직접 타이핑해서,  함수 인수로 넣을 수는 없죠? 3. "SUMIF 함수의 첫번째 인수는 '참조범위', [범위]형태로만 입력가능하므로 "고 설명해 주셨는데요,   배열수식을 사용할 수 있는 함수와 SUMIF처럼 사용할 수 없는 함수를 구분할 수 있는 자료뿐이가요? SUMIF(범위,..), SUM(범위), SUMPRODUCT(범위) 모두, 사용할 때 인수의 모양은 동일합니다.   
오빠두엑셀
오빠두엑셀 작성자 2022.10.03 22:54
안녕하세요. 1. 네 맞습니다.^^ 수식을 말합니다. 2. 배열을 직접 타이핑할 수 있지만, 함수안에 이중으로 사용되는 배열일 경우에는 직접 타이핑할 수 없습니다. 이중 배열을 직접 타이핑 할 경우 #CALC! 오류가 발생합니다. 3. SUMIF 함수는 Range로 나오며, Sumproduct는 Array로 표시됩니다.^^ 엑셀에 함수를 입력 후, 인수 설명 한번 확인해보세요 (오빠두엑셀 홈페이지에서 인수 설명은 이해를 쉽게 돕기 위해 모두 범위로 작성하였습니다.) 제시해드린 답변이 문제 해결에 도움이 되셨길 바랍니다. 감사합니다.
독고진
독고진 2022.10.02 16:02
여기 게시판은 한번 등록되면 수정/삭제가 안되나요? 엄청 졸면서 질문을 작성했더니 글이 이상합니다. 이해되는만큼 답변해 주시면 감사하겠습니다...