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

Excelで在庫管理を自動化するVLOOKUPとIFの応用 IT
  1. なぜ在庫管理はExcelで“自動化”すると楽になるのか(よくある手作業ミスも整理)
    1. 手作業在庫管理で起きがちなミス
    2. Excelで自動化すると“楽”になるポイント
  2. VLOOKUPの基本復習(在庫表×マスタをつなぐ設計とコツ)
    1. まずは設計:マスタは「1行1商品」、キーは左端
    2. 基本の式:商品名を引っ張る
    3. コツ①:範囲は絶対参照($)で固定してコピペ耐性を上げる
    4. コツ②:列番号は「どの列を返すか」の設計そのもの
    5. コツ③:#N/Aが出たら「品番の揺れ」を疑う
  3. IFの基本復習(在庫ステータス判定を自動化する考え方)
    1. IFは「条件→OKならA/ダメならB」を決める関数
    2. 条件を増やすなら「優先順位」を決める(ネストIFの基本)
    3. 在庫判定の考え方:入力は数字、表示は言葉(人が読むのは結果)
    4. IFを使う上での“つまずき”を先回りして潰す
  4. VLOOKUP×IFの応用テクニック(在庫切れ警告/発注点/エラー処理まで)
    1. 発注点をマスタ化して「人が決める部分」を減らす
    2. VLOOKUP×IFで「在庫切れ/要発注/OK」をまとめて判定
    3. #N/Aを放置しない:IFERRORで「見つからない」を管理する
    4. 在庫切れ“警告”を強くする:表示を短く、見落としにくく
  5. 運用で失敗しない仕上げ(入力ルール・見やすい表・保守しやすい改善案)
    1. ①入力ルールは「品番・数量だけ」に絞って固定する
    2. ②見やすい表は「異常だけ目立つ」が正解
    3. ③保守しやすくする改善案:テーブル化+名前で壊れにくく
    4. ④「引き継ぎ」で死なないための最低限のメモを残す

なぜ在庫管理はExcelで“自動化”すると楽になるのか(よくある手作業ミスも整理)

在庫管理がしんどい理由は、作業量そのものよりも「同じことを何度も確認して、同じミスを繰り返しやすい構造」にあります。特に20代の会社員だと、急な依頼で在庫表を更新したり、締め前に数字を合わせたりして、時間がない状態で手入力→確認→修正のループにハマりがちです。Excelで“自動化”しておくと、このループをそもそも発生しにくくできます。

ここでいう自動化は、マクロのような大げさな話ではありません。VLOOKUPで「参照して埋める」IFで「条件で判定して色分け・警告する」。この2つを軸にすると、在庫管理で起きやすい事故の多くを潰せます。

手作業在庫管理で起きがちなミス

  • 商品名・型番の転記ミス:似た品番をコピペして間違える/全角半角の揺れで別商品扱いになる
  • 単価・発注先の更新漏れ:マスタは更新したのに、在庫表側の古い情報が残る
  • 在庫数の計算ミス:入庫・出庫の足し引きを別セルでやって、どこかで数式がズレる
  • 在庫切れの見落とし:「0」なのに気づかず出荷予定を入れる/発注点を超えているのに放置
  • #N/Aの放置:参照に失敗しているのに気づかず、集計に混ざって数字が崩れる

これらの共通点は、「人が判断・転記する場面」が多いほどミスが増えること。逆に言えば、Excelに任せられる部分を増やすほど、あなたの作業は軽くなります。

Excelで自動化すると“楽”になるポイント

実務で効くのは、次の2つです。

  1. 1つの正解(マスタ)を参照する設計
    商品名、カテゴリ、単価、発注先など「変わりうる情報」をマスタ表に集約し、在庫表は品番などのキーを入力すれば自動で引っ張る。これで更新漏れが激減します。
  2. 判断をルール化して自動表示する
    「在庫が発注点以下なら“要発注”」「0なら“在庫切れ”」のように、判断基準をIFで式にする。見るべき行だけ浮かび上がるので、確認コストが下がります。

たとえば、在庫表に手で「要発注」と入力していると、基準が人によってブレたり、忙しい日に更新し忘れたりします。でも、IFで判定しておけば在庫数を更新した瞬間にステータスも自動更新されます。つまり「正しく入力するべき箇所」を最小にできるわけです。

このあと2章・3章でVLOOKUPとIFをサクッと復習し、4章で「在庫切れ警告」「発注点」「エラー処理」まで一気に実務形に落とし込みます。まずは1章の結論として、在庫管理の自動化は作業を早くするというより、ミスる余地を消してラクになる——ここが一番の価値です。

VLOOKUPの基本復習(在庫表×マスタをつなぐ設計とコツ)

在庫管理をExcelで“自動化”する第一歩は、在庫表と商品マスタを「キー(品番など)」でつなぐことです。ここができると、商品名・カテゴリ・単価・発注先といった情報を、在庫表にいちいち転記しなくて済みます。つまり入力するのは原則「品番」だけ。あとはVLOOKUPが勝手に埋めてくれます。

まずは設計:マスタは「1行1商品」、キーは左端

VLOOKUPは「左から右へ探して返す」関数なので、商品マスタは次のように作るのが鉄則です。

  • 1列目:品番(キー)
  • 2列目:商品名
  • 3列目:カテゴリ
  • 4列目:単価
  • 5列目:発注先

そして在庫表側には「品番」列を用意し、各列にVLOOKUPで必要情報を呼び出します。ここでありがちな失敗が、マスタの途中に空白列がある品番が左端じゃない同じ品番が重複している、の3つ。VLOOKUP前提なら、マスタは“きれい”に整えるのが最短です。

基本の式:商品名を引っ張る

例として、在庫表のA2に品番があり、商品マスタが「Master」シートのA:Eにある場合。商品名(2列目)を返す式はこうです。

=VLOOKUP(A2, Master!$A:$E, 2, FALSE)
  • A2:探す値(品番)
  • Master!$A:$E:探す範囲(マスタ表)
  • 2:返したい列番号(商品名は2列目)
  • FALSE:完全一致(品番検索は基本これ一択)

ポイントは、最後の引数は必ずFALSE。TRUE(近似一致)にすると、マスタが並び替わっただけで別の商品を拾う事故が起きます。在庫管理でこれは致命傷なので、迷ったらFALSE固定でOKです。

コツ①:範囲は絶対参照($)で固定してコピペ耐性を上げる

在庫表で式を下にコピーするなら、マスタ範囲は固定しておきたいところ。上の例のように$A:$E$A$2:$E$1000の形にすると、コピーしても参照がズレません。逆にここを相対参照のままにすると、下へコピーした瞬間に参照範囲がずれて、突然#N/Aが増える…という“あるある”が起きます。

コツ②:列番号は「どの列を返すか」の設計そのもの

VLOOKUPの3つ目(列番号)は、マスタ側の列構成に依存します。たとえば単価なら4列目なので、

=VLOOKUP(A2, Master!$A:$E, 4, FALSE)

という感じ。ここで意識したいのは、マスタに列を追加すると列番号がズレること。運用中に「カテゴリ列を増やした」などで列順が変わると、昨日まで単価だったのに今日から発注先が返ってくる、みたいな事故が起きます。対策は2つ。

  • マスタの列順は極力変えない(増やすなら右端へ)
  • マスタをテーブル化して列管理を安定させる(※5章で触れます)

コツ③:#N/Aが出たら「品番の揺れ」を疑う

VLOOKUPで最もよく見るエラーが#N/A(見つからない)です。これは「マスタに存在しない」以外にも、実務だと次が原因になりがち。

  • 全角・半角が混ざっている
  • 品番の前後に空白が入っている(コピペで混入)
  • 数字の品番が「文字列」として入っている

2章ではエラー処理までは踏み込みませんが、ここを理解しておくと後の章で効きます。VLOOKUPは正直なので、キーがブレると容赦なく見つけられません。だからこそ、在庫表で入力する項目を品番に絞り、品番の入力ルールを固めるのが“自動化”の土台になります。

次の3章では、こうして引っ張ってきた情報と在庫数を使って、IFで在庫ステータス(要発注/在庫切れなど)を自動判定する考え方を整理していきます。

IFの基本復習(在庫ステータス判定を自動化する考え方)

VLOOKUPで「商品情報を自動で埋める」土台ができたら、次はIFで在庫の状態(ステータス)を自動判定します。ここが自動化できると、在庫表を眺めて「この商品は発注必要かな?」と毎回考える時間が減り、見るべき行だけが浮かび上がるようになります。

IFは「条件→OKならA/ダメならB」を決める関数

IFの基本形はこれだけです。

=IF(条件, 条件がTRUEのとき, 条件がFALSEのとき)

在庫管理でよく使う条件は、だいたい次の2つに集約されます。

  • 在庫数が0か?(在庫切れ)
  • 在庫数が少ないか?(要発注)

例えば在庫表で「現在庫」がE2に入っているなら、まずは在庫切れ判定から。

=IF(E2=0,"在庫切れ","")

「0なら在庫切れ、それ以外は空欄」という最小構成です。空欄にしておくと、異常な行だけ文字が出るので一覧性が上がります。

条件を増やすなら「優先順位」を決める(ネストIFの基本)

実務では「在庫切れ」と「要発注」を同時に判定したくなります。このとき大事なのがより重大なものを先に判定すること。基本は、

  • 在庫切れ(0)
  • 要発注(発注点以下)
  • 問題なし

の順番です。

発注点(例えばF2)も在庫表に持っている想定なら、式はこう書けます。

=IF(E2=0,"在庫切れ",IF(E2<=F2,"要発注","OK"))

これがいわゆる「ネスト(入れ子)のIF」。IFの中にIFを入れて、条件を段階的に増やしています。先にE2=0を見ているので、在庫が0のときに「要発注」と表示されてしまう事故も防げます(0はもちろん発注点以下なので、順番が逆だとミスります)。

在庫判定の考え方:入力は数字、表示は言葉(人が読むのは結果)

在庫表を運用するときのコツは、人が手で入れるのは「数量」だけ、判断は式に寄せることです。「要発注」「OK」を手入力にすると、忙しい日に更新し忘れて即崩れます。

おすすめは、ステータス列を1本作って、そこにIFで結果を集約すること。例えば次のような列構成にしておくと運用が楽です。

  • A列:品番(入力)
  • B〜D列:商品名・カテゴリ・単価(VLOOKUP)
  • E列:現在庫(入力 or 入出庫から計算)
  • F列:発注点(固定値 or マスタ参照)
  • G列:ステータス(IF)

IFを使う上での“つまずき”を先回りして潰す

最後に、初歩だけどハマりやすいポイントを整理します。

  • 文字はダブルクォーテーション:在庫切れは "在庫切れ"。クォーテーションがないとエラーになります。
  • 空欄を返すなら “”:何も表示したくないときは空白ではなく "" を返す。
  • 条件は「比較」=<=>= を使って判断する(例:E2<=F2)。

ここまでで「在庫数からステータスを自動判定する」準備はOKです。次の4章では、このIFをVLOOKUPと組み合わせて、在庫切れ警告/発注点判定/#N/Aなどのエラー処理まで含めた“実務で崩れない”形に仕上げていきます。

VLOOKUP×IFの応用テクニック(在庫切れ警告/発注点/エラー処理まで)

2章で「マスタ参照」、3章で「在庫ステータス判定」を作れました。4章ではこの2つを合体させて、ミスが起きても表が崩れない“実務仕様”にします。ポイントは、①発注点もマスタから引く、②判定を一発で返す、③#N/Aを握りつぶして運用停止を防ぐ、の3つです。

発注点をマスタ化して「人が決める部分」を減らす

在庫表に発注点(しきい値)を手入力すると、担当者ごとにブレたり、更新忘れが起きます。おすすめは、商品マスタに発注点列を追加し、VLOOKUPで在庫表へ自動反映すること。

=VLOOKUP($A2, Master!$A:$F, 6, FALSE)

(例:Masterの6列目が発注点)

VLOOKUP×IFで「在庫切れ/要発注/OK」をまとめて判定

在庫表のA2が品番、E2が現在庫、F2が(VLOOKUPで引いた)発注点だとします。ステータス列(G2)はこう書くと現場で強いです。

=IF($A2="","",IF($E2=0,"在庫切れ",IF($E2<=$F2,"要発注","OK")))
  • 品番未入力なら空欄(余計なエラー表示を出さない)
  • 優先順位は「在庫切れ → 要発注 → OK」(3章の考え方を踏襲)

#N/Aを放置しない:IFERRORで「見つからない」を管理する

実務で一番怖いのは、VLOOKUPが失敗して#N/Aが出て、集計や判定が連鎖的に崩れることです。そこで、マスタ参照系のセルはIFERRORで包むのが定石です。

=IFERROR(VLOOKUP($A2, Master!$A:$F, 2, FALSE),"品番未登録")

商品名などに「品番未登録」と出れば、入力ミスかマスタ未更新にすぐ気づけます。ステータス判定側も、発注点が取れない状態を考慮しておくと堅くなります。

=IF($A2="","",
 IFERROR(
  IF($E2=0,"在庫切れ",IF($E2<=$F2,"要発注","OK")),
 "マスタ要確認"
 )
)

在庫切れ“警告”を強くする:表示を短く、見落としにくく

ステータスは長文にしないのがコツです。おすすめは「NGだけ目立たせる」設計。たとえばOKは空欄にして、異常だけを出します。

=IF($A2="","",
 IFERROR(
  IF($E2=0,"在庫切れ",IF($E2<=$F2,"要発注","")),
 "マスタ要確認"
 )
)

これで一覧を見たときに、文字がある行=対応が必要な行になります。あとは5章で触れる条件付き書式(色分け)と組み合わせると、さらに見落としが減ります。

運用で失敗しない仕上げ(入力ルール・見やすい表・保守しやすい改善案)

VLOOKUP×IFで「自動判定」まで作れても、運用が崩れる原因はだいたい入力のブレ表のメンテ不能です。ここでは、作った仕組みを“現場で続く形”に仕上げます。

①入力ルールは「品番・数量だけ」に絞って固定する

在庫表で人が触るセルが増えるほど、ミスは増えます。おすすめは入力欄を2つに限定すること。

  • 品番:プルダウン(データの入力規則)でマスタから選択
  • 現在庫:0以上の整数のみ(マイナス禁止)

「データの入力規則」で現在庫に整数・最小値0を設定しておけば、誤って-1や文字を入れる事故を防げます。品番も手入力だと全角半角や余計なスペースで#N/Aの温床になるので、可能なら選択式に寄せましょう。

②見やすい表は「異常だけ目立つ」が正解

4章のステータスを活かすなら、条件付き書式で在庫切れ/要発注/マスタ要確認だけ色を付けます。OK(空欄)は無色のままがコツです。

  • セルの値が「在庫切れ」→背景:赤系
  • セルの値が「要発注」→背景:黄系
  • セルの値が「マスタ要確認」「品番未登録」→背景:グレー系

これで一覧確認のスピードが上がり、「確認したつもり」を減らせます。さらに列の順番も、左から「入力→自動→判定」に揃えると迷いません。

③保守しやすくする改善案:テーブル化+名前で壊れにくく

運用で一番つらいのが「行が増えたら式が途切れる」「列を増やしたらVLOOKUPの列番号がズレる」です。対策は2つ。

  1. マスタと在庫表をテーブル化(Ctrl+T)して、行追加に強くする
  2. 列追加が多いなら、VLOOKUP前提の列順は固定(増やすなら右端)

テーブル化すると、行追加しても数式や書式が自動で伸びます。「月末だけ行を足して崩壊」が起きにくくなるので、地味に効きます。

④「引き継ぎ」で死なないための最低限のメモを残す

最後に、あなたが異動・休みでも回るように、シートの上部に運用ルールを3行だけ書いておくのがおすすめです。

  • 入力するのは品番現在庫のみ(他列は触らない)
  • ステータスが表示された行だけ対応する
  • 「品番未登録/マスタ要確認」が出たらマスタを更新する

ここまで整えると、VLOOKUPとIFで作った自動化が「作っただけ」で終わらず、毎日ちゃんと回る仕組みになります。自動化のゴールは派手な関数ではなく、運用で崩れない設計です。

コメント

NewsTowerをもっと見る

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

続きを読む