棚卸業務を劇的に効率化!AppSheetでつくる在庫管理アプリとは?

今回は「棚卸し業務を劇的に改善する、在庫管理アプリ」についてご紹介していきます。

棚卸し業務は、在庫管理の根幹を支える重要な業務でありながら、多くの企業で「手間がかかる」「ミスが発生しやすい」といった課題を抱えているのが現状です。

特に、紙とExcelを併用した運用では、現場での記録、事務所での転記、差異の集計など、非常に煩雑な作業が発生してしまいます。

そうした現場の課題を解決する手段として、今回はバーコードやQRコードを活用しながら、Google AppSheetを活用した棚卸し支援アプリをご紹介します。

目次

本アプリの特徴

本アプリは、以下のような特徴を持っています。

  • バーコードスキャンでの棚卸入力に対応し、手書きや転記を一切不要!
  • 在庫情報の理論値と実在数の差分管理に対応
  • 複数拠点(店舗・支店・工場など)の在庫管理に柔軟に対応
  • 棚卸し作業の履歴や実施者情報の記録まで自動で行える今回のアプリは在庫管理の中でも「棚卸し業務」に特化しています。

まずは正確な棚卸しを行い、そこから横展開で入出庫や発注・在庫推移などへ拡張していけるよう、基軸となる設計を目指しています。

アプリの構成から運用方法までを、実際のデモ動画に沿ってご紹介していきます!

アプリ全体構成の説明

今回ご紹介するアプリは、「在庫管理」と「棚卸し」を効率的に行うために、以下の3つのテーブルをメインに構成されています。

アイテムマスター

管理対象となる商品の一覧(例:ねじ、材料、パーツなど)

ストアマスター

商品を保管している場所(例:本社、支店、工場)

在庫管理テーブル

各アイテムと各拠点の組み合わせで現在の在庫数を管理

このように、在庫管理テーブルを中心に、商品(アイテム)と保管場所(ストア)を紐付けて管理する構成とすることで、多拠点にわたる在庫の状況を一元管理できる設計となっています。

たとえば、同じ「ねじ」という商品が、

本社に50個、支店に30個、工場には在庫なし

というような状況も正確に把握・管理できるようになります。

また、拠点が追加された場合でも柔軟に対応可能なデータ設計となっており、今後の拡張性にも配慮されています。

在庫の登録と管理の流れ

アイテム(商品)の登録とバーコードの自動生成

まず最初に行うのは、アイテム(商品)の登録です。

商品名や品番などの基本情報を入力すると、QRコードが自動生成され、必要に応じてJANコード(バーコード)などの情報も追加できます。

この仕組みにより、現場でバーコードスキャンによる棚卸しが可能となり、作業の効率化が大幅に進みます。

ストア(拠点)の登録と選択機能

次に、商品を保管している場所となる「ストア(拠点)」を登録します。

この拠点情報は、「本社」「支店1」「工場1」など、実際の運用に合わせて柔軟に追加・管理が可能です。

アプリ内では、「店舗選択」機能を用意しており、作業を行う拠点を選ぶと、その拠点に関係する在庫情報のみが表示される仕組みになっています。

これにより、入力ミスの防止や作業者の負担軽減につながります。

在庫管理テーブルでの紐付けとデータ制御

登録された「アイテム」と「ストア」を紐付けて、在庫管理テーブルにて在庫数の登録を行います。

たとえば、新しく登録した「ねじ4」を「本社」に40個追加したい場合、

在庫管理テーブルに「ねじ4 × 本社 × 40個」

というレコードが作成されます。

既に登録済みの組み合わせは選択肢から除外されるよう制御されており、同じ商品が重複して登録されないよう工夫されています。

また、新しく追加された拠点(たとえば「工場1」)についても、アプリ側では自動的に選択肢に反映されるため、マスターデータとの整合性が常に保たれる設計となっています。

このように、在庫の基礎データ(アイテム・ストア・在庫数)をしっかりと構築し、データの正確性を保ちながら運用することで、次のステップである「棚卸し」もスムーズに行えるようになります。

セキュリティフィルターによる入力ミス防止

在庫管理を効率化する上で、「入力ミスの防止」は非常に重要なポイントです。

今回のアプリでは、AppSheetの「セキュリティフィルター機能」を活用することで、入力者が誤って別の拠点の在庫を操作してしまうといったリスクを防ぐ仕組みを取り入れています。

店舗ごとの在庫表示切り替え

アプリ内では、まず「店舗選択」の機能を用意しており、使用者が自身の担当拠点(例:本社・支店1・工場1)を選択します。

この選択に応じて、在庫の表示範囲が自動的に制限され、選択した拠点に関係のある在庫データのみが表示されるようになります。

たとえば「本社」を選択した場合、在庫管理テーブルに表示されるのは本社に関連するデータだけであり、支店や工場のデータは一切表示されません。

この制御によって、誤って他拠点の在庫を編集・棚卸ししてしまうリスクが限りなく低減されます。

また、新しく拠点を追加した場合でも、店舗選択の選択肢に自動で反映されるため、常に最新の拠点情報が利用可能です。

セキュリティフィルターの活用

「店舗選択」フィルター機能を活用することで、

本社を選べば、本社の在庫のみが表示
支店1を選べば、支店1の在庫だけが表示
工場を新たに追加すれば、自動的に選択肢に出現

といったように、店舗ごとの在庫管理を簡潔に行える構成になっています。

在庫から積み上げ式で棚卸し!棚卸し2つの方法

在庫管理アプリの中核機能である「棚卸し」については、実際の業務に合わせて選択できるよう、2通りの方法を用意しています。

積み上げ式棚卸し(在庫テーブル起点)

こちらの方式は、実際の在庫を目視やスキャンで確認しながら、「一つひとつ記録していく」スタイルの棚卸しです。

運用の流れは以下の通りです。

  1. バーコードをスキャンして対象の商品を特定
  2. 棚卸し期(例:2025年度末など)を入力
  3. 実際に数えた数(実数)を入力
  4. 理論在庫との乖離があれば自動で差分を表示
  5. 「確認済み」ボタンで棚卸しを確定し、在庫管理テーブルに反映

現場でスマートフォンを使用してバーコードをスキャンすれば、対象商品が瞬時に検索され、入力画面に遷移します。
棚卸しを担当したユーザー名や時刻なども自動記録され、履歴管理にも対応しています。

また、「確認済み」ボタンはダブルチェック運用にも対応しており、別の管理者が確認を行うことで、棚卸し結果を正式に反映する仕組みです。

逆算式棚卸し(棚卸しテーブル起点)

もう一つの方式は、あらかじめ対象データを抽出・準備しておき、その一覧に基づいて棚卸しを進める「逆算型」です。

大量の在庫を一斉に確認したい場合や、特定の品目のみを対象としたい場合に非常に有効です。

運用の流れは以下のようになります。

  1. 「棚卸しデータ作成」ボタンを押して対象データをスプレッドシートに出力
  2. 出力されたデータを CSVファイルとしてダウンロード
  3. CSVファイルをアプリに再アップロードして 棚卸しテーブルに読み込み
  4. スキャンや検索を行い、実数を入力
  5. 確認済み処理で在庫テーブルに反映

この方法では、事前に全体の棚卸し対象リストが用意できるため、作業の進捗管理や担当割り振りもスムーズになります。

さらに、棚卸しが未実施のデータと実施済みのデータが区別できるように、アイコンやフィルター表示の工夫も施しています。

棚卸し履歴の確認と出力

棚卸し作業が完了した後は、その結果を記録・活用するフェーズに移行します。

今回のアプリでは、棚卸し内容が履歴として自動記録され、確認者や確認時間も保持されるため、監査や報告の際にも活用できます。

また、必要に応じて以下のような帳票出力も可能です。

「在庫一覧データ作成」ボタンによるスプレッドシート出力
・出力時点の日付がファイル名・内容に自動記録される

この出力機能により、紙ベースの報告が必要な現場にも対応可能であり、現時点の在庫状況を簡単に外部共有できるようになっています。

もちろん、アプリ内でも在庫数の確認は可能ですが、履歴の保存や外部提出用には、こうした帳票出力の仕組みが非常に役立ちます。

アプリ開発の工夫と技術ポイント

今回の棚卸しアプリでは、現場での運用を想定したうえで、処理速度・操作性・保守性に配慮した設計を意識しています。

ここでは、主な技術的な工夫についてご紹介します。

Automationによる在庫数の自動反映

棚卸し作業の完了後、「確認済み」ボタンを押すと、実際に数えた数量(実数)が在庫管理テーブルに反映される仕組みとなっています。

この処理は、AppSheetの「Automation」機能によって自動化されており、次のような流れで構成されています。

  1. 「確認済み」ボタンが押される
  2. 対象の棚卸しレコードを条件で絞り込み(在庫IDが一致、かつ確認未済)
  3. 棚卸しテーブルに記録された「実数」を在庫テーブルへ反映

この自動反映により、ユーザーが手動で在庫数を更新する必要がなくなり、ミスの防止や作業効率の向上が実現しています。

バーチャルカラムを極力使用しない設計

AppSheetでは非常に便利な「バーチャルカラム(仮想列)」がありますが、本アプリでは極力使用を控えています

理由としては以下の通りです。

大量データ(例:アイテムが5,000件など)の際にアプリ速度が低下しやすい
・バーチャルカラムの再計算が頻発すると、操作感に遅延が生じやすくなる
・過去のユーザー事例で、SELECT関数の多用によりアプリが重くなったとの声があった

そのため、本アプリでは リアルカラム(実列)を活用し、必要最小限の計算にとどめる構成を採用しています。

これにより、軽量かつ安定的に動作するアプリとなっています。

データ構造とリレーションの設計思想

本アプリでは、データ同士の関係(リレーション)を明確に整理することで、拡張性と整合性を両立した構造を実現しています。

基本的にアイテムマスター(商品情報)、ストアマスター(保管場所)、在庫管理テーブル(アイテム×拠点ごとの在庫数を管理)、棚卸しテーブル(在庫ごとの棚卸し履歴を記録)で構成されています。

特に重要なのが、棚卸しテーブルが在庫管理テーブルを参照しているという点です。

これにより、過去の在庫数や拠点情報と、棚卸しの実施結果を正確に紐付けることができます。

この構造にすることで、

  1. 在庫ごとの履歴管理が容易になる
  2. 拠点ごとの過去データとの整合性がとれる
  3. 他のアプリ(発注管理や仕入れ管理など)との連携がしやすくなる

といった3つのメリットが得られます。

このような設計思想に基づくデータ構造を採用することで、実際の業務にフィットするアプリが構築できるのです。

業務アプリのまとめ

今回ご紹介した在庫棚卸しアプリは、Google AppSheetのノーコード開発機能を活用し、業務改善に直結する実践的な内容となっています。

手作業や紙・Excelに頼っていた棚卸し業務も、このアプリを導入することで、

  • 棚卸し作業の大幅な効率化
  • 入力ミスや集計ミスの削減
  • リアルタイムでの在庫管理
  • 作業者や管理者の履歴把握・証跡管理

が可能となります。

業務アプリ導入にあたって

本アプリは「基軸アプリ」として設計されているため、入出庫管理・発注管理・仕入管理などの横展開も非常にしやすい構成です。

棚卸し業務を改善する、在庫管理アプリの仕組みができることで、もう紙の管理やExcelは一切不要になります。

本アプリを「自社用にカスタマイズしたい」「自社の業務に合うか相談したい」方は、ぜひお気軽にお問い合わせください。

当社ではこのテンプレートの共有・開発代行・社内の内製化支援まで対応する「AppSheet Magic」サービスを提供しています。

業務に沿った高機能なアプリで、「業務の効率化をしたい」「紙やExcelから脱却したい」といったお悩みも当社で解決していきます。

アップシートを検討中の企業様へ

Googleアップシートで
これまでの業務がガラリと変わります

ノーコードの可能性を広げることで
圧倒的な業務の効率化を実現する

目次