エクセルでプルダウンを選ぶと自動入力する方法|VLOOKUP・XLOOKUP・空欄のときは空白に

エクセルでプルダウンを選ぶと自動入力する方法|VLOOKUP・XLOOKUP・空欄のときは空白に

エクセルで、プルダウン(ドロップダウンリスト)で選んだ値に合わせて、隣のセルに商品名や単価を自動で入れるには、プルダウンと VLOOKUP関数(または XLOOKUP関数)を組み合わせます。商品コード「A02」を選ぶと、みかん・80 が自動で表示されます。

この記事では、商品の一覧(マスタ)の作り方、プルダウンの設定、VLOOKUP関数・XLOOKUP関数での自動入力、まだ選んでいないときに空にする方法、一覧に無い値のときの表示までを、実際に Excel で確かめた表で説明します。プルダウンそのものの作り方・追加・解除は プルダウンの設定方法 で詳しく説明しています。下の練習ツールで、商品コードを書き換えて自動入力の変わり方を試せます。

目次

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

自動入力のしくみ

場所入れるものこの表の例
一覧(マスタ)商品コード・商品名・単価の表E2:G6
プルダウン一覧の商品コードから選べるようにするA3:A6
自動入力の式選んだコードで一覧を検索する式B列(VLOOKUP)・C列(XLOOKUP)
エクセルでプルダウンで選んだ商品コードから商品名と単価を自動入力した表
エクセルでプルダウンで選んだ商品コードから商品名と単価を自動入力した表
エクセルでプルダウンの商品コードからVLOOKUPで商品名を自動入力した実際の画面
エクセルでプルダウンの商品コードからVLOOKUPで商品名を自動入力した実際の画面

実際の Excel で、B3 を選んだときの画面です。数式バーに VLOOKUP の式が入っていて、A3 の「A02」から商品名の みかん が自動で入りました。商品コードが空の5行目は何も表示されず、一覧に無い「B99」の6行目は「未登録」になっています。

プルダウンを作る

1
プルダウンを付けたいセル(A3:A6)を選びます。
2
「データ」タブの「データの入力規則」をクリックします。
3
「入力値の種類」で「リスト」を選び、「元の値」に「=$E$3:$E$6」と入力して「OK」を押します。

手順1・2の画面です。「データ」タブの「データツール」グループにある小さなアイコンが「データの入力規則」です。マウスを合わせると名前が出ます。キーボードなら Alt → A → V → V の順に押しても開きます。

エクセルのデータタブのデータの入力規則のボタンの場所と商品コードを入れるセル
エクセルのデータタブのデータの入力規則のボタンの場所と商品コードを入れるセル

手順3の画面です。「入力値の種類」を「リスト」にすると「元の値」の欄が出るので、商品の一覧の商品コード(E3:E6)を =$E$3:$E$6 と入れて「OK」を押します。

エクセルのデータの入力規則でリストを選び元の値に商品コードの範囲を指定したところ
エクセルのデータの入力規則でリストを選び元の値に商品コードの範囲を指定したところ

A3:A6 のセルを選ぶと右に ▼ が表示され、一覧の商品コード(A01〜A04)から選べるようになります。一覧に無い値を手で入力しようとすると、エラーのメッセージが出ます(データの入力規則の使い方)。

選んだら商品名を自動で入れる(VLOOKUP)

IF関数の構文
数式=IF(A3="","",IFERROR(VLOOKUP(A3,$E$3:$G$6,2,FALSE),"未登録"))
ひとことで条件で結果を切り替える
A3=""
条件です
""
真の場合です
IFERROR(VLOOKUP(A3,$E$3:$G$6,2,FALSE),"未登録")
偽の場合です

VLOOKUP関数で、A3 の商品コードを一覧の左の列から探し、2列目の商品名を返します。A3 が「A02」なら みかん、A4 が「A03」なら ぶどう です。一覧の範囲は $ を付けて固定すると、下にコピーしてもずれません(VLOOKUP関数の使い方)。

単価を自動で入れる(XLOOKUP)

IF関数の構文
数式=IF(A3="","",IFERROR(XLOOKUP(A3,$E$3:$E$6,$G$3:$G$6),"未登録"))
ひとことで条件で結果を切り替える
A3=""
条件です
""
真の場合です
IFERROR(XLOOKUP(A3,$E$3:$E$6,$G$3:$G$6),"未登録")
偽の場合です

XLOOKUP関数は、探す列(E列)と返す列(G列)を別々に指定するので、列番号を数える必要がありません。A02 の単価は 80、A03 は 450 です。Microsoft 365・Excel 2021 以降で使えます。

まだ選んでいないときは空にする

式の最初の IF(A3="","",…) は、商品コードが空のときに何も表示しないための部分です。A5 のようにまだ選んでいない行は、商品名も単価も空になります。これが無いと、空のセルを探して #N/A エラーや「未登録」が表示されてしまいます(IF関数の使い方)。

一覧に無い値のときの表示

「B99」のように一覧に無いコードが入っていると、検索が失敗して #N/A エラーになります。IFERROR関数で 未登録 と表示するようにしておくと、どこが間違っているか分かりやすくなります(IFERROR関数の使い方)。プルダウンを付ける前に入っていた値や、貼り付けた値は、入力規則があっても残ることがあります。

プルダウンで自動入力できないときの確認表

症状考えられる原因対処
「#N/A」になる一覧に無い値、または前後の空白・全角半角の違いIFERROR関数で表示を決め、TRIM関数などで値をそろえる。
下の行で結果がずれる一覧の範囲に $ が付いていない$E$3:$G$6 のように絶対参照にする。
商品を増やしても選べないプルダウンの元の値・式の範囲が古い一覧をテーブルにするか、範囲を広げる。
数値のコードが見つからない一覧は数値、選んだ値は文字(またはその逆)一覧とプルダウンの値の種類をそろえる。

よくある質問

まだ選んでいない行に #N/A や「未登録」が出ます。

空のセルを検索しているためです。式の最初を =IF(A3=””,””,…) にすると、商品コードが空の行は何も表示されません。

一覧に無いコードが入っていたら?

検索が失敗して #N/A になります。IFERROR関数で「未登録」と表示するようにしておくと、どこが違っているか分かりやすくなります。

商品を一覧に追加したのに、プルダウンで選べません。

プルダウンの「元の値」と式の範囲が、追加前の範囲のままだからです。一覧をテーブルにするか、範囲を広げます(データの入力規則の使い方)。

あわせて読みたい:関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次