Excelのドロップダウンリストで選択した値に応じて別シートからデータを取得する4つの方法
本記事では、Excelでドロップダウンリストから値を選択し、別のシートからデータを取得する方法を解説します。大量のデータが1つのシートに入っている場合でも、必要な特定のデータだけを別のシートに抽出したい場面はよくあります。ここでは、まずドロップダウンリストを作成し、その後さまざまな関数を使ってデータを引き出す、4つの簡単な方法をご紹介します。
練習用ファイルのダウンロード
記事内の手順を実際に試したい方は、こちらから練習用ブックをダウンロードしてください。
ドロップダウンで選択して別シートからデータを取得する4つの方法
方法1:VLOOKUP関数を使って別シートからデータを取得する
1つ目の方法では、VLOOKUP関数を使用します。VLOOKUP関数は、テーブルの最左列で指定した値を検索し、同じ行にある指定列の値を返す関数です。
データセットの概要
今回は、3人の販売者の3か月分の売上データが、3つの異なるシートに分かれて保存されているデータセットを使用します。
- 「Jan」シートには1月の売上データが保存されています。
- 「Feb」シートには2月の売上データが保存されています。
- 「Mar」シートには3月の売上データが保存されています。
ステップ1:ドロップダウンメニューを作成する
以下の手順でドロップダウンメニューを作成しましょう。
- まず、新しいシートにデータセットの構造を作成します。ここでは「VLOOKUP Function」という名前のシートに構造を作成し、E列に月名(Month Name)とシート名(Sheet Names)を入力しました。
- 次に、ドロップダウンを作成するため、セルE3を選択します。
- 「データ」タブを開き、「データの入力規則」を選択します。すると「データの入力規則」ダイアログボックスが表示されます。
- 「入力値の種類(Allow)」で「リスト」を選択し、「元の値(Source)」フィールドをクリックします。
- ドロップダウンメニューに追加したい項目を選択します。ここではセルE8〜E10(各シート名)を選択し、「OK」をクリックします。
- 「OK」をクリックすると、セルE3にドロップダウンメニューが作成され、ここからシートを選択できるようになります。
ステップ2:別シートからデータを取得する
続いて、別シートからデータを取得する手順を見ていきましょう。
- まずセルC5を選択し、次の数式を入力します。
=VLOOKUP($B5,INDIRECT("'"&$E$3&"'!$B$5:$C$11"),2,FALSE)- Enterキーを押します。
この数式では、VLOOKUP関数の中にINDIRECT関数を組み合わせて使用しています。
🔎 数式の仕組み
⇒ INDIRECT("'"&$E$3&"'!$B$5:$C$11")
INDIRECT関数は、文字列で指定された参照先を返す関数です。ここでは、セルE3に保存されている文字列(シート名)を参照しています。例えばセルE3に「Jan」と入力されていれば、「Jan」シートのB5:C11範囲を返します。
⇒ VLOOKUP($B5,INDIRECT("'"&$E$3&"'!$B$5:$C$11"),2,FALSE)
この数式は、「Jan」シートのテーブル配列の中から、セルB5の値を検索します。列番号は「2」、完全一致で検索するため最後の引数には「FALSE」を指定しています。
- 最後に、フィルハンドルを使って残りのセルにも数式をコピーします。
これで、ドロップダウンメニューで月名を変更すると、データセットが自動的に更新されるようになります。「Mar(3月)」を選択すれば、3月のデータも即座に表示されます。
方法2:INDIRECT関数だけで別シートからデータを取得する
2つ目の方法では、INDIRECT関数のみを使用します。前述と同じデータセットを使います。
ステップ1:ドロップダウンメニューを作成する
- 新しいシートにデータセットの構造を作成し、E列に月名とシート名を入力します。
- 「データ」タブから「データの入力規則」を選択します。
- 「入力値の種類」で「リスト」を選び、「元の値」フィールドをクリックします。
- ドロップダウンに追加する項目として、シート名が入力されたセルE8〜E10を選択し、「OK」をクリックします。
- これでセルE3にドロップダウンメニューが作成されます。
ステップ2:別シートからデータを取得する
- まずセルC5を選択し、次の数式を入力します。
=INDIRECT("'"&$E$3&"'!C6")INDIRECT関数は、文字列で指定された参照先を返します。セルE3に「Jan」と入力されていれば、「Jan」シートのセルC6の値を返します。
- 数式を入力してEnterキーを押したら、フィルハンドルをドラッグして他のセルにコピーします。
ただしこの方法では、行ごとに参照セルが変わるため、コピー後に参照先のセル番号を修正する必要があります。
- セルC7では「C6」を「C7」に書き換えてEnterキーを押します。
- セルC8でも同様に「C6」を「C8」に書き換えます。
- 残りのセルも同様に修正すると、下記のような結果になります。
ドロップダウンメニューで月名を変更すれば、データは自動的に更新されます。「Mar」を選択した結果も確認してみましょう。
方法3:データの入力規則でドロップダウンを作成し、別シートからデータを抽出する
3つ目の方法では、「データ」タブの「データの入力規則」機能を使用します。ここでは新しいデータセット(商品のID・名前・価格)を使い、「Product List(商品リスト)」シートのデータをもとに、別シートに完全なデータセットを作成します。
ステップ1:ドロップダウンメニューを挿入する
- まず、データセットの構造を作成し、セルB5を選択します。
- 「データ」タブから「データの入力規則」を選択します。
- 「入力値の種類」で「リスト」を選び、「元の値」フィールドをクリックします。
- 「Product List」シートに切り替えて、商品IDの範囲(B5以降)を選択し、「OK」をクリックします。
- これでセルB5のドロップダウンメニューに商品IDが表示されます。
- 同じ手順でセルC5にもドロップダウンを作成します。このとき「Product List」シートから商品名の範囲を選択してください。
- セルD5についても、価格の範囲を選択してドロップダウンを作成します。
- 最終的に、5行目の各セルにドロップダウンメニューが挿入されます。
ステップ2:別シートからデータを抽出する
- 4行目と5行目の対象セルを選択します。
- 「挿入」タブを開き、「テーブル」を選択します。
- 「テーブルの作成」ダイアログボックスが表示されたら、見出しがある場合は「先頭行をテーブルの見出しとして使用する」にチェックを入れます。「OK」をクリックします。
- 次にセルD5を選択します。
- Tabキーを押すと、6行目のセルにも自動的にドロップダウンメニューが追加されます。このドロップダウンを使って各行のデータを簡単に入力できます。
- 同じ操作を繰り返せば、すべての行にドロップダウンを挿入してデータを抽出できます。
- 最後に、D列の表示形式を「通貨」に変更すると、より見やすいデータセットになります。
方法4:FILTER関数を使って別シートからデータを抽出する
最後の方法では、FILTER関数を使用します。FILTER関数は、範囲や配列を条件に基づいて抽出する関数です。ここでは、商品のID・名前・数量・価格を含むデータセットを使用します。
ステップ1:データセットをテーブルに変換する
- まず、データセット内の任意のセル(ここではセルB4)を選択します。
- 「挿入」タブから「テーブル」を選択します。
- 「テーブルの作成」ダイアログボックスで「先頭行をテーブルの見出しとして使用する」にチェックを入れ、「OK」をクリックします。
- データセットがテーブルに変換されたら、「テーブルデザイン」タブでテーブル名を変更します。ここでは「Product」という名前にしました。
ステップ2:一意のリストを作成する
テーブルを作成したら、商品名の一意な値(重複なしのリスト)を取り出します。
- 新しいシートに移動し、任意のセル(ここではセルI4)を選択します。
- 次の数式を入力します。
=UNIQUE(Product[Product Name])- Enterキーを押すと、テーブルの「Product Name」列から重複のない商品名リストが表示されます。
UNIQUE関数は、範囲や配列から一意の値を返す関数です。この数式は「Product」テーブルの「Product Name」列からユニークな値を抽出します。
ステップ3:ドロップダウンメニューを挿入する
- 一意の値をリスト化したシートで、4行目にProductテーブルの見出しを作成します。
- 次にセルG5を選択します。
- 「データ」タブから「データの入力規則」を選択します。
- 「入力値の種類」で「リスト」を選び、「元の値」フィールドをクリックします。
- ドロップダウンに追加する項目(商品名)としてセルI4〜I6を選択し、「OK」をクリックします。
- これでセルG5にドロップダウンメニューが作成されます。
ステップ4:別シートからデータを挿入する
- セルB5を選択し、次の数式を入力します。
=FILTER(Product,Product[Product Name]=G5)FILTER関数を使って範囲を絞り込んでいます。第1引数は「Product」テーブル全体、第2引数は「Product Name」がセルG5の値と一致することを意味します。
- Enterキーを押すと、該当する商品の全データが一度に表示されます。
- ドロップダウンメニューで商品名を変更すれば、データセットも自動的に更新されます。
注意点
ドロップダウンメニューから選択して別シートからデータを取得する際は、以下の点に注意しましょう。
- 方法1では、数式を入力する際にダブルクォーテーション(")の付け忘れや誤入力に注意してください。また、VLOOKUP関数の列番号も正確に指定する必要があります。
- 方法2では、フィルハンドルでコピーしても数式が自動更新されないため、各行で数式を編集する必要があります。手間を避けたい場合は方法1の利用をおすすめします。
- 方法3は、主に別シートに新しいデータセットを作成する場合に適しています。
- 方法4のFILTER関数およびUNIQUE関数はExcel 365(Microsoft 365)でのみ使用可能です。古いバージョンのExcelをお使いの場合は、方法1〜3をご利用ください。
まとめ
本記事では、Excelでドロップダウンから選択して別シートからデータを取得する4つの方法を紹介しました。目的やExcelのバージョンに応じて、最適な方法を選んで活用してください。冒頭で紹介している練習用ブックをダウンロードすれば、実際に手を動かしながら学ぶこともできます。ご不明な点やご意見がありましたら、ぜひコメント欄でお知らせください。
関連記事
- Excelのドロップダウンリストに項目を追加する方法(5選)
- VBAでドロップダウンリストから値を選択する方法(2選)
- 空白を含む依存型ドロップダウンリストの作り方
- VBAでドロップダウンリストに一意の値を表示する完全ガイド
- Excelのドロップダウンリストから重複を削除する方法(4選)
-
Excelの「データの取得と変換」機能の使い方を4つの実例で解説
Excelでデータの取得と変換(Get & Transform)を行う方法をお探しの方は、この記事が参考になります。Excelブック、テキスト/CSVファイル、Webなど外部ソースからデータセットを取り込みたい場面は多々あります。実は、いくつかの簡単な手順に従うだけで、外部データを取得してExcelワークシートに変換・取り込むことができます。本記事では、Excelでデータを取得・変換する4つの方法をわかりやすく紹介します。 「データの取得と変換」とは? Excelのデータの取得と変換機能を使うと、外部データをインポートまたは接続したうえで、列の削除、データ型の変更、テーブルの結合など、目的に合
-
Excelでドロップダウンリスト付きのデータ入力フォームを作成する2つの方法
Microsoft Excelでは、データ入力フォームや計算フォームなど、さまざまな種類のフォームを作成できます。こうしたフォームを活用すれば、データ入力が格段に楽になり、作業時間の大幅な節約にもつながります。また、Excelには「ドロップダウンリスト」という便利な機能もあります。限られた値を何度も手入力するのは面倒ですが、ドロップダウンリストを使えば、リストから選ぶだけで簡単に値を入力できます。この記事では、Excelでドロップダウンリスト付きのデータ入力フォームを作成する方法を、具体的な操作画面とともにわかりやすく解説します。 Excelでドロップダウンリスト付きデータ入力フォームを