Excelの在庫表は、どう移行すれば崩れない?崩れやすい10の書き方を架空の在庫表で数えた

Excelの在庫表をアプリへ移行するときに崩れやすいのは、結合セル、全角数字、数量に付いた単位、品名の表記ゆれ、1シートに並んだ複数の表など10の書き方です。在庫てちょうの主宰が、崩れを60件仕込んだ架空の在庫表を変換スクリプトに通すと、43件(71.7%)は自動で直り、16件は人の確認に残りました。手順は「読み込む前」「読み込みで」「移した後」の3段に分けます(2026年10月時点)。
全体の流れと費用は在庫管理のExcel脱却のページにまとめています。
要点
- Excelの在庫表で読み込みが崩れやすいのは、結合セル・全角数字・単位つきの数量・品名の表記ゆれなど10の書き方です。
- 崩れを60件仕込んだ架空の在庫表を変換スクリプトに通すと、43件(71.7%)が自動で直り、16件が人の確認に残りました。
- 結合セル12件・全角数字6件・小計や空行5件は全部自動で直り、色や取り消し線で表した状態4件は1件も直せませんでした。
- 品番を打ち間違えた1件は読み込みで見逃し、移した後に「同じ品名に品番が2つ」を照合して見つけました。
目次
Excelの在庫表をアプリへ移すとき、どこが崩れやすいのですか?
崩れやすいのは、人が見て分かるように工夫した書き方です。結合セル、全角数字、数量に付けた単位、品名の表記ゆれ、色で表した状態など10種類あります。Excelの画面では読めても、1行に1品目が並ぶ形で機械が読み込むと、空欄や別の品目に化けます。
Excelの1シートには1,048,576行まで入ります(Microsoftの仕様)。行の数で困ることは少なく、崩れの原因はほとんどが書き方です。在庫てちょうの主宰は、架空の部品卸の在庫表(本社倉庫と第2倉庫、データ33行)に10種類の崩れを計60件仕込みました。変換スクリプトに通した結果が次の表です。
| 崩れ方 | 在庫表での例 | 仕込んだ(件) | 自動で直した(件) | 人が確かめる(件) |
|---|---|---|---|---|
| 1. 結合セル | 分類「ボルト」を5行で結合 | 12 | 12 | 0 |
| 2. 全角数字・桁区切り | 「180」「1,200」 | 6 | 6 | 0 |
| 3. 数量に単位・数でない値 | 「12箱」「約10」「?」 | 7 | 3 | 4 |
| 4. 品名の表記ゆれ | 「ロックナット M8」「M8x20」 | 6 | 4 | 1 |
| 5. 1シートに複数の表 | 「■第2倉庫」の表が下に続く | 2 | 2 | 0 |
| 6. 小計・合計・空行 | 表の途中の「小計」の行 | 5 | 5 | 0 |
| 7. 品番が数値になった | 「01101」が「1101」に | 5 | 5 | 0 |
| 8. 期限の書き方の混在 | 「R9.4.30」「3月末」 | 7 | 4 | 3 |
| 9. 色・取り消し線で状態 | 赤く塗った行=不良品 | 4 | 0 | 4 |
| 10. 1セルに複数の値 | 保管場所「C-1、C-2」 | 6 | 2 | 4 |
架空の在庫表を変換スクリプトに通すと、何件が自動で直りましたか?
60件のうち43件(71.7%)が自動で直り、16件(26.7%)は人の確認に残りました。残る1件は読み込みで見逃した品番の打ち間違いで、移した後の照合で見つけています。直す必要のない所を直した誤検出は0件でした。
差がはっきり出たのは、決まりで直せるものと、意味を人が決めるものです。結合セル、全角数字、小計の行は、決まりどおりに直せば済むので全件が自動で直りました。赤い塗りつぶしが「不良品」なのか「発注済み」なのかは、在庫表のどこにも書いていません。色・取り消し線の4件は、1件も自動では直せませんでした。
式と前提はこの節に書いたとおりで、乱数は使っていません。同じ前提で計算すれば、同じ値になります。在庫表を作る部分と直す部分は分けてあり、直す部分は仕込んだ場所の一覧を見ずに、在庫表の中身だけで判断します。限界もあります。崩れ方は主宰が選んだもので、実際の在庫表での起きやすさの順ではありません。
読み込む前に、Excelの上で直しておく所はどこですか?
意味を人が決める崩れは、読み込む前にExcelの上で直します。今回の実験で人の確認に残った16件は、色・取り消し線、1セルに2つある保管場所、数でない数量、年や日のない期限でした。どれも、決まりを1つ決めれば同じ種類はまとめて直せます。
直し方の例を挙げます。
- 色や取り消し線で表した状態は「状態」の列を作り、「不良」「廃番」と文字で入れる
- 「C-1、C-2」のように2か所にある品目は行を分け、場所ごとの数量を数えて入れる
- 「約10」「?」の数量は、その品目だけ数え直して数字を入れる
- 「12箱」のように単位が違う数量は、1箱の入数を決めて個数に直す
- 「3月末」「未定」の期限は、年と日を確かめるか空欄にする
色の意味は、在庫表を作った人にしか分からないことがあります。私が変換の仕組みを作るときは、まず色ごとの件数を一覧にして、在庫表の担当の方に意味を聞きます。
読み込みのとき、変換スクリプトで直せるのはどこまでですか?
決まりで直せる崩れは、読み込みのときに変換スクリプトで直します。今回は結合セル12件、全角数字6件、複数の表2件、小計と空行5件、数値になった品番5件が、すべて自動で直りました。数量の直し方の要点は次の数行です。
t = unicodedata.normalize('NFKC', q).replace(',', '') # 全角を半角に、桁区切りを外す
if re.fullmatch(r'\d+', t):
qty = int(t)
elif m := re.fullmatch(r'(\d+)(\D+)', t): # 「20本」のように単位つき
qty = int(m[1]) if m[2] == unit else None # 単位が品目の単位と違えば要確認
品番の先頭の0は、Excelが数値として扱うと消えます。厚生労働省の健診ソフトのサポートページにも同じ注意があります。表計算ソフトでCSVを編集すると先頭の「0」が自動で削除され、桁数の不一致でエラーになることがある、というものです。今回のスクリプトは、ほかの品番が5桁にそろっているのを見て、短い品番の前に0を足しました。
Excelの数値は有効桁数が15桁なので、16桁以上のロット番号を数値で入れた場合は、元の番号に戻せません。
品名の表記ゆれは、同じ品番の行どうしで比べます。全角と半角、空白、「×」と「x」をそろえて同じになれば自動で1つにまとめました。「ラッカーシンナー」と「ラッカー薄め液」のように言葉が違うものは、同じ品番でも要確認にしています。
移した後は、何を照合すればよいですか?
移した後は、品目数、拠点ごとの行数、数量の合計、同じ品名に品番が2つないか、の4つを照合します。今回読み込みで見逃した1件は、品番の打ち間違いです。第2倉庫の「平ワッシャー M8」が、「20013」ではなく「20031」と打たれていました。品番どうしでは別の品目に見えるため、変換スクリプトは気づきません。
| 照合すること | 比べるもの | 今回の結果 |
|---|---|---|
| 品目数 | Excelの品目の一覧と、アプリの品目の数 | 品番違いで1品目多かった |
| 拠点ごとの行数 | Excelの表ごとのデータ行と、アプリの行 | データ33行がロットで分かれて35行 |
| 数量の合計 | Excelの小計と、アプリの拠点ごとの合計 | 本社倉庫で2,671と6,626(差は文字の数量7件の分) |
| 同じ品名に品番が2つ | 品名をそろえた後の品番の数 | 「平ワッシャー M8」で1件 |
数量の合計は、Excelの小計とそのまま比べると合いません。ExcelのSUMは文字で入った数量を足さないため、本社倉庫の小計は2,671でした。移した合計は6,626で、差の3,955は文字から数値に直した7件の数量の合計と一致しました。
照合の後は、最初の棚卸で実在庫と合わせます。合わない品目の原因の切り分けは在庫が帳簿と合わない原因にまとめました。
在庫てちょうの導入例(イメージ)の部品の卸でも、同じ流れを想定しています。Excelの在庫表をそのまま読み込み、2拠点の在庫に移します。いつExcelをやめるかの目安は在庫管理のExcel脱却にまとめました。
このサイトで相談するには?
たとえば、品名と規格が1つのセルに入った表も、結合したセルのある表も、そのまま読み込んで崩れる所を見られます。
今のExcelの在庫表がどれくらい崩れずに移せるかは、相談の中で一緒に確かめられます(無料で相談する)。何をどう頼むか決まっていなくても大丈夫です。準備は要りません。
よくある質問
- Excelの在庫表は、CSVに保存してから読み込むべきですか?
- いいえ、xlsxのまま読む方が確かです。CSVにすると結合・色・取り消し線の情報が消え、表計算ソフトでCSVを編集すると品番の先頭の0が消えることもあります。
- 数式で計算した在庫数は、そのまま読み込めますか?
- 読めます。openpyxlでは data_only を指定すると、Excelが最後に保存した計算結果の値を読みます。指定しないと数式の文字が入ります。
- 移行のあいだ、Excelへの書き込みは止める必要がありますか?
- はい。読み込む日を決め、その日の入出庫を締めてから読み込みます。止めないと、読み込んだ後にExcelへ書いた分がアプリに入りません。
- 品目が数千あっても、同じ手順で移せますか?
- はい。変換スクリプトの処理は件数が増えても同じです。人が確かめる行だけを一覧に出して直すので、確かめる手間は崩れの件数で決まります。
出典
- 在庫てちょう 変換スクリプトと実験・図。架空の在庫表(2拠点・データ33行・崩れ60件)、Python 3.14.2・openpyxl 3.1.5、2026-10-16 実行(2026年10月16日確認)
- Microsoft サポート「Excel の仕様および制限」(ワークシートの行数・列数、数値の有効桁数)(2026年10月16日確認)
- 厚生労働省 特定健診・特定保健指導の標準様式作成ソフト サポート「受診者情報/利用者情報の一括取込でエラーが出る」(2023-12-27 更新)(2026年10月16日確認)
- openpyxl 公式ドキュメント「Tutorial」(load_workbook の data_only)(2026年10月16日確認)


