Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

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選)
  1. Excelの「データの取得と変換」機能の使い方を4つの実例で解説

    Excelでデータの取得と変換(Get & Transform)を行う方法をお探しの方は、この記事が参考になります。Excelブック、テキスト/CSVファイル、Webなど外部ソースからデータセットを取り込みたい場面は多々あります。実は、いくつかの簡単な手順に従うだけで、外部データを取得してExcelワークシートに変換・取り込むことができます。本記事では、Excelでデータを取得・変換する4つの方法をわかりやすく紹介します。 「データの取得と変換」とは? Excelのデータの取得と変換機能を使うと、外部データをインポートまたは接続したうえで、列の削除、データ型の変更、テーブルの結合など、目的に合

  2. Excelでドロップダウンリスト付きのデータ入力フォームを作成する2つの方法

    Microsoft Excelでは、データ入力フォームや計算フォームなど、さまざまな種類のフォームを作成できます。こうしたフォームを活用すれば、データ入力が格段に楽になり、作業時間の大幅な節約にもつながります。また、Excelには「ドロップダウンリスト」という便利な機能もあります。限られた値を何度も手入力するのは面倒ですが、ドロップダウンリストを使えば、リストから選ぶだけで簡単に値を入力できます。この記事では、Excelでドロップダウンリスト付きのデータ入力フォームを作成する方法を、具体的な操作画面とともにわかりやすく解説します。 Excelでドロップダウンリスト付きデータ入力フォームを