「コピぺ 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
次回は、数式結果がエラーの場合に空白を表示させる超実用的な方法を解説いたします!