엑셀 재고수량 자동 계산, 입고·출고 장부에서 현재고가 안 맞을 때 보는 SUMIFS 기본식
엑셀 재고수량 자동 계산을 하다 보면 입고는 분명히 적었고 출고도 적었는데, 월말 현재고가 손계산과 다르게 나오는 경우가 많습니다. 특히 초보자 입장에서는 입고 합계, 출고 합계, 현재고를 각각 어디에 수식으로 넣어야 하는지부터 헷갈립니다.
이번 글에서는 재고관리 파일에서 실제로 자주 만나는 구조를 기준으로, SUMIFS 함수만으로 품목별 입고수량과 출고수량을 나누어 계산하는 방법을 차근차근 정리해 보겠습니다. 어려운 기능 없이, 보고서에 바로 붙여 넣을 수 있는 기본 수식 중심으로 설명하겠습니다.

입고와 출고가 한 표에 섞여 있으면 현재고가 헷갈립니다
실무 재고 장부는 보통 입고표와 출고표가 따로 있기도 하지만, 작은 회사나 팀 내부 파일에서는 한 시트에 입고와 출고를 같이 적는 경우가 많습니다. 이때 핵심은 구분 열에 입고인지 출고인지 정확히 적고, 수량 열은 항상 양수로 입력하는 것입니다.
예를 들어 아래와 같은 재고이동 장부가 있다고 해보겠습니다. 시트의 A3:F3은 제목 행이고, 실제 데이터는 A4:F11 범위에 입력되어 있습니다.
| 열 | 항목 | 입력 예시 | 설명 |
|---|---|---|---|
| A열 | 일자 | 2026-07-01 | 입고 또는 출고가 발생한 날짜 |
| B열 | 구분 | 입고 / 출고 | 재고가 늘었는지 줄었는지 구분 |
| C열 | 품목코드 | P-1001 | 품목을 구분하는 코드 |
| D열 | 품목명 | 멀티탭 3구 | 사람이 보기 쉬운 이름 |
| E열 | 수량 | 20 | 입고도 출고도 양수로 입력 |
| F열 | 비고 | 창고입고 | 메모 |
예시 데이터는 이렇게 생각하면 됩니다.
| 일자 | 구분 | 품목코드 | 품목명 | 수량 | 비고 |
|---|---|---|---|---|---|
| 2026-07-01 | 입고 | P-1001 | 멀티탭 3구 | 50 | 초도입고 |
| 2026-07-02 | 출고 | P-1001 | 멀티탭 3구 | 8 | 주문출고 |
| 2026-07-03 | 입고 | P-1002 | USB 케이블 | 100 | 매입 |
| 2026-07-05 | 출고 | P-1002 | USB 케이블 | 25 | 출고 |
| 2026-07-06 | 입고 | P-1001 | 멀티탭 3구 | 30 | 추가입고 |
| 2026-07-08 | 출고 | P-1003 | HDMI 케이블 | 12 | 출고 |
여기서 초보자가 가장 많이 헷갈리는 부분은 수량 열입니다. 출고 수량을 -8처럼 음수로 적는 방식도 있지만, 입고·출고가 구분 열로 이미 나뉘어 있다면 수량은 8처럼 양수로 적는 편이 보고서 만들기 쉽습니다.
기준월 셀과 결과표 위치를 먼저 정해두면 수식이 쉬워집니다
이번 예제에서는 같은 시트 오른쪽에 월별 재고 요약표를 만들겠습니다. H1 셀에는 기준월이라고 입력하고, I1 셀에는 2026-07-01을 입력합니다. I1은 7월 전체를 뜻하는 기준 날짜입니다.
그리고 H3:L3에 결과표 제목을 입력합니다. H열은 품목코드, I열은 품목명, J열은 입고합계, K열은 출고합계, L열은 현재고입니다. 실제 품목코드는 H4:H6에 입력한다고 가정하겠습니다.
| 셀 | 내용 | 역할 |
|---|---|---|
| I1 | 2026-07-01 | 기준월 조건 셀 |
| H4:H6 | P-1001, P-1002, P-1003 | 집계할 품목코드 |
| J4:J6 | 입고합계 | 품목별 월 입고수량 |
| K4:K6 | 출고합계 | 품목별 월 출고수량 |
| L4:L6 | 현재고 | 입고합계 - 출고합계 |
I1 셀에 입력한 날짜가 2026-07-01이라고 해서 7월 1일 하루만 보겠다는 뜻은 아닙니다. 수식에서 이 날짜를 기준으로 7월 1일부터 7월 말일까지 범위를 만들어 줄 것입니다.
입고합계는 SUMIFS로 품목코드, 구분, 날짜를 같이 봅니다
SUMIFS는 조건이 여러 개인 합계를 구할 때 쓰는 함수입니다. 말로 풀면 “수량 열을 더하되, 품목코드가 H4와 같고, 구분이 입고이고, 날짜가 기준월 안에 있는 행만 더해줘”라는 뜻입니다.
먼저 J4 셀에 아래 수식을 입력합니다. 입력 후 Enter를 누르고, J4 셀의 오른쪽 아래 작은 점을 아래로 끌어 J6까지 복사합니다.
=SUMIFS($E$4:$E$11,$C$4:$C$11,$H4,$B$4:$B$11,"입고",$A$4:$A$11,">="&$I$1,$A$4:$A$11,"<="&EOMONTH($I$1,0))여기서 $E$4:$E$11은 더할 수량 범위입니다. $C$4:$C$11은 품목코드가 있는 범위이고, $H4는 결과표에서 찾을 품목코드입니다.
$ 표시가 붙은 이유도 중요합니다. 수식을 아래로 복사해도 원본 장부 범위인 A4:E11은 움직이면 안 되기 때문에 $로 고정합니다. 반대로 H4는 아래로 내려가면서 H5, H6을 봐야 하므로 행 번호 앞에는 $를 붙이지 않았습니다.
출고합계는 같은 수식에서 입고만 출고로 바꾸면 됩니다
이제 K4 셀에는 출고합계를 계산합니다. 입고합계 수식과 거의 같고, 조건 글자만 입고에서 출고로 바뀝니다.
=SUMIFS($E$4:$E$11,$C$4:$C$11,$H4,$B$4:$B$11,"출고",$A$4:$A$11,">="&$I$1,$A$4:$A$11,"<="&EOMONTH($I$1,0))K4에 입력한 뒤 K6까지 복사합니다. 이 방식으로 하면 P-1001의 출고만 따로, P-1002의 출고만 따로 계산됩니다.
현재고는 어렵게 생각하지 않아도 됩니다. L4 셀에 입고합계에서 출고합계를 빼는 수식을 넣으면 됩니다.
=J4-K4이 수식도 L6까지 복사합니다. 이렇게 하면 품목별 7월 입고, 7월 출고, 7월 현재고가 한 줄로 정리됩니다.
SUMIFS가 0으로 나올 때는 수식보다 입력값을 먼저 봐야 합니다
초보자들이 가장 많이 검색하는 증상이 바로 SUMIFS 0 나옴입니다. 수식은 맞는 것 같은데 결과가 0이면, 함수보다 원본 데이터가 엑셀이 알아볼 수 있는 형태인지 먼저 확인해야 합니다.
첫 번째는 날짜입니다. A열 날짜가 왼쪽 정렬되어 있거나, 셀을 클릭했을 때 앞에 작은 따옴표가 보이면 날짜가 아니라 글자로 들어간 상태일 수 있습니다. 이 경우에는 같은 2026-07-01처럼 보여도 SUMIFS의 날짜 조건에 걸리지 않습니다.
두 번째는 구분 열의 공백입니다. B열에 입고라고 보여도 실제로는 “입고 ”처럼 뒤에 공백이 붙어 있으면 수식의 “입고” 조건과 다르게 인식됩니다. 구분 열을 클릭해 수식 입력줄에서 공백이 있는지 확인해 보세요.
세 번째는 품목코드입니다. 결과표 H열의 P-1001과 원본 C열의 P-1001이 정확히 같아야 합니다. 특히 거래처나 물류팀에서 받은 파일은 코드 앞뒤에 공백이 붙어 있는 경우가 많습니다.
| 증상 | 확인할 곳 | 해결 힌트 |
|---|---|---|
| 결과가 0 | A열 날짜 | 진짜 날짜인지 확인 |
| 입고만 안 잡힘 | B열 구분 | 입고 뒤 공백 확인 |
| 특정 품목만 안 잡힘 | C열, H열 코드 | 코드 철자와 공백 확인 |
| 복사 후 값이 이상함 | 수식 범위 | $ 고정 여부 확인 |
월 조건이 필요 없으면 더 쉬운 SUMIFS로 시작해도 됩니다
처음 연습할 때는 날짜 조건을 빼고 전체 기간의 입고합계부터 구해도 좋습니다. 이때 J4 셀에는 아래처럼 간단하게 입력할 수 있습니다.
=SUMIFS($E$4:$E$11,$C$4:$C$11,$H4,$B$4:$B$11,"입고")출고합계도 마찬가지입니다.
=SUMIFS($E$4:$E$11,$C$4:$C$11,$H4,$B$4:$B$11,"출고")이 수식은 “날짜와 상관없이 품목별 전체 입고, 전체 출고를 보고 싶을 때” 적합합니다. 일단 이 수식으로 결과가 잘 나오는지 확인한 다음, 기준월 조건을 추가하면 실수 지점을 찾기 훨씬 쉽습니다.
품목명이 비어 있으면 VLOOKUP으로 같이 가져올 수 있습니다
결과표에서 H열에 품목코드만 입력하고 I열 품목명을 자동으로 채우고 싶다면 VLOOKUP을 사용할 수 있습니다. 원본 장부의 C열에 품목코드, D열에 품목명이 있으므로 I4 셀에 아래 수식을 입력합니다.
=VLOOKUP(H4,$C$4:$D$11,2,FALSE)뜻은 간단합니다. H4의 품목코드를 C4:D11 범위에서 찾고, 그 범위의 두 번째 열인 품목명을 가져오라는 의미입니다. 마지막의 FALSE는 정확히 같은 코드만 찾겠다는 뜻입니다.
만약 품목코드가 원본 장부에 없으면 #N/A 오류가 나올 수 있습니다. 보고서에서 오류 표시가 부담스럽다면 아래처럼 IFERROR를 같이 쓰면 됩니다.
=IFERROR(VLOOKUP(H4,$C$4:$D$11,2,FALSE),"코드확인")이 수식은 품목명을 못 찾았을 때 빈칸 대신 “코드확인”이라고 표시합니다. 재고표를 검토할 때 누락 코드를 찾는 용도로도 꽤 유용합니다.
재고표를 복사해서 쓸 때는 이 순서로 확인하면 덜 틀립니다
월말 재고 보고서를 만들 때는 수식을 한 번에 완성하려고 하기보다, 작은 범위에서 맞는지 확인하는 편이 안전합니다. 먼저 원본 장부에서 P-1001만 눈으로 골라 입고수량과 출고수량을 손계산해 봅니다.
그다음 J4, K4 결과와 손계산 결과가 같은지 비교합니다. 첫 번째 품목이 맞으면 수식 구조는 대체로 맞는 것입니다. 이후 아래 행으로 복사했을 때만 이상하다면, 원본 데이터보다 복사 과정에서 범위 고정이 풀렸는지 보는 것이 빠릅니다.
또 하나의 팁은 기준월 I1 셀의 표시 형식입니다. I1에는 실제 날짜인 2026-07-01을 넣고, 셀 서식만 yyyy-mm처럼 보이게 바꾸면 보고서가 깔끔해집니다. 보기에는 2026-07만 보여도 수식은 정확한 날짜로 계산할 수 있습니다.
재고수량 자동 계산은 복잡한 기능보다 표 구조가 더 중요합니다. 입고와 출고를 한 열에서 구분하고, 수량은 양수로 통일하고, 결과표에서는 SUMIFS로 조건을 하나씩 걸어주면 월말 재고표가 훨씬 안정적으로 맞아집니다.