Excel(エクセル)のDGET関数の使い方|条件に合うセルを一つ抽出

Excel(エクセル)のDGET関数の使い方
Excel関数

Excel(エクセル)のDGET関数の使い方|条件に合うセルを一つ抽出

使用関数:DGET

DGET(ディーゲット)関数とは?

DGETは指定した条件を満たすデータのセルを一つだけ抽出する関数です。Excel(エクセル)の関数で名前の冒頭に「D」が付くものは「データベース関数」に属し、データベースで使用することを前提とした機能を持っています。

データベースとはExcelの原則(データを項目別に列見出しで分類し、1行1データにまとめる)に沿って作成されているデータ表のことです。

データベースについて、データベースの作り方などを初心者にも分かりやすく解説しています。

データベース・表
「データベース」は情報の保管庫。Excelの「表」は「データベース」として作成し、集計・分析機能を最大限に活用させます。理想的なデータベース表の作り方・利用法・編集管理などの記事一覧です。

DGETはデータベースの指定した列(フィールド)から指定した条件でデータを検索し、そのデータを返します。複数の条件で絞り込んで、すべての条件を満たす一つのレコード(行データ)を抽出する関数です。

DGET関数の使い方・基本

DGET関数の簡単な使用例です。
名字を条件にして年齢を抽出します。
DGET関数で名字から年齢を抽出

データベース関数は「関数ライブラリ」に載っていないので、引数のダイアログを開く時は「関数の挿入」ボタンをクリックします。
関数の挿入ボタン
関数の挿入」が開いたら「関数の分類」ボックスの▼を押して下へスクロールし、「データベース」をクリックします。
関数の挿入ダイアログで関数の分類をデータベースにする
関数名」の一覧が「データベース」配下のものに切り替わるので、「DCGET」を選択し、「OK」。
関数名の一覧からDGETを選択
DGET関数の引数ダイアログが開きます。

DGET関数の書式

データベース関数の引数は一律に「データベース」「フィールド」「条件」の3つです。
書式の構成はこうなります。
DGET関数の引数の構成

第一引数「データベース」

この引数には列見出しも含めて表を指定します。
DGET関数の引数「データベース」に列見出しも含めて表を指定

第二引数「フィールド」

「フィールド」は表の列見出しのことです。集計するデータ範囲ではなく、集計する列の見出しのセルをクリックで指定するか、または列の番号(左から何番目にあるか)を指定します。
ここでは列見出しの「年齢」をクリックで指定しましたが、「年齢」の列の番号「4」を指定してもOKです。
DGET関数の引数「フィールド」に列見出しを指定

第三引数「条件」

「条件」は値の検索条件です。これは別に「条件表」を作って指定します。
ここでは列見出しの一つ「氏名」の名字部分「岡山」をキーにして条件を指定します。必ず、条件表にも列見出しと同じ項目名を付けておき、項目名と条件を全て選択して指定します。
DGET関数の条件の表を作成して引数「条件」に指定

DGET関数で「年齢」フィールド(列)のセルが抽出されました。
DGET関数で「年齢」フィールド(列)のセルが抽出された

DGET関数で複数の条件を満たすセルを抽出する

一つだけの条件では対象のデータをうまく取り出せない場合があります。DGET関数では複数の条件を指定してデータを絞り込むことができます。

「担当者」と「商品」の2つの条件をDGET関数に指定して、合致する「金額」のデータを抽出してみます。
2つの条件をDGET関数に指定して合致するデータを抽出

データを抽出するセルを選択してDGET関数の引数ダイアログを開き、各引数を指定します。

  • データベース」には列見出しも含めて表全体を指定
  • フィールド」には抽出するデータ項目の「金額(または7)」を指定
  • 条件」には「担当:担当者A」「商品:ポーズ3点」という複数条件を指定。
    この複数条件は条件の全てを満たすAND条件なので、条件表は横並べにして作ります。

DGET関数の複数条件の指定

条件は条件表を作成してセル参照で指定しますが、指定する文字列は完全一致である必要はありません。開始文字から検索されるので、最初の1文字で抽出可能なら、その文字だけを指定すればOKです。この例では「ポ」から始まる値が列内に無いことがわかっているので「ポ」と指定しています。

2つの条件を満たすデータが抽出されました。
DGET関数で2つの条件を満たすデータが抽出された

DGET関数でエラーが返される要因

DGETは「条件に合うすべてのセル」を抽出する関数ではありません。「条件に合う一つのセル」を抽出する関数です。
条件を検索して一致するレコードが複数ある場合はエラー「#NUM!」が返されます。
DGET関数で一致するレコードが複数ある場合はエラー「#NUM!」

一致するレコードが一つもない時はエラー「#VALUE!」が返ります。

また、例えばDGET関数の引数「フィールド」に複数の列見出しを指定してみましょう。「国語」と「英語」の複数の列を検索するように「D1,F1」と指定します。
DGET関数の引数「フィールド」に複数の列見出しを指定
すると、「この関数に対して、多すぎる引数が入力されています」という注意喚起画面が表示されます。
「この関数に対して、多すぎる引数が入力されています」という注意喚起

D1:F1」のように連続したセル範囲を指定した時はエラー「#VALUE!」が返ります。

DGETで取得するのは条件を満たす一つのレコードの内、指定された一つのフィールドと一致するセルだけであることを覚えておきましょう。

DGET関数のまとめ
  • DGET関数はデータベースから指定した条件を満たすデータのセルを一つだけ抽出します
  • DGET関数は関数ライブラリにはないので、「関数の挿入」から操作します
  • DGET関数の引数「データベース」と「条件(条件表)」は列見出しを含めて指定します
  • DGET関数の引数「条件」には検索条件を入力したセル範囲の「条件表」を作って指定します
  • DGET関数の条件表には同じ列見出しを並べて複数の条件を指定できます
  • DGET関数で一致するレコードが複数ある場合はエラー「#NUM!」が返ります
  • DGET関数で一致するレコードが無い場合はエラー「#VALUE!」が返ります
  • DGET関数で複数の列を検索しようとすると「この関数に対して、多すぎる引数が入力されています」とアラートが出ます
タイトルとURLをコピーしました