「コピぺ de 関数」FILE_11

今回は、データベース関数の中の一つである、DGET関数を使った方法をご紹介いたします。

DGET関数はこんな時に使える関数です。

  • Excelにまとまった膨大な量のデータの中から、指定した条件に合った値を取り出して別のセルに表示させたい!
  • いくつかの条件に合致するデータを取り出したい!

実際にどんな感じで取り出すのかやってみましょう!

データの中から条件に応じて値を抽出する方法

抽出させたい条件が1つの場合と2つの場合について説明していきます。

まずは、抽出させたい条件が1つの場合を見ていきます。

作業用のデータを用意しましたので、下記の表をコピペして、自身のExcelのA1に貼り付けてください。

商品名 入荷日 個数 出荷先 出荷都道府県 売り上げ
りんご 8月1日 100 関東 千葉県 3000
さくらんぼ 8月2日 30 関東 茨城県 5000
バナナ 8月3日 100 関東 東京都 2000
みかん 8月4日 50 関西 京都府 1000
スイカ 8月6日 20 四国 高知県 10000
メロン 8月6日 20 九州 福岡県 7000

データベース関数を使ってデータを取り出す場合、取り出す準備が必要になります。

こんな具合に表があったとして、1列目に見出しを用意します。

そして、抽出条件は2つのセルを使いますが、上のセルに見出しと全く同じ表記の文字列と、下のセルにはその見出しの行にある条件を入力します。

上の例では取り出したい条件を「8月4日」として実践していきます。

そして、H4セルに下記の数式をコピペして見ましょう。

=DGET(A1:F7,F1,H1:H2)

すると、結果は「1000」となります。

数式の動きを理解するのに数式の中身も一緒に見てみましょう。

こちらの画像を見るとわかりやすと思います。

データベースの範囲を青枠としてまず指定し、肌色枠で取り出すデータ見出し列を選択。そして緑枠で条件の範囲を2セル分指定してあげます。

そうすることで数式の動きは「A1からF7の範囲の中から、H1の見出しがある行のH2に合致するデータが何行目にあるか探して、F1見出しの列の同じ行にあるデータを取り出す」となります。

イメージできましたでしょうか?

このようにDGET関数を使うことでデータ一覧の中から条件に合致する値を取り出すことができます。

例ではうまくデータを取り出せましたが、もし条件に合致する値が2つ以上あったらどうなるのでしょうか?

これは仕様上、仕方のないことなので諦めるしかありません。

ですが、条件を2つ以上設定することで、合致する値が1つになれば抽出できますので試してみましょう。

データの中から2つの条件に合致する値を抽出する

では、2つ目の条件を設定していきましょう。

I列にこのように見出しと、条件を入れていきます。

そして、I4セルに下記の数式をコピペして見てください。

=DGET(A1:F7,A1,H1:I2)

すると、結果は「スイカ」と表示されます。

これは入荷日が8月6日、かつ、売上が10000以上という条件になり、メロンは売上が7000なので選ばれず、スイカだけが取り出せるということになります。

DGET関数は「一致するデータを探す」のではなく「一致するデータを取り出す」関数ですので、あくまで取り出すことに専念した関数となります。

一致するデータが何個あるか調べる場合はCOUNTIF関数を使ったりします。

その記事は今後書く予定ですので、少しお待ちください!

2019年1月17日追記

条件に当てはまるセルの数を数える方法(COUNTIF,COUNTIFS) Excel_14

また、今回紹介した方法と似ている方法でINDEX関数とMATCH関数を組み合わせた方法を書いた記事もあるので、そちらを参考にして見てください。

一覧の中から一致するデータを取り出す方法(INDEX関数,MATCH関数) Excel_01

次回は、数式結果がエラーの場合に空白を表示させる超実用的な方法を解説いたします!