블로그
재고 관리· 6분

엑셀 재고를 시스템으로 옮기는 4단계

📌 3줄 요약

  • 시트를 그대로 올리면 시트의 오류도 그대로 따라와요. 옮기기 전에 정제하는 게 순서예요.
  • 개시 재고는 시트 숫자가 아니라 실사 숫자로 잡고, 전환 기준일 하나를 정해 그 앞뒤를 자르세요.
  • 2주쯤 둘 다 기록하며 대조하는 병행 운영을 거친 뒤에 시트를 닫아요. 닫는 것까지가 전환이에요.

재고 관리 도구를 고르는 것보다 어려운 게 옮기는 일이에요. 도구는 하루면 고르지만, 3년치 시트를 어떻게 넘길지는 답이 잘 안 나오거든요. 그래서 많은 분이 "일단 새 시스템에 상품만 넣어 두고" 시트를 계속 쓰다가, 결국 둘 다 안 맞는 상태로 돌아가요.

데이터 이관(마이그레이션)은 지금 쓰던 곳의 데이터를 새 시스템으로 옮기는 작업을 말해요. 오늘은 엑셀 재고 시트를 재고 관리 시스템으로 옮기는 과정을 4단계로 정리했어요. 상품 수십~수백 개를 혼자 굴리는 규모 기준이고, 실제로 걸리는 시간은 반나절 준비 + 2주 병행 운영 정도예요.

1단계 — 무엇을 옮기고 무엇을 버릴지 먼저 정해요

가장 흔한 실패가 "있는 걸 다 옮기려는 것"이에요. 데이터 이관 실무에서도 같은 얘기를 해요. 옮길 데이터를 정하는 일 자체가 이관의 첫 작업이고, 더 이상 필요 없는 데이터는 지우고 간다는 원칙이에요. 전부 옮기면 검증할 것만 늘어나고, 정작 틀린 곳을 찾기 어려워져요.

셀러 기준으로 나누면 이렇게 돼요.

데이터옮길까이유
상품·옵션 마스터 (이름, 코드, 바코드, 원가, 판매가)전부 옮겨요새 시스템의 뼈대예요. 이게 없으면 아무것도 안 돌아가요
전환 기준일 시점의 재고 수량한 번만 옮겨요3단계에서 실사 숫자로 넣어요
거래처·창고 정보쓰는 것만2년째 거래 없는 곳은 두고 가세요
과거 입출고 이력옮기지 않아도 돼요시트를 읽기 전용으로 남겨 두면 조회는 돼요
과거 판매 이력최근 것만 (예: 12개월)수요 예측·회전율에 쓸 만큼만

과거 이력을 옮기지 않는 게 불안하시죠. 그런데 이력을 옮긴다는 건 "지난 3년의 모든 입출고를 시스템이 이해하는 형식으로 다시 쓴다"는 뜻이에요. 그 작업으로 얻는 건 대개 조회 편의뿐이고, 조회는 원본 시트를 남겨 두면 해결돼요. 판매 이력은 사정이 달라요 — 수요 예측이나 회전율 계산에 실제로 쓰이니까, 쓸 기간만큼은 가져가는 게 맞아요.

내일 할 일: 시트의 탭을 하나씩 열어 보고 위 표의 다섯 줄 중 어디에 해당하는지 적어 보세요. "판단이 안 서는 탭"이 있다면 그건 대체로 안 옮겨도 되는 탭이에요.

2단계 — 옮기기 전에 시트를 정제해요

정제를 이관 전에 하느냐 후에 하느냐는 취향 문제가 아니에요. 이관 후에 새 시스템 안에서 고치는 쪽이 품이 훨씬 많이 든다는 게 실무 쪽 공통 조언이에요. 그리고 시트에 오류가 있을 가능성은 생각보다 높아요.

"The most recent field audits, in contrast, generally used better methodologies and found errors in at least 86% of the spreadsheets audited."
(최근의 필드 감사들은 대체로 더 나은 방법론을 사용했고, 감사한 스프레드시트의 최소 86%에서 오류를 발견했습니다.)
— Raymond R. Panko, 'What We Know About Spreadsheet Errors'

정제하지 않고 올리면, 이 오류들이 새 시스템의 개시 데이터가 돼요. 아래 네 가지만 보면 대부분 걸러져요.

점검 항목엑셀에서 확인하는 법안 고치면
1행 1옵션인가병합 셀 해제. "빨강/파랑"처럼 한 칸에 몰린 옵션은 행을 나눠요옵션별 재고를 못 잡아요
코드 중복=COUNTIF($A:$A,A2)>1 — TRUE인 행을 필터임포트가 실패하거나, 뒤 행이 앞 행을 덮어써요
눈에 안 보이는 공백=A2<>TRIM(A2) — TRUE인 행을 필터'SKU-01 '(뒤에 공백)과 'SKU-01'이 다른 상품이 돼요
빈 코드코드 열 필터 → (필드 값 없음)그 행만 조용히 누락돼요

코드를 새로 만들거나 정리한다면 규칙이 있어요. SKU는 재고를 세는 최소 단위, 즉 옵션 하나하나에 붙이는 코드예요. 영문과 숫자만 쓰고, 구분자는 하이픈(-)까지만 쓰세요. 공백이나 @ # $ % 같은 기호는 시스템 오류를 만들고요. 그리고 한 번 부여한 코드는 바꾸지도, 재사용하지도 마세요. 단종된 상품의 코드를 새 상품에 다시 쓰면 과거 판매·재고 이력이 두 상품에 섞여요.

한 가지 더. 매칭 키(어떤 열을 기준으로 시트의 행과 시스템의 상품을 이어 붙일지)는 잘 안 바뀌는 값으로 고르세요. 상품 코드·SKU처럼 고정된 값이 좋고, 가격이나 설명처럼 바뀌는 값은 키로 쓰면 안 돼요. 다음 달에 가격을 올리는 순간 매칭이 끊어지거든요.

내일 할 일: 시트를 사본으로 하나 뜬 뒤, 위 표의 네 가지 수식을 코드 열 옆에 붙여 보세요. 수식을 한 번 걸고 필터로 훑는 작업이라 상품 수백 개 규모라도 오래 걸리지 않고, 대개 몇 줄은 걸려 나옵니다.

자주 깨지는 자리 — 바코드·코드 열

여기는 따로 떼서 볼 가치가 있어요. 이관 중 숫자가 조용히 망가지는 자리가 거의 정해져 있거든요. 엑셀이 긴 숫자를 숫자로 취급하면서 생기는 일이에요.

증상언제 생기나결과
8.80123E+12 처럼 지수 표기로 보임자릿수가 긴 코드를 일반 서식으로 열 때눈으로 뒷자리를 확인할 수 없어요
16자리 이상 숫자의 뒷자리가 0으로엑셀의 정밀도 한계되돌릴 수 없어요
앞자리 0이 사라짐 (0123 → 123)숫자로 인식될 때다른 코드가 돼요

두 번째 줄은 출처가 명확해요.

"Excel has a maximum precision of 15 significant digits, which means that for any number containing 16 or more digits, such as a credit card number, any numbers past the 15th digit are rounded down to zero."
(엑셀의 최대 정밀도는 유효숫자 15자리라, 신용카드 번호처럼 16자리 이상인 숫자는 15번째 자리 이후가 0으로 내림됩니다.)
— Microsoft 지원 문서

지수 표기는 그보다 훨씬 짧은 자릿수에서도 생겨요. 12자리 값 123456789012가 1.23457E+11로 보이는 사례가 문서로 남아 있어요. 국내에서 쓰는 유통표준코드(GTIN-13)는 13자리라 값 자체가 잘리지는 않지만, 표시가 지수 표기로 바뀌면 검수를 눈으로 할 수 없게 돼요.

막는 법은 두 가지예요.

  • CSV를 더블클릭으로 열지 마세요. 엑셀에서 [데이터] → [텍스트/CSV 가져오기]로 불러오고, 코드·바코드 열의 데이터 형식을 텍스트로 지정하세요. 미리 텍스트로 지정해야 의미가 있어요 — 이미 숫자로 들어온 뒤에 서식만 바꾸면 잘린 자리는 돌아오지 않아요.
  • 길이로 검증하세요. 바코드 열 옆에 =LEN(B2)를 넣고 아래로 채우면 끝이에요. GTIN-13이면 전 행이 13이어야 해요. 12가 나온 행은 앞자리 0이 잘린 행이고, 3~5처럼 짧은 값이 나오면 지수 표기로 바뀐 행이에요.

내일 할 일: 바코드 열에 =LEN()을 한 번 걸어 보세요. 13이 아닌 행이 하나라도 나오면, 그 파일은 아직 올리면 안 되는 파일이에요.

3단계 — 전환 기준일과 개시 재고를 실사로 못박아요

전환 기준일(컷오버)은 "이 날짜부터 재고의 진실은 새 시스템에 있다"고 선언하는 하루예요. 이 날짜가 없으면 어떤 거래가 어느 쪽에 들어갔는지 아무도 모르는 상태가 돼요. 입출고가 가장 뜸한 날, 보통 주말이나 월말로 잡으면 편해요.

개시 재고는 그 시점의 시작 수량이에요. 여기서 결정적인 선택이 하나 있어요.

시트 숫자로 시작하지 말고, 실사 숫자로 시작하세요.

시트 숫자로 시작하면 지금까지 쌓인 오차를 그대로 새 시스템으로 물려받아요. 그러면 전환 후에 숫자가 안 맞을 때 "새 시스템이 이상한가?"와 "원래 틀려 있었나?"를 영원히 구분할 수 없어요. 이관 실무 가이드들도 지금 데이터의 오류는 새 시스템으로 그대로 넘어가니 올리기 전에 실사로 개시 수량을 다시 확인하라고 권해요.

시차도 조심하세요. 파일을 내보낸 날과 실제로 올리는 날 사이가 며칠만 벌어져도, 그 사이의 입고·출고·조정이 통째로 빠져요. 내보내기와 올리기는 같은 날에, 실사와도 같은 날에 두세요. 이 세 가지 시점이 어긋나는 게 전환 직후 숫자가 안 맞는 가장 흔한 이유예요.

실사 대조 예시 — 이 표를 그대로 채워 보세요

기준일에 상품 다섯 개를 세어 봤다고 가정해 볼게요.

상품·옵션시트 수량실사 수량차이차이 절댓값개당 원가
A-빨강120116−446,000원
A-파랑4545006,000원
B-단품813+554,000원
C-대형300288−121222,000원
D-소형6061+113,000원
합계533523−1022

오차율 공식은 이거예요.

오차율(%) = │실사 수량 − 시스템 수량│ ÷ 시스템 수량 × 100

전체 오차율은 절댓값 합으로 계산해요. 22 ÷ 533 × 100 = 약 4.1%.

여기서 흔한 함정이 하나 있어요. 그냥 차이(−10)로 계산하면 10 ÷ 533 = 1.9%가 나와요. A-빨강의 −4와 B-단품의 +5가 서로 상쇄됐기 때문인데, 실제로는 22개가 틀린 거예요. 상쇄된 숫자는 항상 실제보다 좋아 보여요. 절댓값으로 세세요.

그리고 같은 표를 세 가지 렌즈로 다시 보면 손볼 곳이 달라져요.

렌즈1위계산
비율B-단품5 ÷ 8 = 62.5%
개수C-대형12개
금액C-대형12 × 22,000 = 26.4만 원

B-단품은 5개 차이인데 오차율이 62.5%로 튀어요. 재고 수량이 적으면 비율은 원래 크게 흔들려요. 반대로 C-대형은 4.0%로 얌전해 보이지만 금액으로는 26.4만 원이고, 표 전체 오차 금액(4×6,000 + 5×4,000 + 12×22,000 + 1×3,000 = 31.1만 원)의 85%를 혼자 차지해요. 비율만 보면 B를, 금액을 보면 C를 먼저 잡아야 해요.

참고로 "오차율 몇 %면 정상"이라고 할 만한, 1인 셀러 상품 단위의 공개 기준선은 없어요. 영어권에서 흔히 보이는 재고 정확도 95% 같은 숫자는 3PL·물류창고 전체를 집계한 기준이라 상품 하나의 오차율에 그대로 대면 안 되고요. 그래서 이 표의 목적은 점수를 매기는 게 아니에요. 개시 재고를 실사 숫자로 넣는 순간 오차는 0에서 다시 출발하고, 위 표는 "기록 습관이 무너져 있던 상품 목록"으로 쓰는 거예요 — 다음 단계에서 집중 감시할 대상이 바로 C-대형과 B-단품이에요.

내일 할 일: 달력에서 전환 기준일 후보를 하루 고르고, 그날 실사할 상품 목록을 뽑아 두세요. 전 품목이 부담이면 금액 상위 20개만으로 시작해도 돼요 — 나머지는 병행 운영 중에 구역이나 카테고리를 나눠 며칠에 걸쳐 도는 순환 실사로 채우면 됩니다.

4단계 — 2주 병행 운영으로 검증하고, 시트를 닫아요

병행 운영은 옛 시스템과 새 시스템을 한동안 같이 돌리면서 결과를 맞춰 보는 방식이에요. 위키백과의 정의가 명확해요.

"Parallel running is a strategy for system changeover where a new system slowly assumes the roles of the older system while both systems operate simultaneously."
(병행 운영은 두 시스템을 동시에 가동한 채로 새 시스템이 옛 시스템의 역할을 점차 넘겨받는 전환 전략입니다.)
— 위키백과 'Parallel running'

같은 문서가 단점도 분명히 적어 뒀어요. 같은 기간 동안 담당자가 "평소의 두 배 업무량"을 감당해야 한다는 거예요. 혼자 일하는 셀러에게 이건 그냥 못 하는 일이에요. 그래서 범위를 줄이세요.

업무병행 운영 중에는
입고·출고 기록양쪽 모두 — 대조의 근거라 이것만은 이중 기록해요
발주 판단새 시스템만
판매 데이터 정리·분석새 시스템만
가격·원가 수정새 시스템만 (시트는 이미 과거예요)

이중으로 적는 건 입출고 한 가지뿐이에요. 나머지를 양쪽에서 다 하려고 들면 2주를 못 버텨요.

기간을 2주로 잡은 건 규모 때문이에요. 기업용 시스템 이관 가이드들은 병행 운영을 30~60일씩 권하는데, 그건 부서 여럿이 나눠 지는 부담이라 가능한 얘기예요. 위키백과의 정의도 특정 일수가 아니라 "새 시스템의 모든 측면이 제대로 동작한다는 게 확인될 만큼 충분히 긴 기간"이라고만 해요. 상품 수백 개를 혼자 보는 규모라면 주간 대조 2~3회로 확인이 끝나는 경우가 많고, 안 끝나면 그때 늘리면 돼요. 기간보다 종료 조건이 중요해요.

주 1회 10분 대조 루틴

금요일 마감 후에 상품별 수량을 나란히 놓고 비교해요. 차이가 나면 원인은 셋 중 하나예요.

차이의 원인알아보는 법조치
새 시스템에 입출고를 빠뜨림시트에는 있고 시스템에는 없는 건이 있어요누락 건을 등록하고, 어떤 상황에서 빠뜨렸는지 메모
시트 쪽 수식·수기 오류시스템이 맞고 시트가 틀렸어요시트는 어차피 닫을 거예요. 고치지 말고 기록만 남겨요
기준일 이전 거래가 뒤늦게 반영됨전표 날짜가 전환 기준일보다 앞서요개시 재고를 조정하고, 조정 이력을 꼭 남겨요

전환 직후라면 목표는 차이 0이 맞아요. 기준일에 실사로 맞춰 놨으니까, 이후에 벌어지는 차이는 오래된 오차가 아니라 전부 이번 주에 생긴 기록 누락이거든요. 원인을 찾을 수 있는 크기예요.

끝내는 조건을 미리 정해 두세요

병행 운영은 "적당히 괜찮아지면 끝내는" 게 아니라, 시작할 때 종료 조건을 숫자로 적어 두는 거예요.

  • 종료 조건 예시: 주간 대조 2회 연속 절댓값 차이 0 → 시트를 닫는다.
  • 되돌아갈 조건 예시: 4주가 지나도 매주 차이가 나면 → 원인을 찾을 때까지 전환을 멈춘다.

그리고 마지막 한 걸음이 제일 자주 생략돼요. 시트를 닫는 것까지가 전환이에요. 파일명 앞에 ARCHIVE_2026-08-31_ 처럼 기준일을 붙이고, 읽기 전용으로 바꾸고, 다른 시트에서 걸어 둔 참조나 자동화가 있으면 끊으세요. 둘 다 열려 있는 상태를 계속 두면 급할 때 손에 잡히는 쪽에 적게 되고, 그러면 결국 어느 쪽도 맞지 않게 돼요. 위키백과의 설명도 같은 순서예요 — 새 시스템이 제대로 동작한다는 게 확인되면 옛 시스템은 완전히 제거한다고요.

내일 할 일: 캘린더에 두 개만 넣으세요. 전환 기준일, 그리고 그 뒤 2주간의 금요일 대조 일정 10분씩. 종료 조건 한 줄은 메모에 적어 두시고요.

마무리

이관에서 진짜 어려운 건 데이터가 아니라 순서예요. 정제를 나중으로 미루면 오류가 개시 데이터가 되고, 기준일을 안 정하면 어느 쪽이 진실인지 모르게 되고, 시트를 안 닫으면 전환이 영영 안 끝나요. 반대로 이 순서만 지키면 상품 수백 개 규모는 반나절 준비와 2주 병행 운영으로 충분해요.

INVLO로 옮기신다면 상품·옵션은 [일괄 등록] 화면에서 템플릿 엑셀을 내려받아 채워 올리시면 돼요. 헤더 행을 그대로 두는 것과, 바코드 열을 텍스트 서식으로 유지하는 것 두 가지만 지키면 됩니다. 개시 재고는 입고 처리로 한 번 넣어 두면 그 뒤로는 입출고 기록으로만 움직이고, 수동 조정도 이력이 남아서 위 3번 대조 루틴을 그대로 돌릴 수 있어요. 기능과 요금은 자주 묻는 질문에 정리해 뒀어요.

관련 글