Excelで在庫管理を自動化するVLOOKUPとIFの応用

Excelで在庫管理を自動化するVLOOKUPとIFの応用 IT

なぜ在庫管理は「Excel自動化」で差がつくのか(手作業のムダをなくす)

在庫管理って、地味だけどミスすると一気に信用を落とす仕事です。足りなければ納期に響くし、余れば保管コストや廃棄につながる。しかも20代のサラリーマンだと、引き継ぎで「とりあえずこのExcel見て」と渡されて、気づけば手入力・コピペ・目視チェックのループにハマりがちです。

ここで効いてくるのが「Excel自動化」。といってもマクロやVBAの話ではなく、VLOOKUPとIFだけで仕組み化する方法です。これができると、あなたの在庫管理は次の3点で一気に“強く”なります。

  • 入力がラクになる:品番を入れたら品名・単価・在庫数が自動で埋まる
  • 判断が速くなる:「発注」「注意」「OK」が自動で表示され、迷いが減る
  • ミスが減る:転記ミス・見落とし・確認漏れを仕組みで潰せる

逆に、手作業中心の在庫管理はムダが増えます。例えば、

  1. 別シートのマスタから品名を探して転記
  2. 在庫数を見て「少ないかも」と感覚で判断
  3. 担当や日によって基準がブレる
  4. 締め日にまとめて確認して、漏れが発覚する

この状態だと、作業時間だけでなく心理的な負担も大きいんですよね。「間違ってたらどうしよう」「確認し直す時間がない」みたいな不安が積み重なる。Excel自動化の価値は、単なる時短ではなく“迷い”と“ふり返り作業”を消すことにあります。

自動化の考え方はシンプルです。Excelを「書き込む場所」と「参照する場所」に分けます。

  • マスタ:品番、品名、単価、発注点(基準)などの固定情報を管理
  • 入力表(運用表):日々の入出庫数や棚卸数など変動する情報を入力

この2つをつなぐのがVLOOKUP。さらに、在庫数と発注点を比べて「どの状態か」を判定するのがIFです。つまり、

VLOOKUPで“探す”を自動化し、IFで“判断”を自動化する。

この2段階を押さえるだけで、在庫管理は「頑張ってミスしない」から「ミスしにくい形にする」へ変わります。次章では、まずVLOOKUPを使って在庫データを一発参照できるようにするための基本設計(マスタと入力表の作り方)を具体的に作っていきます。

VLOOKUPで在庫データを一発参照する基本設計(マスタと入力表の作り方)

VLOOKUPをうまく使うコツは、関数そのものより先に「どの情報をマスタに置き、どれを入力表で運用するか」を決めることです。ここが曖昧だと、参照先がズレたり、列が増えた瞬間に壊れたりします。

おすすめはシートを2枚に分ける構成です。

  • マスタ(固定情報):品番/品名/規格/単価/発注点など「基本変わらない」もの
  • 入力表(運用):日付/品番/入庫数/出庫数/実在庫(棚卸)など「日々変わる」もの

まずマスタは、1行目に見出し、2行目以降にデータを入れます。列順はシンプルに。

A:品番 B:品名 C:単価 D:発注点

ポイントは品番を左端(A列)に置くこと。VLOOKUPは「検索列が範囲の一番左」である必要があるため、品番を真ん中に置くと構造的に不利になります(後から修正が面倒)。

次に入力表を作ります。こちらも見出しを固定して、例としては下のような形。

A:日付 B:品番 C:品名(自動) D:単価(自動) E:入庫 F:出庫

ここで、品番(B列)を入力したら、品名と単価が勝手に出るようにします。品名(C2)に入れる式は例えばこうです。

=VLOOKUP(B2,マスタ!$A:$D,2,FALSE)

意味は「B2の品番をマスタA:Dから探して、2列目(品名)を返す。完全一致で探す」です。単価(D2)は列番号を3に変えるだけ。

=VLOOKUP(B2,マスタ!$A:$D,3,FALSE)

このとき、参照範囲は$で固定しておくのが実務では必須です。固定しないと、下にコピーしたら参照範囲がズレて、ある日突然「変な品名が出る」事故が起きます。

もう一段だけ、壊れにくくするならマスタ範囲は列全体($A:$D)ではなく、テーブル化して範囲名として持つのがおすすめです。マスタを選択してCtrl + Tでテーブル化し、テーブル名を「Mst」などにしておけば、列が増えても参照が追従します。

=VLOOKUP(B2,Mst,2,FALSE)

最後に、入力の品質も設計で担保します。入力表の品番(B列)はデータの入力規則でマスタの品番リストから選べるようにすると、打ち間違いが激減します。こうして「品番を入れるだけ」で、品名・単価が自動で埋まる状態が完成。次章では、この参照した情報(在庫数や発注点)を使って、IFで「発注・注意・OK」を自動判定する仕組みを作っていきます。

IFで「発注・注意・OK」を自動判定する仕組み(閾値と条件分岐)

VLOOKUPで「品名・単価・発注点」まで引けるようになると、次にやりたいのは判断の自動化です。在庫管理がしんどい原因って、入力よりも「で、これ発注いる?まだ大丈夫?」の迷いなんですよね。ここをIFでルール化すると、毎日同じ基準でブレなくなります。

まず考えるべきは、判定の閾値(しきいち)を決めること。今回はシンプルに3段階にします。

  • 発注:在庫が発注点以下(今すぐ)
  • 注意:発注点より上だが、余裕が少ない(そろそろ)
  • OK:まだ余裕あり

入力表に列を追加して、在庫数と判定を見える化しましょう。例として、入力表をこんな形にします。

A:日付 B:品番 C:品名 D:単価 E:入庫 F:出庫 G:現在庫 H:発注点 I:判定

「現在庫」は運用次第ですが、ここでは最小構成として入庫−出庫で当日の増減を見える化するイメージにします(継続在庫にしたい場合は5章で運用ルールに落とし込みます)。G2の例:

=E2-F2

そして発注点(H2)は、2章で作ったマスタからVLOOKUPで引いてきます。

=VLOOKUP(B2,マスタ!$A:$D,4,FALSE)

準備ができたら、いよいよ判定列(I2)にIFを入れます。ポイントは条件を上から順に「厳しい順(危険な順)」で書くこと。まずは「発注」を先に判定します。

=IF(G2<=H2,"発注",IF(G2<=H2*1.2,"注意","OK"))

この式の意味はこうです。

  • 現在庫(G2)が発注点(H2)以下 → 発注
  • そうではないが、現在庫が発注点の1.2倍以下(=余裕20%以内) → 注意
  • それ以外 → OK

「注意」ラインの1.2倍は例なので、業務に合わせて調整してください。たとえば納期が長い商材なら1.5倍、回転が速いなら1.1倍など、現場の感覚を数字に落とし込むのがコツです。ここが曖昧なままだと、結局目視判断に戻ってしまいます。

もう一段、実務っぽくするなら、判定結果を見逃さない工夫もセットにします。判定列(I列)に条件付き書式をかけて、

  • 「発注」=赤
  • 「注意」=黄
  • 「OK」=緑

のように色分けすれば、表を開いた瞬間に優先順位が見えます。IFで文字を出し、Excelの表示機能で強調する。これだけで確認作業がかなり短くなります。

ここまでで「品番を入れる」→「発注点を参照」→「発注・注意・OKを自動判定」という流れが完成しました。次章ではこの仕組みをさらに強くするために、VLOOKUP×IFでエラー処理(#N/A対策)未登録品番の扱いなど、現場でハマりがちなポイントをまとめて潰していきます。

VLOOKUP×IFの応用テクニック集(エラー処理・未登録対策・重複/欠品チェック)

2〜3章の仕組みは便利ですが、実務で詰まるのはだいたい「例外」です。品番が未登録だったり、空欄行が混ざったり、同じ品番を二重入力していたり。ここを放置すると、表が#N/Aだらけになって一気に使いにくくなります。そこで4章は、VLOOKUPとIFを組み合わせて“壊れにくい在庫表”にする小技をまとめます。

1) #N/Aを消して見た目と判断を安定させる(エラー処理)

品番がマスタに存在しないとVLOOKUPは#N/Aになります。これがあると判定(IF)も連鎖的におかしくなるので、先にガードします。

例:品名(C2)を「未登録」にする

=IFERROR(VLOOKUP(B2,マスタ!$A:$D,2,FALSE),"未登録")

単価(D2)や発注点(H2)も同様にIFERRORで包むのがおすすめです。特に不具合が出やすい発注点は「空欄」にしておくと後段の判定が組みやすいです。

=IFERROR(VLOOKUP(B2,マスタ!$A:$D,4,FALSE),"")

2) 空欄行をスルーして、余計な表示を出さない(未入力対策)

入力表には、途中の空行や「あとで入れる」行が必ず混ざります。品番が空なのにVLOOKUPやIFが動くと、判定が汚れます。そこで「品番が空なら空欄」を最上段に置きます。

例:判定(I2)を空欄制御つきにする

=IF(B2="","",IF(C2="未登録","要マスタ追加",
IF(G2<=H2,"発注",IF(G2<=H2*1.2,"注意","OK"))))

ポイントは、未登録(マスタ未整備)を先に弾くこと。これで「在庫が少ないのか、そもそも品番が間違っているのか」が混ざりません。

3) 同じ品番の二重入力を見つける(重複チェック)

発注表や棚卸表でありがちなのが、同じ品番を別行で二重に入力して集計が狂う事故。IFで“重複警告”を出せるようにしておくと強いです。

例:重複チェック列(J2)

=IF(B2="","",IF(COUNTIF($B:$B,B2)>1,"重複あり",""))

「重複あり」が出たら、どの行がダブっているかを確認して統合するだけ。締め日に泣かないための保険です。

4) 欠品(マイナス在庫)を即アラート(欠品チェック)

出庫が先に立ったり、入力ミスで出庫数が大きすぎたりすると在庫がマイナスになります。これは「発注」より危険なので、判定の最優先で拾います。

例:判定(I2)に欠品条件を追加

=IF(B2="","",
IF(C2="未登録","要マスタ追加",
IF(G2<0,"欠品",
IF(G2<=H2,"発注",IF(G2<=H2*1.2,"注意","OK")))))

欠品は条件付き書式で濃い赤にするなど、発注より強めに目立たせると現場で機能します。

5) 「マスタ修正が必要な行」だけ拾う(未登録の抽出)

未登録を「未登録」と表示できたら、次はそれを潰す運用に繋げます。入力表側で「要マスタ追加」と出た行だけフィルタすれば、マスタ整備の漏れがなくなります。

コツは、未登録=人がやるべき作業、と割り切ってメッセージを固定化しておくこと。表のエラーを消すだけでなく、次のアクションまで誘導できます。

ここまでの応用を入れると、「参照できない」「空欄がうるさい」「二重入力でズレる」「欠品を見落とす」といった、Excel在庫管理の典型的な落とし穴を先回りで潰せます。次章では、この仕組みを“完成形”として回すために、運用ルール(更新のコツ、つまずきポイント、改善案)まで落とし込みます。

実務で使える完成形へ(運用ルール、更新のコツ、つまずきポイントと改善案)

ここまで作った仕組みは、関数としてはだいたい完成です。あとは「日々の運用で壊れない形」に落とし込めるかどうかが勝負。Excel在庫管理が続かない原因は、関数の難しさより更新ルールが曖昧で、いつの間にか数字が信用できなくなることです。

運用ルール:更新頻度と入力の順番を固定する

おすすめは、入力表を「1行=1品番の当日実績」に寄せて、更新頻度を決め打ちすることです。

  • 毎日:入庫数・出庫数を入力(品番→数量の順)
  • 週1:判定列で「発注/欠品/要マスタ追加」をフィルタして潰す
  • 月1:棚卸で実在庫を確認し、ズレを補正

入力の順番も地味に重要で、品番→数量を徹底すると、VLOOKUP結果(品名・発注点)が先に埋まり、入力ミスをその場で検知しやすくなります。

更新のコツ:マスタは「増やすだけ」、列の追加は右端に

マスタは「差し替え」より「追記」が安全です。履歴が残るので、後から「いつ変えた?」が追えます。単価や発注点を変える場合も、まずは変更理由をメモ列に残す運用にするとトラブルが減ります。

また、入力表・マスタ表ともに、列を追加するなら右端に追加が基本。途中に列を挿入すると、VLOOKUPの列番号(2列目、3列目…)がズレて事故ります。どうしても列を増やすなら、2章で触れたようにテーブル化(Ctrl+T)+列見出し管理を前提にしておくと安全です。

つまずきポイント:だいたいこの3つ

  1. 品番の形式ブレ:半角/全角、先頭ゼロ落ち(00123→123)で未登録扱いになる。品番列は文字列に統一し、入力規則で選択式に。
  2. 在庫の定義が曖昧:「現在庫」が入庫−出庫の当日差分なのか、繰越込みなのかが混ざる。どちらかに統一し、見出しで明記する。
  3. 未登録を放置:「要マスタ追加」が残ったまま運用すると、判定の信頼性が下がる。週1で必ずゼロにするルールに。

改善案:次の一手は「繰越在庫」と「見える化」

日々の差分管理に慣れたら、実務では繰越在庫にするとさらに強いです。イメージとしては「前日の在庫+入庫−出庫」。前日行を参照する形にして、在庫が“つながる”ようにします(運用が複雑になるので、まずはルール整備が先)。

最後に、表を開いた瞬間にやるべきことが分かる状態が理想です。フィルタで

  • 欠品だけ表示 → 最優先対応
  • 発注だけ表示 → 発注書作成
  • 要マスタ追加だけ表示 → 仕組みの穴を塞ぐ

この“作業導線”まで作れると、Excel在庫管理は単なる表ではなく、仕事を前に進めるツールになります。関数はもう入っているので、あとは運用で勝てます。

コメント

NewsTowerをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む