VLOOKUP×ドロップダウンリストの連携術|商品名を選ぶだけで価格を自動表示!

VLOOKUP×ドロップダウンリストの連携術|商品名を選ぶだけで価格を自動表示!

本記事には広告(PR)が含まれます。
くわしくは プライバシーポリシー をご確認ください。

Excelでデータ入力を行う際、「商品名を選んだら自動で価格を表示したい」「手入力ミスを防ぎたい」と感じたことはありませんか?

そんなときに便利なのが、ドロップダウンリスト(プルダウン)とVLOOKUP関数の組み合わせです。
あらかじめ商品一覧などのマスタを作っておけば、選択肢から選ぶだけで関連情報を自動表示できるため、入力の効率化・ミスの防止に大きく役立ちます。

本記事では、初心者の方でもわかりやすいように、ドロップダウンの作成方法からVLOOKUPとの連携手順、よくあるトラブルへの対処法まで、実例を交えて丁寧に解説します。
商品コードを選んで商品名や価格を表示する応用例も紹介していますので、実務で使える入力フォームを作りたい方は参考にしてください。



目次

VLOOKUPとドロップダウンを連携すると何ができる?

商品名を選んで価格を自動表示する完成イメージ

ここでは一例として、次のような商品マスタと発注書を使用します。

  • 左側:商品マスタ

    • 商品コード・商品名・単価をまとめた一覧表

  • 右側:発注書フォーム

    • 商品名をドロップダウンから選ぶと、対応する単価が自動表示される入力フォーム

商品名をドロップダウンから選ぶと、VLOOKUP関数で金額が自動表示される発注書の完成例
商品名を選ぶと、商品マスタから対応する金額が自動表示されます。

このような入力フォームを作成することで、

  • 手入力の手間を減らせる

  • 選択ミス・表記ゆれを防げる

  • 入力内容の正確性を保てる

といった実務的なメリットを得られます。


入力ミスや表記ゆれを防げる

ドロップダウンリストを使うことで、手入力による誤字・脱字、表記ゆれといった人為的ミスを防ぐことができます。

さらにVLOOKUP関数を組み合わせると、選択した商品名に対応する単価を商品マスタから自動取得できます。

商品名と単価をそれぞれ手入力する必要がなくなるため、入力間違いや転記ミスを減らしやすくなります。

その結果、確認や修正にかかる手間を抑えながら、正確で効率的な入力作業を行えます。


ドロップダウンとVLOOKUPを連携する手順

手順1 商品マスタを作成する

まずは、VLOOKUP関数で参照するための商品マスタ(一覧表)を用意します。

「商品コード」「商品名」「単価」など、1つの商品に関する情報を横一列にまとめておくと、VLOOKUP関数で検索しやすくなります。

今回は、次のような商品マスタを使用します。

A列:商品コード B列:商品名 C列:単価
A001 リンゴ 120
A002 バナナ 100
A003 みかん 110

商品マスタは、発注書とは別の「商品マスタ」シートで管理します。入力フォームと元データを分けておくと、商品情報を追加・修正しやすくなります。


手順2 商品名のドロップダウンを作成する

次に、フォーム側の入力欄に商品名のドロップダウンリストを設定します。

  1. ドロップダウンを設定したいセルを選択します。
    ※今回は、発注書の商品名欄であるB4セルを選択します。

  2. Excelのメニューから「データ」→「データの入力規則」を選択
    入力規則メニューを選択

  3. 「リスト」を選び、商品名が入力されている範囲を指定します。

    [入力値の種類]から[リスト]を選び、[元の値]に商品マスタの商品名範囲を指定します。
    今回は、「商品マスタ」シートのB2セルからB100セルまでを選択します。

    発注書の商品名欄に、商品マスタの商品名を使ったドロップダウンリストを設定する画面
    [データの入力規則]で「リスト」を選び、商品名が入力されている範囲を指定します。

    セル範囲を手入力すると、シート名やセル番地を間違える可能性があります。[元の値]欄の右側にある範囲選択ボタンをクリックし、対象範囲をマウスで選択すると確実です。

    ドロップダウンリストの元の値として、商品マスタシートの商品名範囲を選択する画面
    商品マスタシートを開き、ドロップダウンに表示する商品名の範囲を選択します。
  4. [OK]をクリックすると、セル内にドロップダウンが表示されます。

    発注書の商品名欄に設定したドロップダウンリストから、商品名を選択している画面
    商品名欄の矢印をクリックすると、商品マスタに登録した商品名が一覧表示されます。

これで、商品名を一覧から選択できるようになり、手入力による誤字や表記ゆれを防ぎやすくなります。


手順3 VLOOKUPで価格を自動表示する

ドロップダウンで選択した商品名に対応する単価を、VLOOKUP関数で取得します。

金額を表示するD4セルに、次の式を入力します。

=VLOOKUP(B4,商品マスタ!$B$2:$C$100,2,FALSE)

この式では、次の内容を指定しています。

  • B4:ドロップダウンで選択した商品名

  • 商品マスタ!$B$2:$C$100:商品名と単価が入力されている検索範囲

  • 2:検索範囲の2列目にある単価を取得

  • FALSE:商品名が完全に一致するデータを検索

検索範囲には$を付けて絶対参照にしておきます。絶対参照にすると、数式を下へコピーしても検索範囲がずれません。

商品名を選択すると、商品マスタから対応する単価が自動表示されます。

ドロップダウンで選んだ商品名を検索値にして、VLOOKUP関数で金額を表示する設定例
商品名を検索値にし、商品マスタの2列目から対応する単価を取得します。
VLOOKUP関数の基本や使い方については、以下の記事も参考にしてください。
初めてのVLOOKUP関数|よくあるエラー・複数条件・部分一致の対処法をやさしく解説!

商品を選ぶ前は価格欄を空白にする

商品名をまだ選択していない状態では、価格欄にエラーを表示させたくない場合もあります。

その場合は、VLOOKUP関数をIFERROR関数で囲みます。

=IFERROR(VLOOKUP(B4,商品マスタ!$B$2:$C$100,2,FALSE),"")

VLOOKUP関数で単価を取得できた場合はその値を表示し、商品名が空白の場合や一致する商品が見つからない場合は、何も表示しません。

ただし、IFERROR関数を使うと、検索範囲や列番号の指定ミスによるエラーも空白になります。設定直後は、正しく価格が表示されることを確認してから使用しましょう。

IFERROR関数を使い、商品名を選択する前の金額欄を空白にした例
IFERROR関数を使ったセルは空白になり、通常のVLOOKUP関数では#N/Aエラーが表示されています。

VLOOKUPで価格が正しく表示されないときの確認ポイント

検索範囲の先頭列が違っている

VLOOKUP関数は検索範囲の先頭列(一番左側の列)に検索値が含まれていないとエラーになります。

商品名から単価を検索する場合は、商品名の列が検索範囲の左端になっているか確認しましょう。

商品名を検索しているのに、商品コード列から検索範囲を指定したため#N/Aエラーが表示された例
VLOOKUPでは、検索する値が検索範囲の左端列に含まれている必要があります。

列番号が検索範囲を超えている

VLOOKUP関数で指定した列番号が検索範囲の列数を超えていると、#REF!エラーが表示されます。

たとえば、検索範囲がB列からC列までの2列なのに、列番号へ3を指定すると、検索範囲に3列目が存在しないためエラーになります。

検索範囲に含まれる列数と、取得したい項目の列番号を確認しましょう。

2列の検索範囲に対して列番号3を指定し、#REF!エラーが表示された例
検索範囲の列数を超える列番号を指定すると、#REF!エラーが表示されます。

数式をコピーすると検索範囲がずれる

発注書などの帳票の場合、複数行にわたって数式をコピーする場合があります。

その際、検索範囲を絶対参照にしていないと、数式をコピーするたびに参照範囲がずれ、エラーや誤った結果が表示されることがあります。

設定した検索範囲が絶対参照になっているか確認しましょう。

VLOOKUPの検索範囲を相対参照のままコピーし、参照範囲がずれて#N/Aエラーになった例
検索範囲を絶対参照にしていないと、数式をコピーしたときに参照範囲がずれてしまいます。
VLOOKUPで表示されるエラーの原因や対処法については、以下の記事で詳しく解説しています。
VLOOKUP関数でエラーが出る原因と対処法まとめ|#N/A・#REF!・#VALUE!をやさしく解説

VLOOKUPとドロップダウンの応用例

商品コードを選んで商品名と価格を表示する

基本例では商品名を選んで単価を表示しましたが、商品コードをドロップダウンから選び、商品名や単価を自動表示することもできます。

同じ仕組みは、次のような入力フォームにも応用できます。

  • 社員番号を選ぶと、氏名や所属部署が表示される
  • 得意先コードを選ぶと、会社名や住所が表示される
  • 商品コードを選ぶと、商品名や単価が表示される

このように、入力内容を制限しつつ関連情報をスムーズに取得できるため、入力ミスの防止作業の時短に大きな効果があります。

商品コードをドロップダウンから選ぶと、VLOOKUP関数で商品名と単価が自動表示される例
商品コードを選択すると、対応する商品名と単価が商品マスタから自動表示されます。

商品名・単価・在庫数など複数項目を自動表示する

1つの選択に対して、複数の情報を一括で表示したい場面もよくあります。

たとえば「商品コード」を選んだら、

  • 商品名

  • 単価

  • 在庫数

といった情報を、それぞれ別のセルへ表示できます。

表示する項目 数式
商品名 =VLOOKUP(B1,商品マスタ!$A$2:$D$100,2,FALSE)
単価 =VLOOKUP(B1,商品マスタ!$A$2:$D$100,3,FALSE)
在庫数 =VLOOKUP(B1,商品マスタ!$A$2:$D$100,4,FALSE)

商品コードを選ぶ前のセルを空白にしたい場合は、前述の方法と同様に、それぞれのVLOOKUP関数をIFERROR関数で囲んでください。

商品コードを検索値にして、VLOOKUP関数で商品名・単価・在庫数を別々のセルに表示した例
VLOOKUPの列番号を変えると、1つの商品コードから商品名・単価・在庫数などを取得できます。

列番号を変えるだけで、関連情報をそれぞれ別セルに出力できます。
表示順や書式を調整すれば、見た目も整ったフォームや伝票作成に応用できます。


商品が増えても対応できるようにテーブル化する

VLOOKUP関数は、数式で指定した範囲からデータを検索します。

通常のセル範囲を参照している場合、検索範囲の外側へ商品を追加しても、新しい商品は検索対象に含まれません。

商品マスタをテーブルに変換しておくと、末尾に商品を追加した際に、VLOOKUP関数の参照範囲も追加した行まで拡張されます。

商品数が増える可能性がある場合は、商品マスタをテーブルで管理するとメンテナンスしやすくなります。

商品マスタをテーブル化し、商品を追加するとVLOOKUPの参照範囲も拡張された例
テーブルに商品を追加すると、VLOOKUPの参照範囲も追加した行まで拡張されます。

数式セルを保護して誤入力を防ぐ

VLOOKUP関数を設定したセルを誤って上書きすると、単価が正しく表示されなくなります。

複数人で使用する発注書では、次のような工夫をしておくと安心です。

  • 商品名や数量など、入力するセルを色分けする

  • 単価や小計に通貨・桁区切りの表示形式を設定する
  • 数式セルをロックし、シートを保護する

入力するセルを色分けし、金額に通貨表示を設定すると、入力欄と自動表示欄を見分けやすくなります。

商品名と数量の入力欄を色分けし、VLOOKUPで取得した金額に通貨表示を設定した発注書
入力するセルを色分けし、金額に通貨表示を設定すると、入力欄と自動表示欄を見分けやすくなります。

Excelの校閲タブにあるシートの保護ボタンの場所

数式セルを編集できないようにする場合は、[校閲]タブの[シートの保護]を使用します。

シート保護された金額セルを編集しようとしたときに表示されるExcelの警告メッセージ
保護された数式セルを変更しようとすると、編集できないことを知らせるメッセージが表示されます。

シート内で編集できる範囲を指定するには?

シートを保護すると、ロックされているセルは編集できなくなります。

商品名や数量など、入力に使用するセルだけ編集可能にしたい場合は、[校閲]タブの[範囲の編集を許可する]から対象範囲を登録します。

編集を許可する範囲を登録してからシートを保護すると、指定した入力欄だけを編集できるようになります。

Excelの校閲タブにある範囲の編集を許可するボタンの場所
シート保護後も入力セルを編集できるようにする場合は、[範囲の編集を許可する]を選択します。
シート保護後も編集できる入力範囲を指定する手順
編集を許可するセル範囲を登録すると、シート保護後も指定した入力欄だけ編集できます。

このように見た目や保護設定を工夫することで、誰が使ってもミスの少ない入力シートが作成できます。


VLOOKUPを実務で使えるようになりたい方へ

今回紹介した方法を使えば、商品名を選んで単価を自動表示する入力フォームを作成できます。

ただし、実務では、

  • 検索する列が変わる
  • 商品マスタの項目が増える
  • #N/Aなどのエラーが表示される
  • 複数の条件からデータを検索したい

といった場面も少なくありません。

VLOOKUPの基本からエラー対策、応用的な検索方法まで順番に学びたい方は、動画で操作を確認できる講座も参考になります。

【VLOOKUPを基礎〜応用まで学べる講座】(Udemy) 
※本リンクはアフィリエイトリンク(PR)を含みます。


    VLOOKUPとドロップダウンに関するよくある質問

    ドロップダウンで選んでも価格が表示されないのはなぜですか?

    商品名から単価を検索する場合、VLOOKUPの検索範囲は商品名の列から始める必要があります。

    また、列番号の指定や検索範囲が正しいか、商品マスタに対象の商品が登録されているかも確認しましょう。


    商品を選ぶ前は価格欄を空白にできますか?

    IFERROR関数を組み合わせると、商品が選択されていないときや一致する商品がないときに空白を表示できます。

    =IFERROR(VLOOKUP(B4,商品マスタ!$B$2:$C$100,2,FALSE),"")
    

    ただし、数式の設定ミスによるエラーも空白になるため、最初にVLOOKUPが正しく動作することを確認してから使用しましょう。


    商品マスタが別シートにあっても連携できますか?

    商品マスタが別シートにあっても、VLOOKUP関数とドロップダウンの両方で参照できます。

    VLOOKUP関数では、次のようにシート名を含めて検索範囲を指定します。

    =VLOOKUP(B4,商品マスタ!$B$2:$C$100,2,FALSE)
    

    ドロップダウンでは、[データの入力規則]の[元の値]から、商品マスタシートの商品名範囲を選択します。

    Excelの環境や設定方法によって別シートの範囲を直接指定できない場合は、商品名の範囲に名前を付け、その名前を[元の値]に指定する方法もあります。


    商品名と価格を同時に自動表示できますか?

    商品コードをドロップダウンで選び、商品名と価格を別々のセルに表示できます。

    商品名を表示するセルと価格を表示するセルに、それぞれ列番号の異なるVLOOKUP関数を入力してください。

    たとえば、商品コードをB4セルで選択する場合は、商品名と価格を表示するセルにそれぞれ次の式を入力します。

    =VLOOKUP(B4,商品マスタ!$A$2:$C$100,2,FALSE)
    
    =VLOOKUP(B4,商品マスタ!$A$2:$C$100,3,FALSE)
    

    VLOOKUPではなくXLOOKUPでも連携できますか?

    Microsoft 365や対応バージョンのExcelでは、XLOOKUP関数でもドロップダウンと連携できます。

    =XLOOKUP(B4,商品マスタ!$B$2:$B$100,商品マスタ!$C$2:$C$100,"")
    

    XLOOKUPでは検索列と戻り値の列を別々に指定できるため、列の並び順に左右されにくいメリットがあります。ただし、古いバージョンのExcelでは使用できない場合があります。


    まとめ:ドロップダウンとVLOOKUPで価格を自動表示しよう

    ドロップダウンリストとVLOOKUP関数を組み合わせると、選んだ商品名に対応する価格を自動表示できます。

    今回のポイントは、次のとおりです。

    • 商品マスタに商品名と価格をまとめる
    • 入力規則で商品名のドロップダウンを作成する
    • VLOOKUPの検索範囲を商品名の列から始める
    • 検索範囲は絶対参照にしてずれを防ぐ
    • 空白やエラーを表示したくない場合はIFERROR関数を組み合わせる

    商品コードを選んで商品名や価格を表示したり、在庫数などの複数項目を自動表示したりすることも可能です。

    入力するセルと自動表示されるセルを色分けし、必要に応じて数式セルを保護しておくと、ほかの人にも使いやすい入力フォームになります。

    まずは商品名と価格だけのシンプルな表から作成し、必要に応じて表示項目を増やしてみてください。


    【関連記事紹介】

    VLOOKUPやドロップダウンをさらに活用したい方は、次の記事も参考にしてください。

    ※外部リンク※


      ※参考書籍※

      ※本ボックスにはアフィリエイトリンク(PR)が含まれます。
      くわしくは プライバシーポリシー へ。

      VLOOKUP×ドロップダウンリストの連携術|商品名を選ぶだけで価格を自動表示!
      最新情報をチェックしよう!