SUMIFS 합계가 안 맞을 때: 조건과 범위를 먼저 확인하세요
“영업팀의 완료 금액만 더했는데 예상과 다릅니다.” SUMIFS를 점검할 때는 수식부터 바꾸기보다 어떤 행이 조건에 들어가야 하는지를 먼저 정하세요. 조건 범위·합계 범위·원본의 공백·숫자 유형을 차례로 확인하면 원인을 좁힐 수 있습니다.
원인: 두 조건은 같은 행에서 함께 맞아야 합니다
SUMIFS는 여러 조건을 모두 만족하는 행의 값을 더하는 함수입니다. 합계 범위가 첫 번째 인수이고, 이후 조건 범위와 조건을 짝으로 지정합니다. 조건 하나를 쓰는 SUMIF와 인수 순서가 다릅니다. Microsoft SUMIFS 설명, SUMIF 설명
재현: 팀과 처리 상태가 있는 합성 주문표
합성 주문표를 Orders 시트 A1:D7에 가져온 예시입니다. 실제 고객 자료가 아니며 마지막에서 두 번째 데이터의 team에는 끝 스페이스가 있습니다.
record_id,team,status,amount
R01,영업,완료,12000
R02,영업,진행,5000
R03,지원,완료,7000
R04,영업,완료,3000
R05,영업 ,완료,2000
R06,영업,완료,1000
R05의 영업 에는 끝에 U+0020 스페이스가 하나 있습니다. 설명에서 영업␠로 보여 줄 수 있지만 실제 값에 ␠ 문자를 넣은 것은 아닙니다. CSV는 셀 자료형을 보관하지 않으므로 Excel에서 amount 열이 숫자로 읽혔는지도 확인하세요.
해결 1: 합계 범위부터 지정하고 두 조건을 짝짓기
=SUMIFS(Orders!$D$2:$D$7,Orders!$B$2:$B$7,"영업",Orders!$C$2:$C$7,"완료")
이 예시의 의도는 팀이 ‘영업’이고 상태가 ‘완료’인 같은 행입니다. R01·R04·R06의 금액 12,000원·3,000원·1,000원을 합하면 16,000원입니다. R02는 상태가 다르고, R03은 팀이 다르며, R05는 팀 원문 끝에 스페이스가 있습니다. ‘영업 또는 완료’처럼 둘 중 하나만 만족하면 된다는 조건과 구별하세요.
16,000원은 원문 조건과 정수 합산으로 확인한 기대값입니다. 이 글에서 실제 Excel 수식을 실행한 것은 아닙니다. 사용 환경에서 수식을 실행하고 원본 행과 대조하세요.
해결 2: 범위의 크기와 시작·끝 행을 함께 확인
SUMIFS의 합계 범위와 각 조건 범위는 행·열 개수가 같아야 합니다. 하나만 D2:D6으로 줄이면 조건 범위 B2:B7과 크기가 달라집니다. Microsoft는 이런 범위 불일치를 #VALUE! 원인으로 안내합니다. 공식 오류 해결
모든 범위를 2~6행으로 똑같이 줄여도 올바른 범위는 아닙니다. R06이 빠져 합계가 15,000원이 됩니다. 크기가 같은지와 필요한 행을 모두 포함하는지는 별개입니다. 시작 행도 같은 자료끼리 대응하는지 살펴보세요. 수식을 복사한다면 고정해야 하는 범위에 $가 유지됐는지 확인합니다.
해결 3: 조건의 원문 공백과 와일드카드 확인
R05를 영업팀에 포함해야 하는지는 업무 규칙으로 결정합니다. 비교용 사본에서 앞뒤 U+0020을 제거하면 이 예제의 해당 합계는 18,000원이 되지만, 그 값이 자동으로 정답이 되는 것은 아닙니다. 원본을 일괄 정리하기 전에 팀 이름의 공백이 오류인지 확인하세요.
조건에 *나 ?를 넣으면 와일드카드가 될 수 있습니다. 문자 별표 자체를 찾을 때의 ~*와 구별해야 합니다. 영업*로 바꿔 숫자가 맞았다는 이유만으로 끝내면 ‘영업지원’ 같은 다른 이름까지 포함할 수 있습니다. Microsoft 와일드카드 설명
해결 4: 빈 금액과 문자로 저장된 숫자는 따로 확인
빈 금액 변형 예제는 R06의 amount를 비워 둔 파일입니다. 이때 같은 원문 조건에서 확인된 금액은 15,000원이고, 금액 미확인 행이 하나입니다. 빈 금액을 0원이라고 단정하거나 전체 금액이 확정됐다고 쓰면 안 됩니다.
금액이 보이는데 합계에서 빠진다면 해당 셀의 =ISNUMBER(D2)와 =ISTEXT(D2) 같은 보조 수식으로 실제 자료형을 확인할 수 있습니다. 화면 서식만 숫자로 바꿨다는 사실이 원래 텍스트를 숫자로 변환했다는 증거는 아닙니다. 통화 기호·천 단위 구분·소수점·공백을 확인하고, 변환이 필요한지 판단한 뒤 사본에서 전후 합계를 대조하세요. 이 글에서는 Excel의 숫자/텍스트 셀 비교 실험을 수행하지 않았습니다.
CSV 도우미에서 확인할 것과 Excel에서 확인할 것
- CSV 검사기는 CSV의 열 개수·빈 값 같은 원문 구조를 확인하는 데 사용합니다.
team을 코드 열로 선택하면 이 합성 예제의 R05 앞뒤 스페이스 위험도 확인할 수 있습니다. 이 기능은 선택 열의 U+0020을 대상으로 하며 값을 바꾸지 않습니다. - 검사기는 SUMIFS 수식, Excel 셀의 숫자 유형, 실제 조건 범위,
$고정, 새로 추가한 행의 수식 포함 여부를 판정하지 않습니다. 이 항목은 Excel에서 확인해야 합니다. - 중복 제거로 합계가 줄었다면 무엇을 중복으로 정의했는지 다시 확인하세요. 같은 팀·상태라는 이유만으로 정상 주문을 지워서는 안 됩니다.
원문 행과 합계 직접 확인
다음 코드는 Python의 정확한 문자열 비교와 정수 합산으로 이 예제의 행을 확인합니다. SUMIFS 구현이나 Excel의 자료형 변환 규칙을 재현하는 코드는 아닙니다.
import csv
with open('guide-10-orders.csv', encoding='utf-8-sig', newline='') as f:
rows = list(csv.DictReader(f, strict=True))
matched = [r for r in rows if r['team'] == '영업' and r['status'] == '완료']
print([r['record_id'] for r in matched])
print(sum(int(r['amount']) for r in matched))
출력:
['R01', 'R04', 'R06']
16000
한계
합성 파일의 조건별 행·정수 합계·끝 스페이스 비교·마지막 행 누락·빈 금액을 로컬 코드로 확인했습니다. 실제 Excel 함수 계산·가져오기·셀 자료형·화면은 검증하지 않았습니다. 날짜 조건, 로캘, 오류 셀·논리값, 외부 통합문서, 대용량 성능은 범위 밖입니다. 표본의 16,000원·18,000원·15,000원을 다른 업무 파일의 정답처럼 적용하지 마세요.
검토일: 2026-10-19. 공식 문서와 합성 원문·본문 Python 출력을 대조했습니다.
AI 보조 작성: AI로 원고와 합성 자료를 작성하고 로컬 실행 결과를 확인했습니다. 실제 고객 자료는 사용하지 않았습니다.