- 최초 작성일: 2000-05-03
- 최종 수정일: 2026-09-29
- 조회수: 27 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 배열 수식 활용 예제 한 가지
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
이번 시간에 설명드릴 내용은 배열수식을 활용한 예제입니다. 이것은 지난 주에 있었던 "Excel 중급과정"의 시험문제 중 하나인데 알아두시면 여러모로 유용할 것 같아서 별도의 강좌파일로 편집하여 띄웁니다.
혹시 다음 번에 수강신청 할 예정이신 분 중에서 이걸 외워두었다가 다음에 우수한 성적으로 수료하려고 작정(?)하신 분이 있다면 지금 마음 바꿔 먹으세요(^-^). 왜냐하면 강사도 매번 바뀔뿐더러 시험문제도 매번 바뀌니까요. 하하하~
일단 사설은 이쯤에서 접어두고… 옆에 있는 "문제시트"로 가셔서 문제를 먼저 살펴보고 오시기 바랍니다.
배열 수식 활용 예제 한 가지
핵심 요약
- 상품코드와 점포명처럼 여러 조건을 동시에 만족하는 행의 수량을 배열수식으로 합산할 수 있습니다.
- 배열수식에서 조건식을 곱하면 AND 조건처럼 작동하여 두 조건을 모두 만족하는 데이터만 계산 대상으로 남깁니다.
- 콤보박스와 INDEX 등을 연결하면 조회할 상품을 바꾸어도 같은 수식 구조를 재사용할 수 있습니다.
여러분이라면 이런 문제를 어떻게 해결하시겠습니까?
많은 분들이 상품코드가 750142120501인 상품에 대해 필터링을 하여 이것을 다른 곳에 복사를 해 이것을 대상으로 Vlookup() 함수를 사용하여 소요량과 주간판매를 구하시더군요. 그런데 이렇게 하는 것은 융통성이 전혀없는 방법입니다. 즉 제품코드가 750142120501이 아닌 다른 제품의 점포별 실적을 구하려면 또다시 해당 제품에 대해서 필터링-붙여넣기를 한 다음에 또 Vlookup 함수로 작업해 주고… 이런 과정을 반복해야겠지요?
이 문제해결의 핵심은 바로 "배열수식"을 사용하는 것입니다.
참고: 원문에서 말하는 문제시트(자료와 콤보박스가 있는 예제 파일)는 이 페이지에 포함되어 있지 않으며, 수식의 셀 주소는 원본 워크시트 기준입니다.
"문제시트"에서 살펴보시면 김천점의 소요량 부분에는 아래와 같은 배열수식이 입력되어 있습니다.
{=SUM(($A$4:$A$1412=$I$3)*($C$4:$C$1412=G6)*($D$4:$D$1412))}
이 수식을 이해하시겠는지?(그동안 "이런 기능 아세요?"만 완전히 내것으로 만들어 오셨다면 충분히 고개가 끄덕여져야 하는데…)
① 먼저, A4:A1412는 상품코드이지요. 따라서 상품코드가 I3셀에 있는 것과 같은지를 비교합니다. ② 그다음에 C4:C1412는 점포명이므로 점포명이 G6셀에 있는 것과 같은 것을 비교합니다. ③ 마지막으로 D4:D1412, 즉 "소요량"의 합계를 구합니다.
여기서 한 가지 주의해야 할 사실!!!
이 세가지 조건을 곱하였지요? 배열수식에서 이렇게 *를 해 주면 이것은 AND와 같은 역할을 수행합니다. 따라서 "① 상품코드가 I3셀에 있는 코드와 같고, ② 점포명이 G6셀에 있는 것과 같은 것들만 D4:D1412 영역의 합을 구하라" 이렇게 되겠지요? 이해가 되시지요?
여기서 콤보박스를 달아서 보다더 융통성이 있도록 설정을 해 보았습니다. 콤보박스의 뒤에 있는 셀, 즉 H3과 I3셀을 콤보박스와 연결시켜서 "연결 셀"값을 숨겨놓았기 때문에 군더더기가없는 것처럼 보일 것입니다. 셀 포인터를 옮겨가서 살펴보세요. 어떤 값과 공식이 들어있는지…
콤보박스, Index 함수 등은 강좌 시간에 이미 파일에서 설명을 드렸으니까 금방 이해하실 수 있을 것입니다. 혹시 보시다가 이해가 안가는 부분이 있으면 연락을 주시고… 열심히들 하세요.
다음 시간에…
2000-05-03
정리 — 배열 수식 활용 예제 한 가지
| 구분 | 내용 |
|---|---|
| 문제 | 상품코드와 점포명 두 조건을 모두 만족하는 소요량의 합계 구하기 |
| 수식 | {=SUM(($A$4:$A$1412=$I$3)*($C$4:$C$1412=G6)*($D$4:$D$1412))} |
| 조건 1 | 상품코드가 I3셀의 코드와 같은지 비교 |
| 조건 2 | 점포명이 G6셀의 점포명과 같은지 비교 |
| 합계 대상 | D4:D1412 (소요량) |
| 핵심 | 배열수식에서 *는 AND와 같은 역할 |
| 확장 | 콤보박스로 상품을 선택하고 H3, I3셀을 연결 셀로 사용 |
자주 묻는 질문 (FAQ)
Q1. 필터링 없이 여러 조건을 만족하는 합계를 구하려면 어떻게 하나요?
각 조건을 비교한 식과 합계 대상 범위를 곱해 SUM 함수로 감싼 배열수식을 사용합니다.
Q2. 조건식을 곱하는 이유는 무엇인가요?
배열수식에서 곱하기는 AND와 같은 역할을 하므로 모든 조건이 참인 행의 값만 합계에 반영됩니다.
Q3. 다른 상품의 실적을 구하려면 어떻게 하나요?
수식이 상품코드가 들어 있는 셀을 참조하므로 그 셀의 값, 즉 콤보박스에서 선택하는 상품만 바꾸면 되고 필터링과 붙여넣기를 반복할 필요가 없습니다.
마치며
여러 조건의 합계가 필요할 때는 필터링과 복사를 반복하지 말고 조건식을 곱하는 배열수식으로 한 번에 해결해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.