Excelでのデータ検索といえば、VLOOKUPやINDEX/MATCH、そして最近ではXLOOKUPを思い浮かべる方が多いのではないでしょうか。しかし、それ以上に便利なDGET(ディーゲット)関数の存在をご存知ですか?多くの人に見過ごされがちですが、DGETは特定のタスクにおいて、他のどの関数よりも直感的で効率的な解決策を提供してくれます。
今回は、このDGET関数について、基本的な使い方から他の検索関数と比較した際の優れた点まで、具体的な操作を踏まえてを分かりやすく解説していきます。
Excelの隠れた名関数「DGET」を徹底解説!
まずは、DGET関数の基本的な使い方をVLOOKUP関数と比較しながら見ていきましょう。
ここに月別の【項目別売上管理表】のデータがあります。この中から「1月」の売上を検索してみます。

VLOOKUPの場合
VLOOKUPを使うと、数式は以下のようになります。

==VLOOKUP(J5,テーブル1,2,FALSE
この数式では、1月の売上が左から「2列目」にあることを数字で指定する必要があります。この「列番号の指定」は、表の構造が変更された際にエラーの原因となりやすい弱点です。例えば、3月のパソコンの売上を調べたいときは、は4列目になってしまい、数式を3から4へ手動で修正しなければ正しい値が返ってきません。
DGETの場合
次にDGET(ディーゲット)関数です。DGETを使うには、検索条件を別途セルに用意するという特徴があります。
そして、数式は以下のようになります。

データベース: ヘッダー(見出し)を含む表全体
フィールド: 求めたい値が入っている列のヘッダー(ここでは、1月になります)
条件: 検索条件として用意したセル範囲(ここでは、【項目とパソコン】になります。)
VLOOKUPと違い、DGET(ディーゲット)は「何列目か」を数える必要がありません。フィールド(列)をヘッダー名で直接指定できるのが大きな利点です。元の表の列の順番が入れ替わったり、新しい列が追加されたりしても、ヘッダー名が同じである限り数式は正しく機能し続けます。
複雑な条件での検索:INDEX/MATCHよりシンプル!
INDEX/MATCH
INDEX関数とMATCH関数を組み合わせると、行と列の双方向から検索できるため非常に強力ですが、数式は複雑になりがちです。
次に、複数の条件で検索するケースを見てみましょう。「PC」の「4月」の売上を検索します。

=INDEX(上半期売上表2[#すべて],MATCH(J5,上半期売上表2[[#すべて],[項目]],0),MATCH(K4,上半期売上表2[#見出し],0))
このように、行番号と列番号をそれぞれMATCH関数で探し出すという、二段階の処理を一つの数式内にネストする必要があり、慣れていない人にとっては構造の理解やデバッグが難しくなりがちです。
DGET(ディーゲット)の場合
DGET関数なら、この検索も驚くほど簡単です。条件範囲に「月」の列を追加するだけです。

=DGET(上半期売上表2[#すべて],K9,J9:J10)
INDEX/MATCHの複雑な数式に比べて、DGETが直感的に使えるかがお分かりいただけると思います。シート上に「検索フォーム」を作るような感覚で条件を指定できるため、何を探しているのかが一目でわかります。
月を変更しても、きちんと反映します。
XLOOKUP関数と、DGET(ディーゲット)の場合
XLOOKUP関数

この様な、上半期売上表2の表があります。【XLOOKUP関数】で【項目】がPC、【月】が3月の売上を出したい時の数式は上記になります。
とても簡単に抽出出来ます。
DGET(ディーゲット)関数
次にDGET(ディーゲット)関数を使用すると、

コチラも簡単に抽出出来ます。
関数のカスタマイズ
上記の表を、1月にコピーするとどうなるでしょうか?

検索値の【PC】のJ列5行目をロックする必要があります。ファンクションのF4キーを一回押すと、絶対参照になります。

このまま、右にオートフィルすると、数値が消えてしまいました。【数式】バーで確認すると、

式が右にずれて、検索範囲が1月、戻り範囲が、4月の領域が選択されているので、空白になってしまいます。式をカスタマイズするしかありません。

この様に、検索範囲と戻り範囲をカスタマイズすると、1月のPCの金額が分かります。
では、DGET(ディーゲット)関数を見ていきましょう。

そのまま式を【オートフィル】しても、この様に、変更を加えなくても、きちんとした結果が返ってきます。
DGET関数の注意点と限界
DGETも万能ではありません。うまく使い分けるために、以下の3つの注意点を理解しておくことが重要です。
①ヘッダー名は完全一致で: 条件範囲のヘッダー名は、データベースのものと完全に一致させる必要があります。タイプミスを防ぐため、セル参照(例: =A1)が有効です。
②条件のレイアウトは固定的: 条件は「ヘッダー」と「値」を隣接させる必要があります。このため、レイアウトの自由度は高くありません。
③ドラッグコピーは不可: XLOOKUPのように、数式を下にドラッグして連続したデータを検索することはできません。条件範囲が固定されているためです。
まとめ
VLOOKUPやXLOOKUPはもう古いのでしょうか? 答えは違います。それぞれに得意な場面があります。ただ、このDGET関数をマスターすれば、色々な表を作成する為の、選択肢として、皆さんのExcelスキルを一段階引き上げてくれます。ぜひこの隠れた名関数を使用されてください。




コメント