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

エクセル検索
HOMEUserForm印刷画面ファイル図形
日付・時刻データセル関数VBA関数

日付を入力するとデータが差し替わるエクセルの表があったら便利だと思いませんか?

表のひな形はたったひとつでデータ元は別に用意すればいいのですから、エクセルデータファイル自体を作るのも早くなるし実際使うのも変更点は日付だけなので、業務作業効率化できます。

作業効率化には必須の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を加えます。

DGET関数

=IFERROR(DGET(HOME!$CA$53:$CU$71,HOME!$CD$53,HOME!$Y$2:$Y$3),””)

これで神田さんの1G目のスコアーが回戦数(日付)を変えることで表示が切り替わります。

大変ですが、この作業を2G目、3G目・・・と東京さんから17人目の新松戸さんまで繰り返せば、回戦数(日付)を変えるだけで表のデータが切り替わるようになります。

IFERRORに関しては、下記ページに記載しているのでここでは省略します。

波乗りアヒル

DGET関数をマスターすれば、表がシンプルになりデータ量も軽くなるのでぜひマスターしてくださいね。

関連記事

どこかにビューーン
ちょっとの工夫で往復無料の時代が来た!!

新着ページ

よく見られているページ

大容量無料ファイル転送サービス【ACデータ】 無料イラスト【イラストAC】

紅葉スポット

2024年5月11日からマイルと楽天ポイントとの相互交換提携開始!

交換レート0.5:1なので半分になってしまいますが、使い方次第で実質3倍の価値まで引き上げられる方法です。