AccessでVLOOKUP関数・近似値検索

Accessには、ExcelのVLOOKUP関数と同様の処理ができる関数が用意されていません。
この項ではVLOOKUP関数のような近似値を含めた検索処理をフォーム内で実行する方法をご紹介いたします。
DMax関数とDLookup関数を組み合わせて処理します。

表の確認

下記のような表(T_スコア記録表)において、「スコア」から「ランク」を割り出します。

スコアID 採点日 受験者番号 スコア
1 2014/5/7 15 495
2 2014/5/7 95 605
3 2014/5/7 54 350
4 2014/5/7 70 419
5 2014/5/7 22 377
6 2014/5/7 89 649
7 2014/5/7 26 550
8 2014/5/7 71 654
9 2014/5/7 21 775
10 2014/5/7 5 848
11 2014/5/11 90 437
12 2014/5/14 66 622

「スコア→ランク」の対応表には以下(Q_ランク対応表)を用います。
「最小スコア」から「ランク」を割り出します。
「スコア」が「495」ならば「最小スコア」が「450~550」の間に存在するので、上側である「450」の行に該当すると考えられます。その行の「ランク」は「A」です。

最小スコア 最大スコア ランク
-99999 249 D
250 349 C
350 449 B
450 549 A
550 649 A+
650 749 S
750 99999 S+

以下のような結果を取得することが目的となります。

スコアID 採点日 受験者番号 スコア ランク
1 2014/5/7 15 495 A
2 2014/5/7 95 605 A+
3 2014/5/7 54 350 B
4 2014/5/7 70 419 B
5 2014/5/7 22 377 B
6 2014/5/7 89 649 A+
7 2014/5/7 26 550 A+
8 2014/5/7 71 654 S
9 2014/5/7 21 775 S+
10 2014/5/7 5 848 S+
11 2014/5/11 90 437 B
12 2014/5/14 66 622 A+
13 2014/5/18 3 566 A+
14 2014/5/20 98 450 A

コメント

PAGE TOP
タイトルとURLをコピーしました