エクセルのDGET関数を使って日付を入力するとデータが変わる表を作る方法

日付を入力するとデータが差し替わるエクセルの表があったら便利だと思いませんか?
表のひな形はたったひとつでデータ元は別に用意すればいいのですから、エクセルデータファイル自体を作るのも早くなるし実際使うのも変更点は日付だけなので、業務作業効率化できます。
作業効率化には必須のDGET関数
DGET関数とは、指定された条件を満たす 1 つの 値を抽出するExcelのデータベース関数ってよく言われていますが、意味分かりますか?何かの呪文って思いませんか?
最初の頃は、エクセルでそもそも「関数」って聞いただけで、頭を抱えて拒否反応していましたが、何度かチャレンジしてみるととても便利なエクセルDGET関数です。
ここでは、ボウリングリーグ成績表を作った時の実例でDGET関数の使い方を書いていきます。
DGET関数で成績表一覧を表示させるには、「日付を変える=ボウリングリーグ戦(総当たり戦)の開催回数を変える」と置き換えます。
要するに、日付の代わりに1回戦とか2回戦・・・10回戦とかですね。

回戦数(日付)を変更すると、この表の順位と名前以外が全てデータ元から探し出してそれぞれの項目(たとえば1G目のスコアー)に表示するという事で、順位と名前以外のセルには全てDGET関数が入っています。
DGET関数は「データベースの列から指定された条件を満たす1つのレコードを抽出します」と書いてあり、使ってみようとすると、=DGET(データベース.フィールド.検索条件)ってなります。
はっきり言ってわかりづらいので、言葉をボウリング成績表に合わせてみるとこうなります。
| DGET関数用語 | 置き換えた言葉 |
| データベース | データ元のセルの範囲(個人専用成績表) |
| フィールド | データ元のセルの範囲の列(1G目の列) |
| 検索条件 | 回数入力と回戦数 |
先ほどの図(参加者成績一覧表)で神田さんの1ゲーム目のスコアー(1G)にDGET関数を入れる例を書きます。
下の図で置き換えた実際のセル番号を書くと、
データベースは回数入力からT.Pまでの列で18回戦までの53行目から71行目までなので【CA53:CU71】となります。
フィールドは1ゲーム目のスコアー1Gなので【CD53】になります。

最後に検索条件ですが、ユーザーフォームを使って入力をする関係上、別の位置にあります。

このフィールドが原因でエラーになる事が多いので気をつけてくださいね。
ここでは、回数が書いてあるセル【Y3】の数字が1ならば1回戦目、2ならば、2回戦目という風に数字が変わる事により、個人専用成績表の回数入力の列【CA53】と同じ数字を探すようになっています。
その為に、【Y2】の値と【CA53】の値が一緒でないとエラーになります。
フィールドのセルは【Y2:Y3】となります。
ここまでのセル番号をまとめると下記のような式になります。
=DGET(CA53:CU71,CD53,Y2:Y3)
実際はデータ元のシートからデータを集めているので、シート名をプラスしなくてはいけません。
ここではシート名を【HOME】としています。
さらに、順位を並び替えてから印刷するので、絶対番地にします。
さらに、お休みなどで投球しない時があると、空欄になって【#VALUE!】エラーが出るのを防ぐために空欄にするIFERRORを加えます。
=IFERROR(DGET(HOME!$CA$53:$CU$71,HOME!$CD$53,HOME!$Y$2:$Y$3),””)
これで神田さんの1G目のスコアーが回戦数(日付)を変えることで表示が切り替わります。
大変ですが、この作業を2G目、3G目・・・と東京さんから17人目の新松戸さんまで繰り返せば、回戦数(日付)を変えるだけで表のデータが切り替わるようになります。
DGET関数をマスターすれば、表がシンプルになりデータ量も軽くなるのでぜひマスターしてくださいね。