작성일 2026.10.15수정일 2026.10.10작성 SOPBiz 운영자

일치하지 않는 행을 수량 차이보다 먼저 찾기

발주표의 세 품목을 납품표의 세 품목과 줄 순서대로 비교하면 정렬이 달라진 순간 다른 물건끼리 대조하게 됩니다. 발주 번호와 품목 코드로 연결해야 합니다. 그러나 키가 빠지거나 같은 키가 여러 행이면 조회 결과가 숫자를 반환해도 어느 납품을 가져왔는지 불명확합니다. 이 글은 두 파일의 대응 관계를 먼저 확인하는 대조표를 만듭니다.

여기서는 발주 한 건에서 같은 품목이 한 행에만 존재하고, 비교용 납품표도 발주·품목별 한 행으로 준비된 상태를 가정합니다. 분할 납품은 먼저 납품 사건 ID별 원본을 확인해 비교 대상 합계를 별도로 준비해야 합니다. 같은 키 두 행을 이 표에서 무조건 더하지 않습니다. 누적 미입고를 추적하는 문제와 파일 간 일치 행을 찾는 문제를 구분합니다.

대조 기준을 두 열로 고정하기

품목 P-001을 여러 번 발주할 수 있으므로 품목 코드만 키로 쓰지 않습니다. 발주 번호 O-101과 품목 코드 P-001의 조합이 이 예제의 대응 기준입니다. 양쪽 파일에서 두 값의 문자와 의미가 같아야 합니다. 납품표가 거래처 코드만 제공하면 먼저 승인된 대응표를 마련하고 내부 코드로 연결해야 합니다.

파일 이름, 내보낸 시각, 비교 범위를 기록합니다. 발주표가 10월 12일까지인데 납품표가 10월 13일까지라면 신규 납품이 추가로 나타날 수 있습니다. 두 파일의 행 수가 같다는 사실은 같은 내용을 담았다는 증거가 아닙니다. 파일 범위와 기준 시점을 확정해야 미일치 행의 원인을 좁힐 수 있습니다.

원본 키는 텍스트로 보존하고 공백·앞자리 0 처리 규칙을 맞춥니다. 대조용 키를 만들기 위해 원본 코드를 조용히 바꾸지 않습니다. 변환한 열이 있다면 원문, 변환 규칙, 변환 후 코드가 남아 있어야 합니다. 조합 문자열을 쓰는 경우 구분자 충돌이 없도록 각 열의 허용 형식도 정합니다.

발주표와 납품표를 품목 키로 대조해 미일치 행 찾기의 설명용 사례표
제공 CSV의 설명용 사례를 표로 렌더링했습니다. 가상 데이터입니다. 실제 현장 성과·기록을 나타내지 않습니다.

8개의 대응 결과를 차이 상태로 읽기

O-101/P-001은 발주 10개, 납품 8개라 수량 미일치이며 납품-발주 차이는 -2입니다. O-101/P-002는 5와 5가 일치합니다. O-102/P-001은 발주표에만 있어 납품 수량과 차이값을 비워 둡니다. 납품 미조회는 확인된 납품 0과 다릅니다.

O-103/P-003은 납품표에만 있습니다. 발주가 취소됐는지, 발주 파일 범위에서 빠졌는지 원본으로 확인합니다. O-104/P-004는 납품 쪽 2행이라 중복 키 확인으로 보류합니다. 발주 쪽 중복인 O-105도 마찬가지입니다. O-106은 양쪽에 있으나 납품 수량이 비었고, O-107은 납품 0이 실제 숫자로 기재된 정상 대응이므로 차이 -3을 계산할 수 있습니다.

발주 번호 품목 코드 발주 키 수 납품 키 수 발주 수량 납품 수량 차이(납품-발주) 판정
O-101 P-001 1 1 10 8 -2 수량 미일치
O-101 P-002 1 1 5 5 0 일치
O-102 P-001 1 0 4 발주만 존재
O-103 P-003 0 1 6 납품만 존재
O-104 P-004 1 2 7 납품 중복 키
O-105 P-005 2 1 9 발주 중복 키
O-106 P-006 1 1 2 납품 수량 확인
O-107 P-007 1 1 3 0 -3 수량 미일치

이 글의 기록 양식 내려받기

발주표와 납품표를 품목 키로 대조해 미일치 행 찾기 — CSV 양식

UTF-8 BOM이 있는 기록용 CSV입니다. 계산식·드롭다운·서식은 들어 있지 않습니다. 첫 행 8열, 설명용 데이터 8레코드가 있습니다.

8개의 가상 대조 결과입니다. 키 수는 원본 파일에서 별도로 확인해야 하며 CSV는 두 파일을 자동으로 읽는 도구가 아닙니다. 빈 수량과 미조회의 차이값은 비워 두었습니다.

CSV 구조와 식별자 점검 도구에서 사본의 열 수와 문자열을 확인할 수 있습니다.

키 개수부터 세고 그다음 수량 조회하기

각 조합에 대해 발주표의 키 개수와 납품표의 키 개수를 따로 셉니다. 각각 1개면 수량 검사를 진행하고, 0개면 해당 쪽 미조회, 2개 이상이면 해당 쪽 중복으로 분류합니다. COUNTIFS를 쓰면 두 조건을 함께 셀 수 있으나 코드가 와일드카드를 포함하거나 대소문자를 구분해야 하는 경우는 문자 일치 방법을 추가로 검토합니다.

조회 수식은 중복 검사 다음에 적용합니다. VLOOKUP이 첫 번째 일치만 반환하는 상황에서 납품 두 행 중 첫 수량을 가져왔다고 정확한 대응이 되는 것은 아닙니다. 어느 행을 채택할지 결정하기 전에는 차이값도 계산하지 않습니다. 표에는 중복이 있다는 상태와 원본 행 ID를 남겨 조사 대상이 보이도록 합니다.

수량 차이의 부호는 납품-발주로 고정했습니다. -2는 납품표의 숫자가 2 작다는 뜻이지 실제 물건 2개가 사라졌다는 확정 원인이 아닙니다. 날짜 범위, 포장 단위, 취소, 보류 물량을 확인해야 합니다. 같은 숫자의 일치도 품목·발주·단위가 맞는 상태에서만 의미가 있습니다.

정렬과 연결을 섞지 않는 방법

두 파일을 나란히 놓고 각 행을 직접 비교하는 작업은 정렬 키가 완전히 같고 누락·중복이 없을 때만 사용할 수 있습니다. 이 조건을 아직 확인하지 않았다면 같은 행 번호는 대응 기준이 아닙니다. 대조 결과는 양쪽 키의 합집합을 기준으로 만듭니다. 그래야 한쪽에만 있는 O-102와 O-103을 함께 볼 수 있습니다.

발주표를 기준으로만 조회하면 납품표에만 있는 품목이 결과에 나타나지 않습니다. 반대 방향의 조회를 한 번 더 수행하거나 양쪽 키 목록을 합친 별도 목록을 만듭니다. 이때 동일 키를 한 번만 표시하되 원본의 중복 행은 삭제하지 않습니다. 표시용 키 목록의 고유성과 원본 키의 고유성은 다른 검사입니다.

파일의 열 순서가 바뀌었을 때도 주의합니다. 조회 수식의 숫자 색인이 예전 수량 열을 가리키는지 확인하고 표 범위를 다시 맞춥니다. 원본 품목명 열이 수량으로 들어온 결과를 숫자 변환으로 억지 수정하지 않습니다. 값 자료형이 예상과 다르면 먼저 열 대응부터 보류합니다.

미일치 행을 담당자에게 넘기는 형태

검토 목록에는 발주·품목 키, 양쪽 파일 이름과 원본 행 위치, 상태, 필요한 확인값을 남깁니다. 수량 미일치는 실제 정상 납품 수량이나 단위 확인이 필요하고, 발주만 존재는 납품 파일 범위·지연·취소 확인이 필요합니다. 같은 “오류”라는 이름으로 묶으면 담당자가 무엇을 확인해야 하는지 알기 어렵습니다.

원본 수량을 같게 만들기 위해 임의로 보정하지 않습니다. O-101의 8을 10으로 바꾸면 미일치 목록은 사라지지만 납품 근거가 바뀝니다. 실제로 2개를 추가로 받았다면 추가 납품 사건 ID와 문서가 있어야 하고 다음 기준 시점의 납품표에 반영합니다. 이 대조표는 원본 변경을 승인하는 장치가 아닙니다.

확인 후에는 상태를 확정 일치, 수량 확인 중, 범위 제외, 중복 원본 정리 등으로 업데이트하고 근거를 붙입니다. 무엇을 제외했는지와 제외 전 원본 위치를 보관합니다. 한쪽 파일의 오류를 수정했다면 수정된 파일 버전으로 대조를 다시 수행하고 이전 결과도 남깁니다.

0과 빈칸의 경계에서 달라지는 결과

O-106의 납품 수량이 빈칸이면 차이를 계산하지 않습니다. O-107의 0은 실제 값이 있으므로 0-3=-3입니다. 프로그램이 빈 셀을 자동으로 0처럼 계산하더라도 이 표의 집계 규칙에서는 빈값 여부를 먼저 확인합니다. 미조회 행과 조회했지만 수량이 빈 행도 다른 상태로 둡니다.

품목이 없을 때 조회 오류를 0으로 바꾸면 발주만 존재와 납품 0이 같은 숫자가 됩니다. 따라서 미조회에는 문자 상태를, 확인된 납품 0에는 숫자를 유지합니다. 보고서에서 확인된 차이 합계를 보여줄 때는 보류 키 수와 미조회 키 수를 함께 적어 일부 비교의 결과임을 알립니다.

변경 전에 돌아갈 수 있게 남길 파일

처음 내려받은 두 파일, 비교에 쓴 코드 사전, 기준 시점, 대조표 버전을 함께 보관합니다. 수정 파일을 같은 이름으로 덮어쓰지 않고 새 버전으로 만든 뒤 어떤 원본이 바뀌었는지 연결합니다. 대조 규칙이 잘못됐다는 사실을 발견하면 원본은 유지한 채 대조표만 다시 생성할 수 있어야 합니다.

마지막으로 샘플의 정렬 순서를 뒤집어도 키별 상태가 같게 나오는지, 납품 한 행을 빼면 납품 미조회가 되는지, 같은 키 한 행을 추가하면 중복 보류가 되는지 확인합니다. 이 범위는 파일 구조와 대응 관계의 검사입니다. 실제 배송 완료, 소유권 이전, 검수 합격이나 지급 승인까지 뜻하지 않습니다.

비교 가능한 합계와 보류 목록을 함께 전달하기

샘플에서 양쪽 키가 하나씩이고 수량이 확인된 조합은 O-101/P-001, O-101/P-002, O-107/P-007의 3개입니다. 이 범위의 발주 수량은 10+5+3=18, 납품 수량은 8+5+0=13이며 차이 합계는-5입니다. 남은 5개 조합은 미조회·중복·빈 수량으로 보류됩니다. -5를 전체 발주의 확정 미입고 수량이라고 부르면 비교 범위를 넘어선 표현입니다.

두 파일의 총량만 같게 맞추는 방식도 사용하지 않습니다. P-001이 2개 적고 다른 품목이 2개 많으면 총합은 같을 수 있지만 각 품목의 대응은 어긋납니다. 조합별 판정과 합계는 함께 봐야 합니다. 여러 품목의 단위가 서로 다르면 18과 13을 한 수량 합계로 표시하는 것도 부적절하며 품목 또는 같은 기준 단위별로 나눕니다.

이 설명용 비교표는 모든 수량을 개로 맞춘 것으로 가정했습니다. 실제 결과를 넘길 때는 단위와 비교 기준 시점을 표 제목이나 요약 옆에 둡니다. 보류 목록이 해결되면 새 범위의 합계를 만들고 이전 보고의 3개 비교와 무엇이 달라졌는지 남깁니다. 미조회가 해결됐다는 이유로 과거에 미확인이었던 상태를 지우지 않습니다.

원문에서 확인할 범위

  • PostgreSQL 18: Foreign keys — 다른 표의 식별키와 대응시키는 참조 관계의 개념. 납품 승인이나 자동 코드 변환을 규정하는 자료가 아님.
  • Google Sheets COUNTIFS — 복수 조건의 개수를 세는 문법과 조건 범위의 크기 일치.
  • Google Sheets VLOOKUP — 정확 일치 FALSE, 첫 일치 반환, 미조회 #N/A. 이 글은 조회 전에 원본 키 고유성을 따로 검사.

자료 제작·검수: 2026년 10월 10일. 계산·사례의 확인 범위는 본문에 표시했습니다. 편집 기준 · 오류 정정

SOPBiz 운영자

작은 사업자의 반복 업무를 문서, 도구, 운영 루틴으로 정리합니다. 책임 운영자가 글의 수정 요청, 검수 기준, 정책 고지를 관리합니다.

콘텐츠 작성 기준 보기