在庫管理を無料で始めるなら、Googleスプレッドシートは「共有しやすい在庫表」と「スマホ入力・GAS自動化」まで広げられる有力な選択肢です。エクセルで作る在庫表も有効ですが、複数人で同時に確認したい、スマホからJANコードを読みたい、在庫不足を自動通知したい場合は、スプレッドシートの方が運用しやすい場面があります。本記事では、在庫表の作り方、JANコードで現在庫を確認する仕組み、GeminiやGASで便利にする方法まで解説します。
在庫管理にスプレッドシートが向いている理由
Googleスプレッドシートは、無料で始めやすく、オンライン共有とスマホ入力に強い在庫管理方法です。エクセルは手元のファイルで管理しやすい一方、最新版の共有や同時編集でつまずくことがあります。スプレッドシートなら、倉庫担当、受注担当、管理者が同じ在庫表をリアルタイムで見られます。中小企業庁も、在庫情報などをシステムで管理しながら業務フローを見直す状態を、デジタル化の重要な段階として整理しています。最初から高額な在庫管理システムを入れず、まず現場で使うデータを整える用途に向いています。
- 無料Googleアカウントがあれば小規模運用を始めやすい
- 共有複数人が同じ在庫表をオンラインで確認できる
- 自動化GASで通知、検索、入力補助を追加できる
- AI活用Geminiで傾向整理や集計の補助に使いやすい
エクセルとの違い:共有・同時編集が決め手になる
エクセルファイルをメールや共有ドライブでやりとりする運用では、どのファイルが最新かわからなくなりがちです。スプレッドシートはクラウド上に1つだけ存在し、URLを知る全員が同じ版を見ます。倉庫スタッフがスマホで入出庫を入力し、事務所で管理者が同時に在庫一覧を確認する、という使い方がそのまま実現できます。なぜこれが重要なのでしょうか。在庫差異が生まれる原因の多くは、データの更新タイミングのズレです。複数拠点や複数担当者が動く現場ほど、「常に同じ表を見る」環境の価値が高くなります。
スプレッドシートが向かないケース
スプレッドシートは万能ではなく、業務の規模や複雑さによっては限界があります。数千SKU、複数倉庫、ロット・期限管理、外部ECシステムとのリアルタイム連携が求められる場合は、最初から専用WMSや在庫管理システムを選んだほうが後々の修正コストを抑えられます。一方で、EC出荷資材、備品、小ロット商品の管理、部署内の備品把握など、軽量な用途では十分に機能します。まず小さく始めてデータを蓄積し、規模が大きくなったら移行する、というステップが現実的です。
まず作るべき在庫管理スプレッドシートの構成
用語の解説
在庫管理スプレッドシート
在庫管理スプレッドシートとは、Googleスプレッドシート上で商品マスタ、入出庫履歴、現在庫を管理する表です。オンライン共有、Googleフォーム、Apps Script、AppSheetと組み合わせることで、無料または低コストで簡易的な在庫管理システムとして使えます。
最初の構成は、商品マスタ、入出庫履歴、在庫一覧、設定の4シートに分けるのがおすすめです。現在庫だけを直接書き換えると、誰がいつ入庫・出庫したのかを追えなくなります。入出庫の動きをすべて履歴として積み上げ、在庫一覧はSUMIFSで自動集計する構造にすることで、棚卸や差異確認に使えるデータが自然と蓄積されます。
| シート名 | 役割 | 主な列 |
|---|---|---|
| 商品マスタ | 商品情報の基準 | JANコード、SKU、商品名、保管場所、初期在庫、補充目安 |
| 入出庫履歴 | 在庫の動きを記録 | 日時、入庫/出庫/調整、JANコード、数量、担当者 |
| 在庫一覧 | 現在庫を自動表示 | 入庫合計、出庫合計、現在庫、ステータス |
| 設定 | 通知や運用ルール | 通知先メール、入力ルール、注意事項 |
商品マスタに入れるべき列と設定のポイント
商品マスタは在庫管理の起点であり、ここが整っていないと入出庫履歴の集計精度が落ちます。最低限必要な列は、JANコード(または社内コード)、SKU、商品名、保管場所(ロケーション)、初期在庫数、補充目安数量の6つです。JANコードはバーコードスキャンや検索の照合キーになるため、重複・空欄がないよう入力規則(データの入力規則で「重複を禁止」)を設定しておきます。補充目安は、商品ごとに発注リードタイムを考慮した数量にすると、在庫アラートの精度が上がります。ロケーションは棚番号(例:A-01-02)で統一すると、棚卸時の確認が早くなります。
入出庫履歴の記録ルール
入出庫履歴は「追加専用」にするのが鉄則です。誤入力した場合は行を削除するのではなく、マイナス数量で調整行を追記するルールにします。こうすることで、いつ・誰が・何の操作をしたかが残り、差異が出たときに遡って確認できます。区分は「入庫」「出庫」「調整」の3種類をプルダウンで選ばせると、担当者が自由に文字を入力することで起こる表記ゆれを防げます。日時列はGoogleフォームやGASから自動入力する設計にすると、手入力の漏れがなくなります。
在庫一覧のSUMIFS式で現在庫を自動集計する
在庫一覧の現在庫列は、入庫合計から出庫合計を引くシンプルなSUMIFS式で計算できます。入庫合計は =SUMIFS(入出庫履歴!E:E, 入出庫履歴!D:D, A2, 入出庫履歴!C:C, "入庫") のように、JANコードと区分の2条件で絞り込みます。同様に出庫合計を集計し、現在庫 = 初期在庫 + 入庫合計 − 出庫合計 で算出します。ステータス列には =IF(現在庫<補充目安, "要補充", "正常") を入れると、一覧を開くだけで補充が必要な商品を把握できます。数式が正しく機能するかどうかは、テスト用の入出庫行を数件追加して確認してから本運用に入るのが安全です。
JANコードをスマホでスキャンして在庫を確認する方法
スマホのカメラでJANコードを読み、在庫をすぐ確認したい場合は、GoogleスプレッドシートとAppSheetを組み合わせる方法が現実的です。Googleスプレッドシート単体には、スマホカメラでJANを直接読み取る標準機能はありません。そこで用途に合わせた3つの方法から選ぶことになります。スキャン頻度が高い現場ほど、アプリやリーダーを活用した仕組みを整えると、入力ミスと作業時間の両方を減らせます。
JANスキャン運用の選択肢
- スマホカメラで読みたい: AppSheetでJANコード列をScannableにする
- PCや倉庫端末で読みたい: Bluetoothバーコードリーダーを入力欄に接続する
- 入力を簡単にしたい: GoogleフォームにJAN、区分、数量を入力する
- 現在庫を即確認したい: GASサイドバーでJAN検索を作る
AppSheetでJANスキャンを設定する手順
AppSheetは、Googleスプレッドシートをもとにスマホアプリを作れる無料ツールで、JANスキャン機能を持ちます。手順は大きく3段階です。まず、Googleスプレッドシートの商品マスタをAppSheetと連携します。次に、AppSheetのField設定でJANコード列のTypeを「Text」のままにしてから、Scan専用のアクションボタンを追加します。最後に、スマホのAppSheetアプリからボタンを押すとカメラが起動し、読み取ったJANで該当商品のレコードを開けるようになります。在庫確認だけでなく、入出庫数量の更新もアプリ上から行えるため、倉庫での現物確認とデータ入力を同時に完結できます。AppSheetの無料プランは個人利用が条件のため、チームで本格運用する場合は有料プランを確認してください。
Bluetoothバーコードリーダーを使う方法
Bluetoothバーコードリーダーは、スキャンした文字列をキーボード入力として送るため、スプレッドシートのセルに直接JAN番号を入力できます。PC・タブレット・スマホいずれにもペアリングでき、専用アプリなしでそのまま動作します。在庫一覧のJAN列にカーソルを置き、バーコードをスキャンすると、JANコードが自動入力されてEnterキーも送られるため、1商品あたり1秒以下で入力が完了します。GASのサイドバー(JANコード入力欄)と組み合わせると、スキャン → 商品名・現在庫・保管場所の表示 → 入出庫数量入力 という流れをPC画面上で完結できます。バーコードリーダーは3,000〜10,000円程度で入手でき、専用在庫管理アプリへの移行コストと比べると大幅に安価です。
Googleフォームで入出庫入力を手軽に運用する
AppSheetやバーコードリーダーを用意できない場合でも、Googleフォームをスプレッドシートの入出庫入力窓口にする方法があります。フォームにJANコード(テキスト)、区分(選択式)、数量(数値)、担当者名の4項目を作り、回答先を入出庫履歴シートに設定します。スマホのブラウザからフォームを開き、JANコードを手入力またはバーコードリーダーで入力するだけで、タイムスタンプ付きで履歴が自動追記されます。設定時間は15分ほどで、追加費用もかかりません。数量や区分の入力ミスを防ぐため、区分はプルダウン選択式、数量は最小値1・整数のみという入力規則を付けておくと運用が安定します。
GASでできる便利な在庫管理機能
GASを使うと、スプレッドシートを「見る表」から「動く在庫管理ツール」に近づけられます。検索、入力、通知の3つの自動化を追加するだけで、現場の作業負荷が大きく変わります。なぜこの機能が重要なのでしょうか。在庫表を開いて該当行を探す時間、補充忘れが積み重なって欠品につながるリスク、これらを仕組みで防ぐのがGASの役割です。プログラミング経験がなくても、提供されているテンプレートのコードを貼り付けて実行できるレベルで使い始められます。
- JANコード検索: 商品名、現在庫、保管場所をすぐ表示する
- 入出庫登録: サイドバーから入庫・出庫・調整を追記する
- 在庫アラート: 現在庫が補充目安以下ならメール通知する
- 入力ルール: 入庫、出庫、調整をプルダウンで選ばせる
- 履歴保持: 現在庫を直接変更せず、入出庫履歴から集計する
JANコード検索サイドバーの仕組みと動作
GASサイドバーは、スプレッドシートの右端に表示されるミニアプリで、JANコードを入力するだけで該当商品の情報を即表示します。動作の流れは、サイドバーのJAN入力欄にコードを入力 → GASがスプレッドシートの商品マスタ・在庫一覧を検索 → 商品名、現在庫、保管場所を画面に表示、という3ステップです。さらに入出庫数量と区分を入力して「登録」ボタンを押すと、入出庫履歴シートに日時と担当者付きで行が追加されます。ブラウザのタブを切り替えることなく、スプレッドシートを開いたままバーコードスキャン → 確認 → 入力が完結するため、倉庫内でのPC運用に特に向いています。テンプレートのCode.gsとSidebar.htmlをスクリプトエディタに貼り付け、初期化を1度実行するだけで使い始められます。
在庫不足メール通知の設定手順

補充目安を下回った商品を自動でメール通知する仕組みは、GASのトリガーを使って1日1回実行する形が実用的です。まず、スクリプトエディタで通知先のメールアドレスを設定シートから読み込みます。次に、在庫一覧シートをループして現在庫 < 補充目安の行を抽出します。該当商品が1件以上あれば、商品名・現在庫・保管場所の一覧をメール本文に整形してGmailSendEmail()で送信します。最後に、GASのトリガー設定で「毎朝8時に実行」を設定すれば、翌朝から自動通知が始まります。注意点として、GASのメール送信は1日500通が上限です。通知対象が大量にある場合は、1通にまとめて送る実装にしてください。
Geminiで在庫データを分析しやすくするコツ
Geminiを活用するなら、在庫データをAIが読み取りやすい列構成にしておくことが大切です。商品名だけでなく、SKU、カテゴリ、ロケーション、入出庫区分、数量、日時を列として分けておくと、滞留在庫、補充候補、出庫頻度の高い商品を整理しやすくなります。備考欄にすべてを書き込む表は分析に向きません。データの質がAI分析の精度を決めます。
AIが読み取りやすいデータ構造の作り方
Geminiへデータを貼り付けて分析を依頼するとき、最も重要なのは列の意味が明確なことです。各列にはヘッダー行を必ず付け、略語を避けた日本語の列名にします。たとえば「数量」ではなく「入出庫数量(正負整数)」のように単位・型まで書くと、AIの解釈ミスが減ります。日時列は「2025-06-01 09:30」など統一フォーマットにします。また、1つのセルに複数の情報(例:「倉庫A 棚3段目」)を入れず、保管場所は建物・通路・棚番と列を分けておくと、フィルタリングと分析の両方に使えます。こうしたデータ整形は、将来的に専用システムへ移行するときのCSVインポートにも役立ちます。
Geminiへの具体的な依頼例
データの準備ができたら、目的に応じたプロンプトで分析を依頼します。抽象的な依頼より、分析期間・対象列・出力形式を指定した具体的な依頼の方が、精度の高い回答が得られます。
| 目的 | Geminiへの依頼例 |
|---|---|
| 滞留在庫の特定 | 「直近60日間で出庫が0件の商品をカテゴリ別に列挙して」 |
| 補充候補の優先順位 | 「現在庫が補充目安以下の商品を、出庫頻度の高い順に並べて」 |
| 出庫傾向の把握 | 「週別の出庫数量を商品カテゴリ別に集計して傾向を要約して」 |
| 棚卸差異の分析 | 「調整区分の行だけ抽出して、差異が多い商品と時期を整理して」 |
無料運用で注意すべき限界
スプレッドシート在庫管理は便利ですが、すべての現場に向くわけではありません。大量SKU、複数倉庫、ロット・期限管理、厳格な権限管理、外部システム連携が必要な場合は、専用システムやWMSを検討すべきです。まとめると、スプレッドシートは小規模な在庫保管、備品管理、EC出荷資材、試験運用に向いています。
入力ミスと関数破壊を防ぐ運用ルール
スプレッドシートは柔軟な反面、誰でも自由に編集できるため、数式の上書きやシート構造の変更が起きやすいです。これを防ぐ現実的な手段として、まず在庫一覧シートの数式が入った列を「シートの保護」機能でロックします。特定のGoogleアカウントのみ編集できるよう権限を絞ることで、担当者が誤って数式を消すリスクを大幅に減らせます。次に、入出庫履歴シートは「追記専用」ルールを徹底し、過去データの編集・削除を禁止します。また、月次でスプレッドシート全体のコピーをGoogle Driveに保存する習慣をつけると、万が一のデータ破損に備えられます。GASでこのバックアップも自動化できます。
スケールアップ時に移行しやすい設計にしておく
最初からシステム移行を見越した設計にしておくと、将来の移行コストを大きく下げられます。具体的には、商品マスタのJANコード・SKU列をCSVエクスポートしやすい形に保ち、独自キーを持たせることで、他システムへのインポート時のマッチングを容易にします。入出庫履歴も、タイムスタンプ・区分・数量の列構成さえ保てば、多くの在庫管理システムのインポート形式に合わせてCSV変換できます。本格的な物流運用へ広がる場合は、エクセル在庫管理の基本で整理した項目と照らし合わせながら、次のシステムへ移行できる形を整えておきましょう。
EC・物流現場での使い方

ECや小規模倉庫では、出荷資材・備品・少量在庫の確認から始めると失敗しにくくなります。最初から全商品を対象にすると、JAN登録や棚卸の負担が大きくなります。まずは欠品すると出荷が止まるものに絞り込み、仕組みを整えながら徐々に対象を広げていく進め方が現実的です。
出荷資材の在庫管理から始める理由
段ボール、緩衝材、梱包テープ、販促物など出荷資材は、欠品すると即座に出荷停止につながるため、最初に管理対象にする優先度が高い品目です。商品在庫よりも種類が少なく、JANコードまたは社内コードを付けやすいため、スプレッドシート管理を試験導入するのに適しています。補充目安は「1週間分の出荷量 × 2倍」を基準にすると、発注リードタイムに余裕が生まれます。出荷量が増え、在庫差異や保管スペースが課題になった場合は、ECフルフィルメントや倉庫料金の比較も検討できます。
ロケーション管理と棚卸を効率化するコツ
保管場所を「エリア-通路-棚段」の3階層で表すロケーションコードを導入すると、棚卸と商品の探索時間が大きく短縮されます。たとえば「A-01-03」はAエリア・1番通路・3段目を意味します。商品マスタのロケーション列にこのコードを入れ、在庫一覧でロケーション列を昇順にソートすると、棚卸のシートを物理的な棚の順番に並べられます。棚の前でシートを見ながら数えるだけで棚卸が完了するため、別途棚卸リストを印刷する手間が省けます。バーコードリーダーでJANをスキャンしながらスプレッドシートに数量を入力し、在庫一覧の集計値との差異をすぐに確認できる流れを作れると、棚卸精度が安定します。
30分で作る簡易テンプレートの手順
最短で始めるなら、4シートの作成・基本列の登録・SUMIFS集計までを30分の目標にし、その後AppSheetやGASを追加していく順番が効率的です。全機能を一度に揃えようとすると挫折しやすくなります。まず手を動かしてデータを入れ始め、使いながら自動化を加える進め方が、実際に定着しやすいです。
手順1 スプレッドシートを作りシートを4枚用意する
Googleスプレッドシートを新規作成し、シートタブを「商品マスタ」「入出庫履歴」「在庫一覧」「設定」に名称変更します。左からこの順番に並べると、運用中に参照する頻度の高いシートが左側に集まり、切り替えが楽になります。各シートの1行目に列ヘッダーを入力したら、ヘッダー行を行固定(表示 → 固定 → 1行)にしてスクロール時でも列名が見えるようにします。この時点でシート保護の設定も行い、在庫一覧の数式列を書き込み禁止にしておきます。
手順2 商品マスタにJANコードと補充目安を登録する
商品マスタに最初の商品データを数件入力し、JANコード列の入力規則で重複チェックを設定します。JANコードは13桁(または8桁)の数字で、先頭ゼロが落ちないよう列の書式を「書式なしテキスト」に設定しておきます。補充目安はまず概算の数値で構いません。運用しながら実際の消費ペースに合わせて調整するほうが、正確な値を出すために手を止めるより実務に合っています。商品マスタのサンプルは本記事末尾のテンプレートファイルを参照してください。
手順3 在庫一覧にSUMIFS式を入れて現在庫を自動表示する
在庫一覧の入庫合計・出庫合計列にSUMIFS式を入力し、現在庫 = 初期在庫 + 入庫合計 − 出庫合計 の計算式を確認します。まだ入出庫履歴が空の状態では合計がゼロになりますが、テスト用の入庫行を1件追加してSUMIFS式が正しく反応するかを確認します。ステータス列の条件付き書式で「要補充」のセルを赤背景にしておくと、一覧を開いたとき補充が必要な商品が視覚的にすぐわかります。数式が正しく機能したら、商品マスタに登録した全商品の行数分まで数式を引き伸ばします。
手順4 GASスクリプトを貼り付けて初期化する
拡張機能 → Apps Script を開き、Code.gsとSidebar.htmlの内容を貼り付けて保存・実行します。初回実行時にGoogleアカウントの承認が求められます。「詳細」→「〜に移動(安全でないページ)」→ 承認の順に進んでください。承認後、スプレッドシートのメニューに「在庫管理」が追加され、そこから「初期化(シート構成確認)」「JAN在庫検索」「在庫不足メール確認」を実行できるようになります。設定シートに通知先のメールアドレスを入れ、「在庫不足メール確認」を1度手動実行して通知が届くか確認してから、トリガーで毎日自動実行に切り替えます。
30分チェックリスト
- Googleスプレッドシートを新規作成し、4シートを用意する
- 商品マスタにJANコード・書式・重複チェックを設定する
- 5件以上の商品データを入力する
- 在庫一覧のSUMIFS式でテスト入出庫が反映されることを確認する
- AppSheetまたはGoogleフォームで入出庫入力を簡単にする
- GASコードを貼り付け、初期化と通知テストを実行する
まとめ:無料で始めるならスプレッドシート、伸びたらシステム化
在庫管理を無料で始めたいなら、Googleスプレッドシートは有効な選択肢です。4シート構成でデータを整え、AppSheetやGoogleフォームでJAN入力を簡単にし、GASで通知と検索を追加すれば、小規模な在庫保管やEC出荷資材の管理に十分対応できます。ただし、スマホカメラでJANを読むにはAppSheetなどの組み合わせが必要な点、関数破壊を防ぐシート保護が必要な点は運用前に設定しておきましょう。出荷件数やSKUが増えたら、スプレッドシートで整えた商品マスタと入出庫履歴をもとに、専用システムや外部倉庫への移行を検討しましょう。物流・保管・出荷の運用でお困りの場合は、以下までご相談ください。
お問い合わせ先
小規模な在庫管理であれば、Googleスプレッドシートだけでも始められます。商品マスタ、入出庫履歴、在庫一覧を分け、現在庫を関数で自動集計する構成にすると運用しやすくなります。AppSheetやGASと組み合わせるとJANスキャンや自動通知も追加できます。
Googleスプレッドシート単体ではスマホカメラによるJANスキャンはできません。AppSheetでJANコード列をスキャン可能にする、またはBluetoothバーコードリーダーを使う方法が現実的です。
GASを使うと、JAN検索サイドバー、入出庫登録、在庫不足メール通知、バックアップ自動化などを追加できます。スプレッドシートを簡易的な在庫管理ツールとして使いやすくできます。メール送信は1日500通が上限のため、通知対象は1通にまとめて送る実装にしてください。
Geminiは、出庫頻度が高い商品、補充目安を下回った商品、カテゴリ別の在庫傾向などを整理する補助に使えます。AIで分析しやすくするには、SKU、日時、区分、数量を列で分け、列ヘッダーを日本語で明確に付けておくことが重要です。
複数倉庫、数千SKU、ロットや期限管理、ECモール連携、厳格な権限管理が必要になったら移行の目安です。スプレッドシートで商品マスタと入出庫履歴をCSV出力できる形に整えておくと、移行がスムーズになります。
