엑셀 재고를 시스템으로 옮기는 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-빨강 | 120 | 116 | −4 | 4 | 6,000원 |
| A-파랑 | 45 | 45 | 0 | 0 | 6,000원 |
| B-단품 | 8 | 13 | +5 | 5 | 4,000원 |
| C-대형 | 300 | 288 | −12 | 12 | 22,000원 |
| D-소형 | 60 | 61 | +1 | 1 | 3,000원 |
| 합계 | 533 | 523 | −10 | 22 | — |
오차율 공식은 이거예요.
오차율(%) = │실사 수량 − 시스템 수량│ ÷ 시스템 수량 × 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번 대조 루틴을 그대로 돌릴 수 있어요. 기능과 요금은 자주 묻는 질문에 정리해 뒀어요.
관련 글
- 엑셀 재고 관리, 언제까지 괜찮을까? — 지금이 옮길 때인지부터 판단하는 신호들이에요.
- 재고 실사 체크리스트 — 그대로 쓰는 21항목 — 3단계의 개시 재고 실사를 이 체크리스트로 돌리면 돼요.
- SKU란? 상품·옵션 코드 처음 정하는 법 — 2단계에서 코드를 새로 정리한다면 이 규칙대로 하세요.
- 바코드 처음 만들기 — GTIN·발급·라벨까지 — 자주 깨지는 바코드 열, 번호 자체는 이렇게 발급받아요.